ኮድ ይፈልጉ

ትምህርት 20/31፡ ቮልቴጅን በLCD1602 ላይ ማሳየት

ትምህርት 20/31፡ ቮልቴጅን በLCD1602 ላይ ማሳየት

ይህ ፕሮጀክት አርዱኖ እና ከI2C በይነገጽ ጋር የLCD1602 ማሳያን በመጠቀም ዲጂታል ቮልትሜትር እንዴት እንደሚሰራ ያሳያል። ከፖቴንሺዮሜትር የአናሎግ ቮልቴጅን በማንበብ እና በማያ ገጹ ላይ በማሳየት፣ የአናሎግ-ወደ-ዲጂታል ልወጣ፣ የI2C ግንኙነት እና የLCD ቁጥጥር አስፈላጊ ክህሎቶችን ይማራሉ። 

LCD_sunFounder

ይህ ፕሮጀክት ለብዙ ተግባራዊ አፕሊኬሽኖች ጥሩ መሰረት ነው። ሊገነቡባቸው የሚችሏቸው አንዳንድ ሀሳቦች እነዚህ ናቸው፡

  • ለፕሮጀክቶችዎ ተንቀሳቃሽ የባትሪ ቮልቴጅ መቆጣጠሪያ መገንባት።
  • ከእይታ ቮልቴጅ ንባብ ጋር ቀላል የኃይል አቅርቦት መፍጠር።
  • የፀሐይ ፓነል ወይም ሌላ ተለዋዋጭ የቮልቴጅ ምንጭ ውጤትን መከታተል።
  • እንደ ብርሃን-ጥገኛ ተከላካይ (LDR) ያሉ የማንኛውም የአናሎግ ዳሳሽ እሴትን እንደ ሊነበብ የሚችል ቁጥር ማሳየት።

በዚህ መመሪያ መጨረሻ፣ ክፍሎቹን እንዴት ማገናኘት፣ አስፈላጊዎቹን ቤተ-መጻሕፍት እንዴት ማዋቀር እና የራስዎን የቮልቴጅ ማሳያ ለመፍጠር ኮዱን እንዴት መጻፍ እንደሚችሉ ግልጽ ግንዛቤ ይኖርዎታል።

potentiometer

የሃርድዌር ክፍሎች

ይህን ፕሮጀክት ለመገንባት የሚከተሉትን ክፍሎች ያስፈልግዎታል። ኮርሱ የተመሰረተው እነዚህን ሁሉ ክፍሎች በሚያካትተው በ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 በይነገጽ ይጠቀማል። ይህ ብዙ አይነት ዳሳሾችን እና ማሳያዎችን ለማገናኘት መሰረታዊ ክህሎት ነው።

የሽቦ አገናኝ መመሪያ

LCD1602_pot_wiring

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 ላይ ብጁ ቁምፊዎችን መፍጠር ያሉ ሌሎች ተዛማጅ ርዕሶችንም ይሸፍናል።

ከዚህ ቪዲዮ የተውጣጡ ተዛማጅ ፕሮጀክቶች

ምዕራፎች

  • [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] ከአልትራሶኒክ ዳሳሽ ርቀትን ማሳየት

ምስሎች

potentiometer
potentiometer
LCD1602_pot_wiring
LCD1602_pot_wiring
LCD_sunFounder
LCD_sunFounder
912-Lesson 20/31: Displaying voltage on LCD1602
ቋንቋ: C++
/*
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
}

እንደሚያስፈልግዎት ይችላል

ምንጮች እና ምንጮች

ፋይሎች📁

Arduino ቤተ መዝገቦች (zip)

ተጠቃሚ መመሪያ