Ansluta LCD 1602 till Arduino: beskrivning, funktioner, instruktioner, funktioner, problem och lösningar

Innehållsförteckning:

Ansluta LCD 1602 till Arduino: beskrivning, funktioner, instruktioner, funktioner, problem och lösningar
Ansluta LCD 1602 till Arduino: beskrivning, funktioner, instruktioner, funktioner, problem och lösningar
Anonim

Varje radioamatör, efter lite enkelt gör-det-själv-arbete, kommer till målet att konstruera något stort med hjälp av sensorer och knappar. Det är trots allt mycket mer intressant att visa data på displayen än på portmonitorn. Men då uppstår frågan: vilken display ska man välja? Och i allmänhet, hur man ansluter det, vad behövs för att ansluta? Svaren på dessa frågor kommer att diskuteras i den här artikeln.

LCD 1602 display för anslutning till arduino
LCD 1602 display för anslutning till arduino

LCD 1602

Bland de många alternativen bland bildskärmar, skulle jag vilja peka ut LCD1602-skärmen baserad på HD4478-kontrollern. Det finns denna display i två färger: vita bokstäver på blå bakgrund, svarta bokstäver på gul bakgrund. Att ansluta LCD 1602 till Arduino kommer inte att orsaka några problem heller, eftersom det finns ett inbyggt bibliotek, och du behöver inte ladda ner något extra. Skärmarna skiljer sig inte bara i pris utan också i storlek. Radioamatörer använder ofta 16x 2, dvs 2 rader med 16 tecken. Men det finns också 20 x 4, där det finns 4 rader med 20 tecken. Mått och färg spelar ingen roll för att ansluta lcd 1602-skärmen till Arduno, de är anslutna på samma sätt. Betraktningsvinkeln är 35 grader, skärmens svarstid är 250 ms. Kan arbeta vid temperaturer från -20 till 70 grader Celsius. När den arbetar använder den 4 mA för skärmen och 120 mA för bakgrundsbelysningen.

LCD 1602 display pinout
LCD 1602 display pinout

Var används det?

Denna skärm har sin popularitet inte bara bland radioamatörer utan även bland stora tillverkare. Till exempel, skrivare, kaffemaskiner använder också LCD1602. Detta beror på dess låga pris, denna skärm kostar 200-300 rubel på kinesiska webbplatser. Det är värt att köpa där, eftersom marginalerna för denna display är mycket höga i våra butiker.

Anslut till Arduino

Att ansluta LCD 1602 till Arduino Nano och Uno är inte annorlunda. Du kan arbeta med displayen i två lägen: 4 bitar och 8. När du arbetar med en 8-bitars display används både de lägre och högre bitarna och med en 4-bitars endast de lägre. Det finns ingen speciell mening med att arbeta med 8-bitar, eftersom ytterligare 4 kontakter kommer att läggas till för att ansluta, vilket inte är tillrådligt, eftersom hastigheten inte kommer att vara högre, gränsen för uppdatering av displayen är 10 gånger per sekund. I allmänhet används många kablar för att ansluta lcd 1602 till Arduino, vilket orsakar en del besvär, men det finns speciella sköldar, men mer om det senare. Bilden visar anslutningen av skärmen till Arduino Uno:

Ansluter skärmen till arduino
Ansluter skärmen till arduino

Kodexempel:


include //Lägg till det nödvändiga biblioteket LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Ställ in skärmdimension lcd.setCursor(0, 0); // Ställ markören till början av rad 1 lcd.print("Hej världen!"); // Visa text lcd setCursor(0, 1); // Ställ markören till början av rad 2 lcd.print("fb.ru"); // Utdatatext } void loop(){ }

Vad gör koden? Först och främst är biblioteket för att arbeta med displayen anslutet. Som nämnts ovan är detta bibliotek redan inkluderat i Arduino IDE och du behöver inte ladda ner och installera det ytterligare. Därefter definieras kontakterna som är anslutna till stiften: RS, E, DB4, DB5, DB6, DB7, respektive. Sedan ställs skärmstorleken in. Eftersom vi arbetar med en version med 16 tecken och 2 rader skriver vi sådana värden. Vi ställer markören till början av den första raden och visar vår första text Hello World. Placera sedan markören på den andra raden och visa namnet på webbplatsen. Det är allt! Det övervägdes att ansluta lcd 1602 till Arduino Uno.

Vad är I2C och varför behövs det?

Som nämnts ovan krävs många stift för att ansluta skärmen. Till exempel, när man arbetar med flera sensorer och en LCD-skärm kanske 1602 kontakter helt enkelt inte räcker. Radioamatörer använder ofta Uno- eller Nano-versionerna, där det inte finns många kontakter. Sedan kom folk på speciella sköldar. Till exempel I2C. Det låter dig ansluta skärmen med bara 4 stift. Detta är två gånger mindre. I2C-modulen säljs både separat, där du behöver löda den själv, och redan lödd tillLCD-skärm 1602.

I2C-modul för LCD-skärm 1602
I2C-modul för LCD-skärm 1602

Anslutning med I2C-modul

