ትምህርት 20/31፡ ቮልቴጅን በLCD1602 ላይ ማሳየት
ይህ ፕሮጀክት አርዱኖ እና ከI2C በይነገጽ ጋር የLCD1602 ማሳያን በመጠቀም ዲጂታል ቮልትሜትር እንዴት እንደሚሰራ ያሳያል። ከፖቴንሺዮሜትር የአናሎግ ቮልቴጅን በማንበብ እና በማያ ገጹ ላይ በማሳየት፣ የአናሎግ-ወደ-ዲጂታል ልወጣ፣ የI2C ግንኙነት እና የLCD ቁጥጥር አስፈላጊ ክህሎቶችን ይማራሉ።
ይህ ፕሮጀክት ለብዙ ተግባራዊ አፕሊኬሽኖች ጥሩ መሰረት ነው። ሊገነቡባቸው የሚችሏቸው አንዳንድ ሀሳቦች እነዚህ ናቸው፡
- ለፕሮጀክቶችዎ ተንቀሳቃሽ የባትሪ ቮልቴጅ መቆጣጠሪያ መገንባት።
- ከእይታ ቮልቴጅ ንባብ ጋር ቀላል የኃይል አቅርቦት መፍጠር።
- የፀሐይ ፓነል ወይም ሌላ ተለዋዋጭ የቮልቴጅ ምንጭ ውጤትን መከታተል።
- እንደ ብርሃን-ጥገኛ ተከላካይ (LDR) ያሉ የማንኛውም የአናሎግ ዳሳሽ እሴትን እንደ ሊነበብ የሚችል ቁጥር ማሳየት።
በዚህ መመሪያ መጨረሻ፣ ክፍሎቹን እንዴት ማገናኘት፣ አስፈላጊዎቹን ቤተ-መጻሕፍት እንዴት ማዋቀር እና የራስዎን የቮልቴጅ ማሳያ ለመፍጠር ኮዱን እንዴት መጻፍ እንደሚችሉ ግልጽ ግንዛቤ ይኖርዎታል።
የሃርድዌር ክፍሎች
ይህን ፕሮጀክት ለመገንባት የሚከተሉትን ክፍሎች ያስፈልግዎታል። ኮርሱ የተመሰረተው እነዚህን ሁሉ ክፍሎች በሚያካትተው በSunFounder 3-in-1 Arduino ኪት ላይ ነው።
- አርዱኖ ቦርድ (ለምሳሌ፣ Uno)
- ከI2C ሞጁል ጋር LCD1602 ማሳያ
- ፖቴንሺዮሜትር (10kΩ ይመከራል)
- መዝለያ ሽቦዎች
- ብሬድቦርድ
LCD1602 እና I2C ሞጁልን መረዳት
LCD1602 ባለ 16 አምዶች እና 2 ረድፎች ያለው ታዋቂ የፊደል-ቁጥር ማሳያ ነው። መደበኛ ትይዩ LCD ለመቆጣጠር ብዙ ዲጂታል ፒኖች ያስፈልጉታል። ይሁን እንጂ ይህ ማሳያ በጀርባው ላይ የተወሰነ I2C ሞጁል አለው (በቪዲዮው በ01:30)። ይህ ሞጁል ሽቦውን በከፍተኛ ሁኔታ ያቃልላል፣ ግንኙነቱን ወደ አራት ሽቦዎች ብቻ ይቀንሳል፡ VCC፣ GND፣ SDA እና SCL። ይህ የሚቻለው የI2C ሞጁሉ እንደ ድልድይ ሆኖ ቀላሉን የI2C ተከታታይ ምልክት ወደ LCD የሚፈልጋቸው ትይዩ ምልክቶች ስለሚተረጉም ነው።
ይህ ፕሮጀክት አርዱኖዎ በሁለት ሽቦዎች ብቻ ከብዙ መሳሪያዎች ጋር እንዲነጋገር የሚያስችል የግንኙነት ፕሮቶኮል የሆነውን I2C በይነገጽ ይጠቀማል። ይህ ብዙ አይነት ዳሳሾችን እና ማሳያዎችን ለማገናኘት መሰረታዊ ክህሎት ነው።
የሽቦ አገናኝ መመሪያ
LCD እና ፖቴንሺዮሜትሩን ከአርዱኖ ጋር ማገናኘት ቀላል ነው። የI2C ሞጁሉ ኃይል እና ሁለት የግንኙነት መስመሮች ያስፈልገዋል። ፖቴንሺዮሜትሩ እንደ ተለዋዋጭ የቮልቴጅ መከፋፈያ ሆኖ ይሰራል፣ ይህም በዊፐር ፒኑ ላይ ያለውን ቮልቴጅ እንዲያስተካክሉ ያስችልዎታል።
ዝርዝር የሽቦ አገናኝ ዝግጅት እነሆ፡
- LCD I2C ሞጁል ወደ አርዱኖ፡
- GND ወደ አርዱኖ GND (በቪዲዮው በ05:38)።
- VCC ወደ አርዱኖ 5V (በቪዲዮው በ05:47)።
- SDA ወደ አርዱኖ A4 (በቪዲዮው በ05:47)።
- SCL ወደ አርዱኖ A5 (በቪዲዮው በ05:57)።
- ፖቴንሺዮሜትር ወደ አርዱኖ፡
- ግራ ፒን ወደ አርዱኖ 5V (በቪዲዮው በ33:39)።
- መካከለኛ ፒን (ዊፐር) ወደ አርዱኖ A0 (በቪዲዮው በ33:43)።
- ቀኝ ፒን ወደ አርዱኖ GND (በቪዲዮው በ33:43)።
የሚፈለገውን ቤተ-መጻሕፍት መጫን
ይህ ፕሮጀክት LCDን በI2C ለመቆጣጠር ውጫዊ ቤተ-መጻሕፍት ይፈልጋል። በቪዲዮው ውስጥ ጥቅም ላይ የዋለው ቤተ-መጻሕፍት "Arduino Liquid Crystal I2C" ቤተ-መጻሕፍት ነው። በRobojax ምንጭ ገጽ ላይ ከተሰጠው አገናኝ ወይም ከGitHub (በቪዲዮው በ06:16) ማውረድ ይችላሉ።
እሱን ለመጫን፣ ቤተ-መጻሕፍቱን እንደ ZIP ፋይል ያውርዱ። ከዚያ፣ በአርዱኖ IDEዎ ውስጥ፣ ወደ Sketch > Include Library > Add .ZIP Library... ይሂዱ እና ያወረዱትን ፋይል ይምረጡ (በቪዲዮው በ06:41)።
የLCDዎን I2C አድራሻ መፈለግ
ዋናውን ኮድ ከመጫንዎ በፊት፣ የተወሰነውን የLCD ሞጁልዎን I2C አድራሻ መወሰን ወሳኝ ነው። ይህ አድራሻ እንደ አምራቹ ሊለያይ ይችላል። ቪዲዮው እሱን ለማግኘት I2C ስካነር እንዴት መጠቀም እንዳለብዎት ያሳያል (በቪዲዮው በ08:11)።
ይህን ስካነር ወደ File > Examples > Wire > i2c_scanner በመሄድ ማግኘት ይችላሉ። LCD ከተገናኘ ጋር ይህን ኮድ ወደ አርዱኖዎ ይጫኑ እና የሴሪያል መቆጣጠሪያውን ይክፈቱ። አድራሻውን ያሳያል፣ እሱም ብዙውን ጊዜ 0x27 ወይም 0x3F ነው። ይህን አድራሻ በዋናው ኮድዎ ውስጥ መጠቀም ያስፈልግዎታል።
የኮድ ማብራሪያ
የዚህ ፕሮጀክት ኮድ የአናሎግ እሴትን በማንበብ እና ለማሳያ በማቀናበር ላይ ያተኩራል። ቁልፍ፣ በተጠቃሚ ሊዋቀሩ የሚችሉ ክፍሎችን እንከፋፍል።
1. የቤተ-መጻሕፍት ማካተት እና LCD ነገር
ይህ ክፍል አስፈላጊዎቹን ቤተ-መጻሕፍት ያካትታል እና ለLCDዎ ነገር ይፈጥራል። እዚህ በጣም አስፈላጊው ነገር የI2C አድራሻ ነው፣ እሱም በቀዳሚው ደረጃ ካገኙት ጋር እንዲዛመድ መቀየር አለብዎት።
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// የLCD አድራሻን ለ16 ወይም 20 ቁምፊዎች እና 2 ወይም 4 መስመሮች ማሳያ ወደ 0x27 ያዘጋጁ
LiquidCrystal_I2C lcd(0x27, 16, 2);#include <Wire.h>: ይህ ቤተ-መጻሕፍት በአርዱኖ ውስጥ የተገነባ ነው እና ለI2C ግንኙነት ያስፈልጋል።#include <LiquidCrystal_I2C.h>: ይህ አሁን የጫንነውን ቤተ-መጻሕፍት ያካትታል፣ እሱም LCD ን ለመቆጣጠር የሚያስችሉ ተግባራትን ይሰጣል።LiquidCrystal_I2C lcd(0x27, 16, 2);: ይህ መስመርlcdየተባለ ነገር ይፈጥራል። የመጀመሪያው መለኪያ፣0x27፣ ቀደም ሲል ያገኘኸው የI2C አድራሻ ነው። ሁለተኛው እና ሦስተኛው መለኪያዎች የLCD ልኬቶችን ይገልጻሉ፡ 16 አምዶች እና 2 ረድፎች። ከተለየ ከሆነ0x27ን ወደ የራስህ አድራሻ መቀየር አለብህ።
2. የSetup እና Loop ተግባራት
የsetup() ተግባር LCD ን ያስነሳል እና የኋላ መብራቱን ያበራል። የloop() ተግባር ቮልቴጅን ለማንበብ እና ለማሳየት ዋናውን አመክንዮ ይዟል።
void setup()
{
lcd.begin();
lcd.backlight();
}
void loop()
{
int potValue = analogRead(A0);
float voltage = potValue * (5.0 / 1023.0);
// ... (LCD ማሳያ ኮድ)
delay(1000);
}
lcd.begin(): ይህ የLCD በይነገጽን ያስነሳል እና ለአገልግሎት ያዘጋጃል።lcd.backlight(): ይህ የማሳያውን የኋላ መብራት ያበራል፣ ጽሑፉ እንዲታይ ያደርጋል።int potValue = analogRead(A0);: ይህ ከፖቴንሽዮሜትር ተንሸራታች ጋር የተገናኘውን ከA0 ፒን ጥሬ የአናሎግ እሴት ያነባል። እሴቱ ከ0 እስከ 1023 የሆነ ኢንቲጀር ይሆናል፣ ይህም ከ0V እስከ 5V ያለውን ቮልቴጅ ይወክላል።float voltage = potValue * (5.0 / 1023.0);: ይህ ወሳኙ የመቀየሪያ ደረጃ ነው። ጥሬውን የADC እሴት ወደ ትክክለኛ የቮልቴጅ ንባብ ይቀይረዋል። ቀመሩ ጥሬውን እሴት በማጣቀሻ ቮልቴጅ (5.0V) እና በከፍተኛው የADC እሴት (1023) ጥምርታ ያባዛል። ይህ አስፈላጊ ነው ምክንያቱም ADC ቮልቴጅን በቀጥታ አያነብም፤ ተመጣጣኝ ቁጥርን ያነባል።
3. ቮልቴጅን ማሳየት
ኮዱ ከዚያ ማያ ገጹን ያጸዳል እና የቮልቴጅ እሴቱን በሁለተኛው መስመር ላይ በተወሰነ ቦታ ያትማል።
lcd.clear();
lcd.print("LCD1602 Tutorial");
lcd.setCursor (0,1); // ወደ 2ኛ መስመር መጀመሪያ ሂድ
lcd.print("Voltage:");
lcd.setCursor (9,1); // ወደ መስመር 2 ቁምፊ 9 አዘጋጅ
lcd.print(voltage);
lcd.setCursor (13,1); // ወደ መስመር 2 ቁምፊ 14 አዘጋጅ
lcd.print("V");
lcd.clear(): ከማያ ገጹ ላይ ያለውን ቀዳሚ ጽሑፍ ያጸዳል።lcd.print("LCD1602 Tutorial"): በመጀመሪያው መስመር ላይ ርዕሱን ያትማል።lcd.setCursor (0,1): ጠቋሚውን ወደ ሁለተኛው መስመር መጀመሪያ ያዘጋጃል። የመጀመሪያው መለኪያ አምዱ (0-15) ነው፣ ሁለተኛው ደግሞ ረድፉ ነው (0 ለመጀመሪያው መስመር፣ 1 ለሁለተኛው)።lcd.print(voltage): የተሰላውን የቮልቴጅ እሴት ያትማል። የfloatተለዋዋጭ በነባሪ በሁለት አስርዮሽ ቦታዎች ይታተማል።lcd.setCursor (13,1): ጠቋሚውን በሁለተኛው መስመር ወደ አምድ 13 ያንቀሳቅሳል፣ ይህም የ"V" ቁምፊውን ከቁጥሩ በኋላ ለማስቀመጥ ነው።
የቀጥታ ፕሮጀክት ማሳያ
ኮዱን ከሰቀልክ በኋላ፣ LCD በመጀመሪያው መስመር "LCD1602 Tutorial" ማሳየት አለበት። በሁለተኛው መስመር ላይ፣ "Voltage:" እና ከዚያ የአሁኑን የቮልቴጅ ንባብ ያሳያል። የፖቴንሽዮሜትሩን እጀታ ስታዞር፣ የሚታየው ቮልቴጅ ከ0.00V እስከ 5.00V በግምት ሲለወጥ በቅጽበት ታያለህ (በቪዲዮው 35:25 ላይ)።
ይህ ፕሮጀክት ጥሬ የአናሎግ ምልክትን ወስዶ ግልጽ እና ለሰው ሊነበብ ወደሚችል እሴት እንዴት መቀየር እንደሚቻል ፍጹም ምሳሌ ነው። እዚህ የተማርካቸው ክህሎቶች ወደፊት ሊጠቀምባቸው ወደምትችላቸው ወደ ማንኛውም ሌላ የአናሎግ ዳሳሽ በቀጥታ ሊተገበሩ ይችላሉ።
ቪዲዮው እንደ ጽሑፍ ማሳየት፣ ማሸብለል እና በLCD ላይ ብጁ ቁምፊዎችን መፍጠር ያሉ ሌሎች ተዛማጅ ርዕሶችንም ይሸፍናል።
ከዚህ ቪዲዮ የተውጣጡ ተዛማጅ ፕሮጀክቶች
- ትምህርት 20/31፡ LCD1602 ን ከአርዱኖ ጋር በመጠቀም ጽሑፍ ማሳየት | Robojax
- ትምህርት 20/31፡ የሙቀት እና እርጥበት መጠንን ከDHT11 በLCD ማያ ገጽ ላይ ማሳየት
ምዕራፎች
- [00:00] ለLCD1602 መግቢያ እና የፕሮጀክት አጠቃላይ እይታ
- [01:30] የLCD1602 ሃርድዌር እና የI2C ሞጁል ማብራሪያ
- [04:06] የI2C አድራሻን በጃምፐር ማዘጋጀት
- [05:28] ለLCD1602 የወልና ሥዕላዊ መግለጫ
- [07:31] ለመሠረታዊ የጽሑፍ ማሳያ የኮድ ማብራሪያ
- [11:10] የሚያብረቀርቅ ጠቋሚ ምሳሌን ማሳየት
- [13:46] ብጁ ቁምፊዎችን መፍጠር እና መጠቀም
- [18:51] የተከታታይ ማሳያ ምሳሌን መጠቀም
- [23:16] በLCD ላይ ጽሑፍን ማሸብለል
- [26:13] ከDHT11 የሙቀት እና እርጥበት መጠንን ማሳየት
- [33:00] ከፖቴንሽዮሜትር ቮልቴጅን ማንበብ እና ማሳየት
- [35:56] ከአልትራሶኒክ ዳሳሽ ርቀትን ማሳየት
/*
Lesson 20/31: Displaying voltage on LCD1602
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 or 20 chars and 2 or 4 lines display
LiquidCrystal_I2C lcd(0x27, 16, 2);
int count =700;
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
int potValue = analogRead(A0);
float voltage = potValue * (5.0 / 1023.0);
//start of loop Robojax code for LCD with I2C
lcd.clear();
lcd.print("LCD1602 Tutorial");
lcd.setCursor (0,1); // go to start of 2nd line
lcd.print("Voltage:");
lcd.setCursor (9,1); // set to line 2 char 9
lcd.print(voltage);
lcd.setCursor (13,1); // set to line 2 char 14
lcd.print("V");
//lcd.setCursor (3,3); // set to line 4 character 4
//lcd.print("Text in line 4");
delay(1000);
count++;
//end of loopcode Robojax code for LCD with I2C
}
እንደሚያስፈልግዎት ይችላል
-
አማዞንSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
አማዞን
-
አማዞን
-
አማዞን
ምንጮች እና ምንጮች
-
ሰነዶችDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ውስጥPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
ፋይሎች📁
Arduino ቤተ መዝገቦች (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
ተጠቃሚ መመሪያ
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB