ኮድ ይፈልጉ

ትምህርት 20/31፡ LCD1602ን ከአርዱኖ ጋር በመጠቀም ጽሑፍ ማሳየት | Robojax

ትምህርት 20/31፡ LCD1602ን ከአርዱኖ ጋር በመጠቀም ጽሑፍ ማሳየት | Robojax

መግቢያ

LCD1602 ለአርዱኖ ፕሮጀክቶች በጣም ታዋቂ ከሆኑ የፊደል-ቁጥር ማሳያዎች አንዱ ነው፣ እና ከI2C ጀርባ-ሰሌዳ ጋር ሲጣመር፣ ለመጠቀም በጣም ቀላል ይሆናል። በዚህ ትምህርት ውስጥ፣ ጽሑፍን፣ ቁጥሮችን እና ብጁ ቁምፊዎችን እንዴት ማሳየት እንደሚችሉ፣ እንዲሁም ጽሑፍን በማያ ገጹ ላይ እንዴት ማንሸራተት እንደሚችሉ ይማራሉ። እንዲሁም LCDን ከሌሎች ዳሳሾች ጋር በማጣመር ተግባራዊ የክትትል መሣሪያዎችን እንዴት መፍጠር እንደሚችሉ እናሳይዎታለን። ይህ መመሪያ የሰፊ የአርዱኖ ኮርስ አካል ነው እና ለቤትዎ፣ ለትምህርት ቤትዎ ወይም ለአውደ ጥናትዎ ጠቃሚ መሣሪያዎችን እንዲገነቡ ለመርዳት የተነደፈ ነው።

ስክሪንሾት-2

በዚህ እውቀት ሊገነቡ የሚችሉ ጥቂት ተግባራዊ ሀሳቦች እነዚህ ናቸው፦

  • ለግሪንሀውስ ወይም ለሚሳቡ እንስሳት መኖሪያ የሙቀት እና የእርጥበት መቆጣጠሪያ።
  • በፕሮጀክቶችዎ ውስጥ የባትሪ ደረጃዎችን ለመፈተሽ ቀላል የቮልት መለኪያ።
  • ለፓርኪንግ ረዳት ወይም ምን ያህል እንደተሞላ የሚያሳይ ብልህ የቆሻሻ መጣያ የርቀት ዳሳሽ።

የሃርድዌር አጠቃላይ እይታ

LCD1602 ባለ 16-ቁምፊ በ2-መስመር ማሳያ ነው። በጀርባ ላይ ያለው ሞጁል I2C (ወይም I²C) አስማሚ ነው፣ ይህም ከመደበኛ ትይዩ ግንኙነት የሚያስፈልጉትን ሽቦዎች ቁጥር ወደ አራት ብቻ ይቀንሳል፦ Ground፣ VCC፣ SDA እና SCL። ይህ ሽቦን በጣም ቀላል ያደርገዋል እና በአርዱኖዎ ላይ ብዙ ዲጂታል ፒኖችን ነፃ ያደርጋል።

ማሳያው የጀርባ መብራት አለው፣ በሶፍትዌር በኩል ሊበራ ወይም ሊጠፋ ይችላል። እንዲሁም ንፅፅሩን ለማስተካከል በI2C ሞጁሉ ላይ ትንሽ ፖቴንሽዮሜትር አለው። ማሳያውን አብርተው ምንም ካላዩ፣ ጽሑፉ እስኪታይ ድረስ ይህንን ሽኩሩ ብቻ ያሽከርክሩ (በቪዲዮ 02፡47)።

የዚህ ማሳያ የተለያዩ ስሪቶች አሉ፣ ለምሳሌ LCD2004 ባለ 20 ቁምፊዎች እና 4 መስመሮች ያለው። የI2C አድራሻ በሞጁሉ ላይ የA0፣ A1 እና A2 ጁምፐሮችን በመሸጥ ሊቀየር ይችላል (በቪዲዮ 03፡51)። ነባሪው አድራሻ ብዙውን ጊዜ 0x27 ነው፣ ግን ሊለያይ ይችላል፣ ስለዚህ ለተወሰነ ሞጁልዎ ትክክለኛውን ለማግኘት የI2C ስካነር ማስኬድ ሁልጊዜ ጥሩ ሀሳብ ነው።

የሃርድዌር ክፍሎች