Att ansluta LCD 1602 till Arduino Nano med I2C tar lite plats, bara 4 stift: jord, ström och 2 datautgångar. Vi kopplar ström och jord till 5V respektive GND på Arduino. De återstående två kontakterna: SCL och SDA är anslutna till valfritt analoga stift. På bilden kan du se ett exempel på att ansluta lcd 1602 till arduino med I2C-modul:

Visa anslutningar med I2C-modulen
Visa anslutningar med I2C-modulen

Programkod

Om det var nödvändigt att använda endast ett bibliotek för att arbeta med en display utan en modul, så behövs två bibliotek för att arbeta med en modul. En av dem finns redan i Arduino IDE - Wire. Ett annat bibliotek, LiquidCrystal I2C, måste laddas ner separat och installeras. För att installera biblioteket i Arduino måste innehållet i det nedladdade arkivet laddas upp till bibliotekets rotmapp. Kodexempel med I2C:


include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Ställ in display void setup() { lcd.init(); lcd.backlight();// Slå på skärmens bakgrundsbelysning lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Ställ markören till andra raden och nolltecken. lcd.setCursor(0, 1); // Skriv ut antalet sekunder sedan arduino startade lcd.print(millis()/1000); }

Som du kan se är koden nästan densamma.

Hur lägger jag till min egen symbol?

Problemet med dessa skärmar är att det inte finns någonstöd för kyrilliska och symboler. Till exempel måste du ladda något tecken i displayen så att det kan reflektera det. För att göra detta låter displayen dig skapa upp till 7 av dina karaktärer. Presentera bordet:

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

Om 0 - det finns inget där, om 1 - det är ett skuggat område. I exemplet ovan kan du se skapandet av karaktären "leende smiley". Med ett exempelprogram i Arduino skulle det se ut så här:


include include // Inkludera det obligatoriska biblioteket // Smile symbol bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Ställ in skärmdimension lcd.createChar(1, leende); // Skapa tecken nummer 1 lcd.setCursor(0, 0); // Ställ markören till början av rad 1 lcd.print("\1"); // Visa smiley (tecken nummer 1) - "\1" } void loop(){ }

Som du kan se skapadesbitmasken är densamma som tabellen. När den väl har skapats kan den matas ut som en variabel till displayen. Kom ihåg att endast 7 tecken kan lagras i minnet. I princip räcker detta. Om du till exempel vill visa gradsymbolen.

Lägga till anpassade tecken till LCD 1602
Lägga till anpassade tecken till LCD 1602

Problem där displayen kanske inte fungerar

Det finns tillfällen då displayen inte fungerar. Till exempel slås den på, men visar inga tecken. Eller så tänds den inte alls. Se först om du anslutit kontakterna korrekt. Om du brukade koppla lcd 1202 till Arduino utan I2C, då är det väldigt lätt att trassla in sig i ledningarna, vilket kan göra att displayen fungerar fel. Du bör också se till att skärmens kontrast ökar, eftersom det vid minsta kontrast inte ens syns om LCD 1602 är på eller inte. Om detta inte hjälper, så kanske problemet ligger i lödningen av kontakterna, detta är när man använder I2C-modulen. En vanlig anledning till att skärmen kanske inte fungerar är felaktig inställning av I2C-adressen. Faktum är att det finns många tillverkare, och de kan ställa in en annan adress, du måste korrigera den här:


LiquidCrystal_I2C lcd(0x27, 16, 2);

Inom parentes kan du se två värden, 0x27 och 16, 2 (16, 2 är skärmstorleken och 0x27 är bara I2C-adressen). Istället för dessa värden kan du försöka sätta 0x37 eller 0x3F. Tja, en annan anledning är helt enkelt en felaktig LCD 1602. Med tanke på att nästan allt för Arduino är tillverkat i Kina, kan du inte vara 100% säker på att den köptaprodukten är inte defekt.

LCD 1602 för- och nackdelar

Låt oss titta på för- och nackdelarna med LCD 1602.

Pros

  • Pris. Denna modul kan köpas till ett mycket överkomligt pris i kinesiska butiker. Priset är 200-300 rubel. Ibland säljs även med en I2C-modul.
  • Lätt att ansluta. Förmodligen ansluter ingen en LCD 1602 utan I2C nuförtiden. Och med den här modulen tar anslutningen bara fyra stift, det kommer inte att finnas några "nät" av ledningar.
  • Programmering. Tack vare färdiga bibliotek är det enkelt att arbeta med denna modul, alla funktioner är redan registrerade. Och om du behöver lägga till din karaktär tar det bara ett par minuter.

Nackdelar

Under tiden för användning av tusentals radioamatörer har inga stora nackdelar identifierats, bara det finns fall av att köpa ett äktenskap, eftersom kinesiska visnings alternativ huvudsakligen används

Den här artikeln diskuterade hur man ansluter LCD 1602-skärmen till Arduino, och presenterade även exempelprogram för att arbeta med den här skärmen. Den är verkligen en av de bästa i sin kategori, det är inte bara så att tusentals radioamatörer väljer den för sina projekt!

Rekommenderad: