Çdo radio amator, pas një pune të thjeshtë DIY, arrin në qëllimin për të ndërtuar diçka madhështore duke përdorur sensorë dhe butona. Në fund të fundit, është shumë më interesante të shfaqen të dhënat në ekran sesa në monitorin e portit. Por atëherë lind pyetja: cilin ekran të zgjidhni? Dhe në përgjithësi, si ta lidhni atë, çfarë nevojitet për t'u lidhur? Përgjigjet e këtyre pyetjeve do të diskutohen në këtë artikull.
LCD 1602
Ndër opsionet e shumta midis ekraneve, do të doja të veçoja ekranin LCD1602 të bazuar në kontrolluesin HD4478. Ekziston ky ekran në dy ngjyra: shkronja të bardha në sfond blu, shkronja të zeza në sfond të verdhë. Lidhja e LCD 1602 me Arduino gjithashtu nuk do të shkaktojë probleme, pasi ekziston një bibliotekë e integruar dhe nuk keni nevojë të shkarkoni asgjë shtesë. Ekranet ndryshojnë jo vetëm në çmim, por edhe në madhësi. Shpesh amatorët e radios përdorin 16x 2, pra 2 rreshta me 16 karaktere. Por ka edhe 20 x 4, ku ka 4 rreshta me 20 karaktere. Dimensionet dhe ngjyra nuk luajnë asnjë rol në lidhjen e ekranit LCD 1602 me Arduno, ato janë të lidhura në të njëjtën mënyrë. Këndi i shikimit është 35 gradë, koha e përgjigjes së ekranit është 250 ms. Mund të punojë në temperatura nga -20 deri në 70 gradë Celsius. Kur punon, përdor 4 mA për ekranin dhe 120 mA për dritën e prapme.
Ku përdoret?
Ky ekran ka popullaritetin e tij jo vetëm midis radio amatorëve, por edhe midis prodhuesve të mëdhenj. Për shembull, printerët, aparatet e kafesë përdorin gjithashtu LCD1602. Kjo është për shkak të çmimit të tij të ulët, ky ekran kushton 200-300 rubla në faqet kineze. Ja vlen të blesh atje, pasi në dyqanet tona marzhet për këtë ekran janë shumë të larta.
Lidhu me Arduino
Lidhja e LCD 1602 me Arduino Nano dhe Uno nuk është ndryshe. Mund të punoni me ekranin në dy mënyra: 4 bit dhe 8. Kur punoni me një ekran 8-bitësh, përdoren të dy bitet e poshtme dhe ato më të larta, dhe me një 4-bit, vetëm ato më të ulëtat. Nuk ka asnjë pikë të veçantë të punosh me 8-bit, pasi do të shtohen edhe 4 kontakte të tjera për t'u lidhur, gjë që nuk këshillohet, sepse shpejtësia nuk do të jetë më e lartë, kufiri i përditësimit të ekranit është 10 herë në sekondë. Në përgjithësi, shumë tela përdoren për të lidhur LCD 1602 me Arduino, gjë që shkakton disa shqetësime, por ka mburoja të veçanta, por më shumë për këtë më vonë. Fotografia tregon lidhjen e ekranit me Arduino Uno:
Shembull kodi:
përfshi //Shto bibliotekën e kërkuar LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Cakto dimensionin e ekranit lcd.setCursor(0, 0); // Vendosni kursorin në fillim të rreshtit 1 lcd.print("Përshëndetje, botë!"); // Shfaq tekstin lcd setCursor(0, 1); // Vendosni kursorin në fillim të rreshtit 2 lcd.print("fb.ru"); // Nxjerr tekstin } void loop(){ }
Çfarë bën kodi? Para së gjithash, biblioteka për të punuar me ekranin është e lidhur. Siç u përmend më lart, kjo bibliotekë është përfshirë tashmë në Arduino IDE dhe nuk keni nevojë ta shkarkoni dhe instaloni atë shtesë. Më pas, përcaktohen kontaktet që lidhen me kunjat: përkatësisht RS, E, DB4, DB5, DB6, DB7. Pastaj vendoset madhësia e ekranit. Meqenëse jemi duke punuar me një version me 16 karaktere dhe 2 rreshta, ne shkruajmë vlera të tilla. E vendosim kursorin në fillim të rreshtit të parë dhe shfaqim tekstin tonë të parë Hello World. Më pas, vendosni kursorin në rreshtin e dytë dhe shfaqni emrin e faqes. Kjo eshte e gjitha! U konsiderua lidhja e LCD 1602 me Arduino Uno.
Çfarë është I2C dhe pse është i nevojshëm?
Siç u përmend më lart, lidhja e ekranit kërkon shumë kunja. Për shembull, kur punoni me sensorë të shumtë dhe një ekran LCD, kontaktet 1602 thjesht mund të mos jenë të mjaftueshme. Shpesh, amatorët e radios përdorin versionet Uno ose Nano, ku nuk ka shumë kontakte. Pastaj njerëzit dolën me mburoja të veçanta. Për shembull, I2C. Kjo ju lejon të lidhni ekranin me vetëm 4 kunja. Kjo është dy herë më pak. Moduli I2C shitet veçmas, ku duhet ta lidhni vetë, dhe tashmë i ngjiturEkran LCD 1602.
Lidhja me modulin I2C
Lidhja e LCD 1602 me Arduino Nano me I2C merr pak hapësirë, vetëm 4 kunja: tokëzimi, fuqia dhe 2 dalje të dhënash. Ne lidhim fuqinë dhe tokën me 5V dhe GND në Arduino, përkatësisht. Dy kontaktet e mbetura: SCL dhe SDA janë të lidhura me çdo kunj analoge. Në foto mund të shihni një shembull të lidhjes së LCD 1602 me arduino me modulin I2C:
Kodi i programit
Nëse ishte e nevojshme të përdorej vetëm një bibliotekë për të punuar me një ekran pa modul, atëherë duhen dy biblioteka për të punuar me një modul. Njëri prej tyre është tashmë në Arduino IDE - Wire. Një bibliotekë tjetër, LiquidCrystal I2C, duhet të shkarkohet veçmas dhe të instalohet. Për të instaluar bibliotekën në Arduino, përmbajtja e arkivit të shkarkuar duhet të ngarkohet në dosjen kryesore të Bibliotekave. Shembull kodi duke përdorur I2C:
përfshi include LiquidCrystal_I2C LCD (0x27, 16, 2); // Konfiguro konfigurimin void të ekranit () { lcd.init(); lcd.backlight();// Aktivizoni dritën e prapme të ekranit lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Vendos kursorin në rreshtin e dytë dhe karakterin null. lcd.setCursor(0, 1); // Shtypni numrin e sekondave që nga fillimi i arduino lcd.print(millis()/1000); }
Siç mund ta shihni, kodi është pothuajse i njëjtë.
Si mund ta shtoj simbolin tim?
Problemi me këto ekrane është se nuk kambështetje për cirilikën dhe simbolet. Për shembull, duhet të ngarkoni disa karaktere në ekran në mënyrë që ta pasqyrojë atë. Për ta bërë këtë, ekrani ju lejon të krijoni deri në 7 nga karakteret tuaja. Paraqitni tabelën:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
Nëse 0 - nuk ka asgjë atje, nëse 1 - është një zonë me hije. Në shembullin e mësipërm, mund të shihni krijimin e personazhit "smiling smiley". Duke përdorur një program shembull në Arduino, do të duket kështu:
include include // Përfshi bibliotekën e kërkuar // Bitmask i simbolit të buzëqeshjes buzëqeshje bajt[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, LCD Crystal Liquid(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Cakto dimensionin e ekranit lcd.createChar(1, buzëqeshje); // Krijo numrin e karakterit 1 lcd.setCursor(0, 0); // Vendosni kursorin në fillim të rreshtit 1 lcd.print("\1"); // Shfaq smiley (numri i karakterit 1) - "\1" } void loop(){ }
Siç mund ta shihni, u krijuabitmask është i njëjtë me tabelën. Pasi të krijohet, mund të nxirret si variabël në ekran. Mos harroni se vetëm 7 karaktere mund të ruhen në memorie. Në parim, kjo është e mjaftueshme. Për shembull, nëse doni të tregoni simbolin e shkallës.
Probleme ku ekrani mund të mos funksionojë
Ka raste kur ekrani nuk funksionon. Për shembull, ndizet, por nuk tregon karaktere. Ose nuk ndizet fare. Së pari, shikoni nëse i keni lidhur saktë kontaktet. Nëse keni lidhur LCD 1202 me Arduino pa I2C, atëherë është shumë e lehtë të ngatërroni telat, gjë që mund të bëjë që ekrani të funksionojë gabimisht. Duhet të siguroheni gjithashtu që kontrasti i ekranit të rritet, pasi në kontrast minimal nuk është as i dukshëm nëse LCD 1602 është i ndezur apo jo. Nëse kjo nuk ndihmon, atëherë ndoshta problemi mund të qëndrojë në bashkimin e kontakteve, kjo është kur përdorni modulin I2C. Gjithashtu, një arsye e zakonshme pse ekrani mund të mos funksionojë është vendosja e gabuar e adresës I2C. Fakti është se ka shumë prodhues, dhe ata mund të vendosin një adresë të ndryshme, ju duhet ta korrigjoni këtu:
LiquidCrystal_I2C LCD(0x27, 16, 2);
Në kllapa mund të shihni dy vlera, 0x27 dhe 16, 2 (16, 2 është madhësia e ekranit dhe 0x27 është vetëm adresa I2C). Në vend të këtyre vlerave, mund të provoni të vendosni 0x37 ose 0x3F. Epo, një arsye tjetër është thjesht një LCD 1602 me defekt. Duke marrë parasysh që pothuajse gjithçka për Arduino është prodhuar në Kinë, nuk mund të jeni 100% i sigurt se ai i blerëprodukti nuk është me defekt.
LCD 1602 të mirat dhe të këqijat
Le të shohim të mirat dhe të këqijat e LCD 1602.
Pro
- Çmimi. Ky modul mund të blihet me një çmim shumë të volitshëm në dyqanet kineze. Çmimi është 200-300 rubla. Ndonjëherë shitet edhe me një modul I2C.
- Lehtë për t'u lidhur. Ndoshta askush nuk e lidh një LCD 1602 pa I2C këto ditë. Dhe me këtë modul, lidhja merr vetëm 4 kunja, nuk do të ketë "rrjeta" telash.
- Programim. Falë bibliotekave të gatshme, puna me këtë modul është e lehtë, të gjitha funksionet tashmë janë regjistruar. Dhe nëse duhet të shtoni karakterin tuaj, duhen vetëm disa minuta.
Kundër
Gjatë kohës së përdorimit nga mijëra radioamatorë, nuk janë identifikuar asnjë minus të madh, vetëm ka raste të blerjes së një martese, pasi përdoren kryesisht opsionet e ekranit kinez
Ky artikull diskutoi se si të lidhni ekranin LCD 1602 me Arduino, dhe gjithashtu prezantoi programe mostra për të punuar me këtë ekran. Është me të vërtetë një nga më të mirat në kategorinë e tij, nuk është vetëm se mijëra radioamatorë e zgjedhin atë për projektet e tyre!