Wa Koodu

Ẹkọ 20/31: Lilo LCD1602 pẹlu Arduino lati ṣe afihan ọrọ | Robojax

Ẹkọ 20/31: Lilo LCD1602 pẹlu Arduino lati ṣe afihan ọrọ | Robojax

Ìfáàwọ́

LCD1602 jẹ́ ọ̀kan nínú àwọn àfihàn alfanumeric tí ó gbajúmọ̀ jùlọ fún àwọn iṣẹ́ Arduino, àti nígbà tí a bá so pọ̀ pẹ̀lú àpò I2C, ó di rọrùn púpọ̀ láti lò. Nínú ẹ̀kọ́ yìí, ìwọ yóò kọ́ bí a ṣe ń fi ọ̀rọ̀, nọ́ńbà, àti àwọn ohun kíkọ́ àdáni hàn, àti bí a ṣe ń yí ọ̀rọ̀ káàkiri lórí iboju. A ó tún fi ọwọ́ rẹ hàn bí a ṣe le so LCD pọ̀ pẹ̀lú àwọn sẹ́nsà mìíràn láti ṣẹ̀dá àwọn irinṣẹ́ abojuto tí ó wúlò. Ìtọ́sọ́nà yìí jẹ́ ara ẹ̀kọ́ Arduino tí ó gbòòrò, àti a ṣe é láti ràn ọ́ lọ́wọ́ láti kọ́ àwọn ẹ̀rọ tí ó wúlò fún ilé rẹ, ilé-ìwé, tàbí ibi iṣẹ́ rẹ.

àmì-ìkọ̀kan-2

Èyí ni àwọn èrò díẹ̀ tí ó wúlò fún ohun tí ìwọ lè kọ́ pẹ̀lú ìmọ̀ yìí:

  • Àmì-ìwọ̀n ìgbóná àti ọ̀rinrin fún ilé-ọ̀gbà tàbí àpótí ẹranko.
  • Ìwọ̀n foltì tí ó rọrùn fún ṣíṣàyẹ̀wò ipele bátì nínú àwọn iṣẹ́ rẹ.
  • Sẹ́nsà ọ̀nà fún olùrànlọ́wọ́ ìdúró ọkọ̀ tàbí àpòtí ìdọ̀tí ọlọ́gbọ́n tí ó fi bí ó ti kún tó.

Àkọsílẹ̀ Ohun-èlò

LCD1602 jẹ́ àfihàn tí ó ní ohun kíkọ́ 16 ní ọ̀nà kan àti 2 ọ̀nà. Mọ́díù tí ó wà ní ẹ̀yìn jẹ́ àmúṣọ̀rọ̀ I2C (tàbí I²C), tí ó dín nọ́ńbà àwọn okun tí a nílò kúrò láti ìsopọ̀ párálẹ̀lì dé mẹ́rin péré: Ground, VCC, SDA, àti SCL. Èyí mú kí ìsopọ̀ rọrùn púpọ̀ sí i àti pé ó tú àwọn pin oní nọ́ńbà púpọ̀ sílẹ̀ lórí Arduino rẹ.

Àfihàn náà ní ìmọ́lẹ̀ ẹ̀yìn, tí a lè tan tàbí pa nípa lílo sọ́fúwẹ̀. Ó tún ní potentiometer kékeré kan lórí mọ́díù I2C láti ṣàtúnṣe ìyàtọ̀. Bí o bá tan àfihàn náà kí o sì rí ohunkóhun, yí ẹ̀dọ̀ yìí kí ọ̀rọ̀ náà tó hàn (nínú fídíò ní 02:47).

Àwọn oríṣiríṣi àfihàn yìí wà, bíi LCD2004 tí ó ní ohun kíkọ́ 20 àti 4 ọ̀nà. Àdírẹ́sì I2C náà tún lè yí padà nípa dídi àwọn jumper A0, A1, àti A2 lórí mọ́díù (nínú fídíò ní 03:51). Àdírẹ́sì tí a sábà máa ń lò ni 0x27, ṣùgbọ́n ó lè yàtọ̀, nítorí náà ó dára láti máa ṣe ìwádìí I2C láti rí àdírẹ́sì tí ó tọ́ fún mọ́díù rẹ pàtó.