በዚህ ቪዲዮ ውስጥ ካለው ዋና ማሳያ ጋር ለመከተል፣ የሚከተሉትን ክፍሎች ያስፈልግዎታል፦

  • አርዱኖ ኡኖ (ወይም ማንኛውም ተኳሃኝ ቦርድ)
  • LCD1602 ከI2C ሞጁል ጋር
  • የመገጣጠሚያ ሰሌዳ እና የጅምፐር ሽቦዎች

ለቀጣዮቹ ክፍሎች፣ እንዲሁም የDHT11 ዳሳሽ፣ ፖቴንሽዮሜትር ወይም የአልትራሳውንድ ዳሳሽ ያስፈልግዎታል፣ የትኛውን ፕሮጀክት መገንባት እንደሚፈልጉ ይወሰናል።

የሽቦ መመሪያ

lcd1602_I2C_wiring_sunfounder

LCDን ማገናኘት ቀጥተኛ ነው። የሽቦ ዲያግራሙ ግንኙነቶቹን በግልጽ ያሳያል።

በI2C ሞጁሉ ላይ ያሉትን ፒኖች ከአርዱኖዎ ጋር እንደሚከተለው ያገናኙ፦

  • GND ወደ አርዱኖ GND
  • VCC ወደ አርዱኖ 5V
  • SDA ወደ አርዱኖ A4
  • SCL ወደ አርዱኖ A5

የአርዱኖ ቦርድዎ የተወሰኑ SDA እና SCL ፒኖች ካሉት፣ ከእነዚያም ጋር መገናኘት ይችላሉ (በቪዲዮ 05፡47)።

ቤተ-መጻሕፍቱን መጫን

ይህ ሞጁል "Arduino Liquid Crystal I2C" ቤተ-መጻሕፍት ይፈልጋል። በቪዲዮ መግለጫው ውስጥ ከተሰጠው ሊንክ ወይም ከሮቦጃክስ ድህረ ገጽ ማውረድ ይችላሉ። አንዴ ካወረዱ በኋላ፣ ወደ Sketch > Include Library > Add .ZIP Library በመሄድ በአርዱኖ IDEዎ ውስጥ ይጫኑት እና የወረደውን ፋይል ይምረጡ (በቪዲዮ 06፡41)።

የኮድ ማብራሪያ

ምንም የኮድ ቁርጥራጮች ስላልተሰጡ፣ በቪዲዮው ውስጥ ጥቅም ላይ የዋለውን የኮድ አጠቃላይ መዋቅር እናብራራለን።

ኮዱ አስፈላጊ ቤተ-መጻሕፍቶችን በማካተት ይጀምራል፦ Wire.h ለI2C ግንኙነት እና LiquidCrystal_I2C.h ቤተ-መጻሕፍት ለማሳያው። ቁልፍ ክፍሉ ለLCD አንድ ነገር መፍጠር ነው። ትክክለኛውን የI2C አድራሻ እና የማሳያዎን ልኬቶች ማዘጋጀት ያስፈልግዎታል፦

// የLCD አድራሻን ለ16 ቁምፊዎች እና 2 መስመር ማሳያ ወደ 0x27 ያዘጋጁ
LiquidCrystal_I2C lcd(0x27, 16, 2);

ማሳያዎ ምንም ካላሳየ፣ 0x27ን ወደ 0x3F ወይም በI2C ስካነርዎ ወደተገኘ ሌላ አድራሻ መቀየር ሊኖርብዎ ይችላል። 16 እና 2 በማሳያዎ ላይ ያሉትን የአምዶች እና የረድፎች ብዛት ይወክላሉ።

setup() ተግባር ውስጥ፣ LCDን ያስጀምሩ እና የጀርባ መብራቱን ያብሩ፦

void setup() {
  lcd.init();
  lcd.backlight();
}

ጽሑፍን ለማተም፣ ጠቋሚውን ለማስቀመጥ lcd.setCursor(column, row) ተግባርን ይጠቀማሉ፣ ከዚያም ውሂብዎን ለማሳየት lcd.print() ይጠቀማሉ። ለምሳሌ፣ በሁለተኛው መስመር ላይ ለማተም፣ lcd.setCursor(0, 1) ይጠቀማሉ። ቪዲዮው እንዲሁም እንደ ዲግሪ ምልክት ያሉ ልዩ ቁምፊዎችን lcd.write(223) በመጠቀም እንዴት ማተም እንደሚችሉ ያብራራል (በቪዲዮ 31፡42)።

ማሳያ