Àwọn Ohun-èlò

Láti tẹ̀lé ìfihàn àkọ́kọ́ nínú fídíò yìí, ìwọ yóò nílò àwọn ohun wọ̀nyí:

  • Arduino Uno (tàbí bọ́ọ̀dù èyíkéyìí tí ó bá mu)
  • LCD1602 pẹ̀lú mọ́díù I2C
  • Breadboard àti àwọn okun jumper

Fún àwọn apá tí ó tẹ̀lé e, ìwọ yóò tún nílò sẹ́nsà DHT11, potentiometer, tàbí sẹ́nsà ultrasonic, dá lórí èyí tí o bá fẹ́ kọ́.

Ìtọ́sọ́nà Ìsopọ̀

lcd1602_I2C_wiring_sunfounder

Ìsopọ̀ LCD rọrùn. Àwòrán ìsopọ̀ náà fi àwọn ìsopọ̀ hàn kedere.

So àwọn pin lórí mọ́díù I2C pọ̀ mọ́ Arduino rẹ báyìí:

  • GND sí Arduino GND
  • VCC sí Arduino 5V
  • SDA sí Arduino A4
  • SCL sí Arduino A5

Bí bọ́ọ̀dù Arduino rẹ bá ní àwọn pin SDA àti SCL tí a yà sọ́tọ̀, ìwọ lè so pọ̀ mọ́ àwọn wọ̀nyẹn pẹ̀lú (nínú fídíò ní 05:47).

Fífi Ìkàwé sílẹ̀

Mọ́díù yìí nílò ìkàwé "Arduino Liquid Crystal I2C". Ìwọ lè gbà á wálẹ̀ láti ọ̀nà tí a pèsè nínú àpèjúwe fídíò tàbí láti ojú òpó wẹ́ẹ̀bù Robojax. Lẹ́yìn tí o bá ti gbà á wálẹ̀, fi sílẹ̀ nínú Arduino IDE rẹ nípa lílo Sketch > Include Library > Add .ZIP Library kí o sì yan fáìlì tí o gbà wálẹ̀ (nínú fídíò ní 06:41).

Àlàyé Kóòdù

Nítorí pé a kò pèsè àwọn apá kóòdù, a ó ṣàlàyé ìgbékalẹ̀ gbogbogbòò ti kóòdù tí a lò nínú fídíò.

Kóòdù náà bẹ̀rẹ̀ nípa fífi àwọn ìkàwé tí a nílò sílẹ̀: Wire.h fún ìbánisọ̀rọ̀ I2C àti ìkàwé LiquidCrystal_I2C.h fún àfihàn. Apá pàtàkì ni ṣíṣẹ̀dá ohun kan fún LCD. Ìwọ yóò ní láti ṣètò àdírẹ́sì I2C tí ó tọ́ àti àwọn ìwọ̀n àfihàn rẹ:

// Ṣètò àdírẹ́sì LCD sí 0x27 fún àfihàn 16 ohun kíkọ́ àti 2 ọ̀nà
LiquidCrystal_I2C lcd(0x27, 16, 2);

Bí àfihàn rẹ kò bá fi ohunkóhun hàn, ìwọ lè ní láti yí 0x27 padà sí 0x3F tàbí àdírẹ́sì mìíràn tí ìwádìí I2C rẹ rí. Àwọn nọ́ńbà 16 àti 2 dúró fún nọ́ńbà àwọn ọ̀wọ̀n àti àwọn ọ̀nà lórí àfihàn rẹ.

Nínú iṣẹ́ setup(), ìwọ bẹ̀rẹ̀ LCD kí o sì tan ìmọ́lẹ̀ ẹ̀yìn:

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