ቪዲዮው የLCDን በርካታ ቁልፍ ባህሪያት ያሳያል። በመጀመሪያ፣ መሰረታዊውን "ሄሎ ወርልድ" ጽሑፍ ማተም እና ጽሑፍን በማያ ገጹ ላይ ለማንቀሳቀስ lcd.scrollDisplayLeft() ተግባርን እንዴት መጠቀም እንደሚችሉ ያሳያል። በኋላ፣ LCDን ከDHT11 ዳሳሽ ጋር በማጣመር የሙቀት እና የእርጥበት መጠን ለማሳየት፣ ከፖቴንሽዮሜትር ጋር ቮልቴጅን ለማሳየት፣ እና ከአልትራሳውንድ ዳሳሽ ጋር ርቀትን ለማሳየት ያጣምራል።

ለሙቀት ማሳያው፣ ኮዱ ዳሳሹን ያነባል እና እሴቱን ያትማል። ያለ አስርዮሽ ሙሉ ቁጥር ለማሳየት፣ በቪዲዮው ላይ እንደሚታየው የተንሳፋፊውን እሴት ወደ ኢንቲጀር መቀየር ይችላሉ (በቪዲዮ 32፡21)።

ለቮልቴጅ መለኪያው፣ ኮዱ ከፖቴንሺዮሜትሩ የአናሎግ እሴቱን ያነባል፣ ወደ 0-5ቪ የቮልቴጅ ክልል ይቀይረዋል፣ እና በስክሪኑ ላይ ያሳየዋል (በቪዲዮው 34:31 ላይ)።

የመጨረሻው ማሳያ ኤልሲዲውን ከአልትራሶኒክ ዳሳሽ ጋር በማጣመር የተለካውን ርቀት በሴንቲሜትር ያሳያል (በቪዲዮው 37:55 ላይ)።

ከዚህ ቪዲዮ ጋር የተያያዙ ፕሮጀክቶች

ይህ ቪዲዮ ሌሎች የፕሮጀክት ትምህርቶችንም ይዟል። እነሱን እዚህ ማግኘት ይችላሉ፦

ምዕራፎች

  • [00:00] ለLCD1602 መግቢያ እና የኮርሱ አጠቃላይ እይታ
  • [01:30] የLCD1602 እና የI2C ሞጁል ሃርድዌር አጠቃላይ እይታ
  • [02:47] የማሳያ ንፅፅር እና የጀርባ ብርሃን ማስተካከል
  • [03:14] የፒን ግንኙነቶች እና የI2C አድራሻ ምርጫ
  • [05:28] ለኤልሲዲው የወልና ሥዕላዊ መግለጫ
  • [06:16] አስፈላጊውን ቤተ-መጻሕፍት መጫን
  • [07:24] ጽሑፍ ለማተም መሠረታዊ ኮድ
  • [11:10] የሚያብረቀርቅ ጠቋሚ ምሳሌ
  • [13:46] ብጁ ቁምፊዎች እና ልዩ ምልክቶችን ማተም
  • [18:51] ተከታታይ ማሳያ ምሳሌ
  • [23:16] በኤልሲዲው ላይ ጽሑፍን ማንሸራተት
  • [36:51] ኤልሲዲውን ከአልትራሶኒክ ዳሳሽ ጋር ማጣመር

ምስሎች

LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602 displaying voltage and title
LCD1602 displaying voltage and title
screenshot-2
screenshot-2
lcd1602_I2C_wiring_sunfounder
lcd1602_I2C_wiring_sunfounder
910-Lesson 20/31: Displaying simple text on LCD1602
ቋንቋ: C++
/*
Lesson 20/31: Displaying text on LCD screen
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 is code for LCD1602 Display with I2C module
 * watch the video for this code https://youtu.be/q9YC_GVHy5A
 
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purpose only.
 * This library is based on work done by DFROBOT (www.dfrobot.com).
 */
/*
 *  This code has been modefied from the Arduino library
 *  Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
 *  in Ajax, Ontario, Canada
 *  for Robojax.com
 *  
 *  This is code for LCD1602 Display with I2C module
 *  which can display text on the screen.
 */
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);



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()
{

  lcd.clear();
  lcd.setCursor (0,0);  
  lcd.print("SunFounder ");
  lcd.setCursor (0,1);
  lcd.write(244);


  delay(500);
 //end of loopcode Robojax code for LCD with I2C
}

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

ምንጮች እና ምንጮች

ፋይሎች📁

Arduino ቤተ መዝገቦች (zip)