Láti tẹ ọ̀rọ̀ sílẹ̀, ìwọ lo iṣẹ́ lcd.setCursor(ọ̀wọ̀n, ọ̀nà) láti fi kọ̀sọ́ sí ibi tí ó tọ́, kí o sì tẹ̀lé e pẹ̀lú lcd.print() láti fi data rẹ hàn. Fún àpẹẹrẹ, láti tẹ̀ lórí ọ̀nà kejì, ìwọ yóò lo lcd.setCursor(0, 1). Fídíò náà tún ṣàlàyé bí a ṣe ń tẹ àwọn ohun kíkọ́ pàtàkì bíi àmì ìwọ̀n ìgbóná nípa lílo lcd.write(223) (nínú fídíò ní 31:42).

Ìfihàn

Fídíò náà fi àwọn ẹ̀yà pàtàkì púpọ̀ ti LCD hàn. Ní àkọ́kọ́, ó fi "Hello World" ọ̀rọ̀ tí a tẹ̀ sílẹ̀ hàn àti bí a ṣe ń lo iṣẹ́ lcd.scrollDisplayLeft() láti yí ọ̀rọ̀ káàkiri lórí iboju. Lẹ́yìn náà, ó so LCD pọ̀ pẹ̀lú sẹ́nsà DHT11 láti fi ìgbóná àti ọ̀rinrin hàn, pẹ̀lú potentiometer láti fi foltì hàn, àti pẹ̀lú sẹ́nsà ultrasonic láti fi ọ̀nà hàn.

Fún ìfihàn ìgbóná, kóòdù náà ka sẹ́nsà náà kí o sì tẹ iye náà sílẹ̀. Láti fi nọ́ńbà tí ó pé hàn láìsí àwọn ẹ̀yà ìdá, ìwọ lè yí iye float padà sí integer, gẹ́gẹ́ bí a ṣe fi hàn nínú fídíò (nínú fídíò ní 32:21).

Fún mita foltáìjì, kóòdù náà ka iye analog láti inú potentiometer, ó sì yí i padà sí ìwọ̀n foltáìjì 0-5V, ó sì fi hàn lórí iboju (nínú fídíò ní 34:31).

Ìfihàn ìkẹyìn náà darapọ̀ mọ́ LCD pẹ̀lú ẹ̀rọ ìwọ̀n ultrasonic láti fi ìwọ̀n ọ̀nà tí a wọ́n ní sẹntímítà hàn (nínú fídíò ní 37:55).

Àwọn iṣẹ́ tí ó jọmọ́ láti inú fídíò yìí

Fídíò yìí tún ní àwọn ẹ̀kọ́ iṣẹ́ mìíràn nínú. O lè rí wọn níbí:

Àwọn orí-ọ̀rọ̀

  • [00:00] Ìfáàrà sí LCD1602 àti àkópọ̀ ẹ̀kọ́
  • [01:30] Àkópọ̀ ohun èlò ti LCD1602 àti module I2C
  • [02:47] Àtúnṣe ìmúdájú ìfihàn àti ìmọ́lẹ̀ ẹ̀yìn
  • [03:14] Àsopọ̀ pin àti yíyan àdírẹ́sì I2C
  • [05:28] Àwòrán ìsopọ̀ fún LCD
  • [06:16] Fífi ìkàwé tí a nílò sílẹ̀
  • [07:24] Kóòdù ìpìlẹ̀ fún títẹ̀ ọ̀rọ̀ jáde
  • [11:10] Àpẹẹrẹ cursor tí ń tàn
  • [13:46] Àwọn ohun kíkọ tí a ṣe àdáni àti títẹ̀ àwọn àmì pàtàkì
  • [18:51] Àpẹẹrẹ ìfihàn serial
  • [23:16] Yíyí ọ̀rọ̀ lórí LCD
  • [36:51] Dídarapọ̀ LCD pẹ̀lú ẹ̀rọ ìwọ̀n ultrasonic

Aworan

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
Ede: 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
}

Orisun & itọkasi

Fáìlìs📁

Awọn ile-ikawe Arduino (zip)