Elke radioamateur komt, na wat eenvoudig doe-het-zelfwerk, tot het doel om iets groots te bouwen met behulp van sensoren en knoppen. Het is immers veel interessanter om data op het display weer te geven dan op de poortmonitor. Maar dan rijst de vraag: welk scherm te kiezen? En in het algemeen, hoe te verbinden, wat is nodig om te verbinden? De antwoorden op deze vragen worden in dit artikel besproken.
LCD 1602
Van de vele opties onder de schermen, zou ik het LCD1602-scherm willen uitlichten op basis van de HD4478-controller. Er is dit display in twee kleuren: witte letters op een blauwe achtergrond, zwarte letters op een gele achtergrond. Ook het aansluiten van de LCD 1602 op de Arduino levert geen problemen op, aangezien er een ingebouwde bibliotheek is en je niets extra's hoeft te downloaden. Displays verschillen niet alleen in prijs, maar ook in grootte. Vaak gebruiken radioamateurs 16x 2, d.w.z. 2 regels van 16 karakters. Maar er is ook 20 x 4, waar er 4 regels van 20 karakters zijn. Afmetingen en kleur spelen geen enkele rol bij het aansluiten van het lcd 1602-display op Arduno, ze zijn op dezelfde manier aangesloten. De kijkhoek is 35 graden, de responstijd van het display is 250 ms. Kan werken bij temperaturen van -20 tot 70 graden Celsius. Tijdens het werken gebruikt hij 4 mA voor het scherm en 120 mA voor de achtergrondverlichting.
Waar wordt het gebruikt?
Dit display is niet alleen populair bij radioamateurs, maar ook bij grote fabrikanten. Printers, koffiemachines gebruiken bijvoorbeeld ook LCD1602. Dit komt door de lage prijs, dit scherm kost 200-300 roebel op Chinese sites. Het is de moeite waard om daar te kopen, want in onze winkels zijn de marges voor deze display erg hoog.
Verbinden met Arduino
Het aansluiten van LCD 1602 op Arduino Nano en Uno is niet anders. U kunt met het display in twee modi werken: 4 bits en 8. Bij het werken met een 8-bits display worden zowel de lagere als de hogere bits gebruikt en bij een 4-bits alleen de lagere. Het heeft geen zin om met 8-bit te werken, omdat er nog 4 contacten worden toegevoegd om verbinding te maken, wat niet aan te raden is, omdat de snelheid niet hoger zal zijn, de limiet voor het bijwerken van het scherm 10 keer per seconde. Over het algemeen worden er veel draden gebruikt om de lcd 1602 aan te sluiten op de Arduino, wat voor wat ongemak zorgt, maar er zijn speciale schilden, maar daarover later meer. De foto toont de aansluiting van het display op de Arduino Uno:
Codevoorbeeld:
include //Voeg de vereiste bibliotheek toe LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup () { lcd.begin (16, 2); // Schermafmeting instellen lcd.setCursor (0, 0); // Zet de cursor aan het begin van regel 1 lcd.print("Hallo, wereld!"); // Display tekst lcd setCursor (0, 1); // Zet de cursor aan het begin van regel 2 lcd.print("fb.ru"); // Tekst uitvoer } void loop(){ }
Wat doet de code? Allereerst is de bibliotheek voor het werken met het display aangesloten. Zoals hierboven vermeld, is deze bibliotheek al opgenomen in de Arduino IDE en hoeft u deze niet extra te downloaden en te installeren. Vervolgens worden de contacten die op de pinnen zijn aangesloten gedefinieerd: respectievelijk RS, E, DB4, DB5, DB6, DB7. Vervolgens wordt de schermgrootte ingesteld. Aangezien we werken met een versie met 16 karakters en 2 regels, schrijven we dergelijke waarden. We zetten de cursor aan het begin van de eerste regel en geven onze eerste tekst Hello World weer. Plaats vervolgens de cursor op de tweede regel en geef de naam van de site weer. Dat is alles! Het aansluiten van lcd 1602 op Arduino Uno werd overwogen.
Wat is I2C en waarom is het nodig?
Zoals hierboven vermeld, kost het aansluiten van het scherm veel pinnen. Als je bijvoorbeeld met meerdere sensoren en een LCD-scherm werkt, zijn 1602 contacten misschien gewoon niet genoeg. Vaak gebruiken radioamateurs de Uno- of Nano-versie, waar niet veel contacten zijn. Toen bedachten mensen speciale schilden. Bijvoorbeeld I2C. Hiermee kunt u het display aansluiten met slechts 4 pinnen. Dit is twee keer minder. De I2C-module wordt zowel apart verkocht, waar je hem zelf moet solderen, en is al gesoldeerd aanLCD-scherm 1602.
Verbinding met I2C-module
Het aansluiten van LCD 1602 op Arduino Nano met I2C neemt weinig ruimte in beslag, slechts 4 pinnen: aarde, voeding en 2 data-uitgangen. We verbinden stroom en aarde met respectievelijk 5V en GND op de Arduino. De overige twee contacten: SCL en SDA zijn verbonden met analoge pinnen. Op de foto ziet u een voorbeeld van het aansluiten van lcd 1602 op arduino met I2C-module:
Programmacode
Als het nodig was om slechts één bibliotheek te gebruiken om met een display zonder module te werken, dan zijn er twee bibliotheken nodig om met een module te werken. Een daarvan zit al in de Arduino IDE - Wire. Een andere bibliotheek, LiquidCrystal I2C, moet apart worden gedownload en geïnstalleerd. Om de bibliotheek in Arduino te installeren, moet de inhoud van het gedownloade archief worden geüpload naar de hoofdmap van de bibliotheken. Codevoorbeeld met I2C:
include include LiquidCrystal_I2C lcd (0x27, 16, 2); // Stel de display void setup () in { lcd.init (); lcd.backlight();// Schakel de schermverlichting in lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Zet de cursor op de tweede regel en het nulteken. lcd.setCursor(0, 1); // Druk het aantal seconden af sinds de Arduino is gestart lcd.print(millis()/1000); }
Zoals je kunt zien, is de code bijna hetzelfde.
Hoe voeg ik mijn eigen symbool toe?
Het probleem met deze schermen is dat er geenondersteuning voor Cyrillisch en symbolen. U moet bijvoorbeeld een teken in het scherm laden zodat het dit kan weerspiegelen. Om dit te doen, kunt u op het display maximaal 7 van uw personages maken. Presenteer de tafel:
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 |
Als 0 - er is niets, als 1 - is het een gearceerd gebied. In het bovenstaande voorbeeld ziet u de creatie van het "glimlachende smiley"-teken. Als we een voorbeeldprogramma in Arduino gebruiken, ziet het er als volgt uit:
include include // Voeg de vereiste bibliotheek toe // 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); // Schermafmeting instellen lcd.createChar (1, smile); // Maak tekennummer 1 lcd.setCursor (0, 0); // Zet de cursor aan het begin van regel 1 lcd.print("\1"); // Geef de smiley weer (tekennummer 1) - "\1" } void loop(){ }
Zoals je kunt zien, is gemaakthet bitmasker is hetzelfde als de tabel. Eenmaal gemaakt, kan het als een variabele naar het display worden uitgevoerd. Houd er rekening mee dat er slechts 7 tekens in het geheugen kunnen worden opgeslagen. In principe is dit voldoende. Als u bijvoorbeeld het gradensymbool wilt weergeven.
Problemen waarbij het scherm mogelijk niet werkt
Er zijn momenten waarop het display niet werkt. Het gaat bijvoorbeeld aan, maar toont geen tekens. Of hij gaat helemaal niet aan. Kijk eerst of je de contacten correct hebt aangesloten. Als je vroeger lcd 1202 op Arduino had aangesloten zonder I2C, dan is het heel gemakkelijk om in de draden te verstrikken, waardoor het display niet goed werkt. Zorg er ook voor dat het schermcontrast wordt verhoogd, omdat bij minimaal contrast niet eens zichtbaar is of de LCD 1602 aan staat of niet. Mocht dit niet helpen, dan ligt het probleem wellicht in het solderen van de contacten, dit is bij gebruik van de I2C module. Een veelvoorkomende reden waarom het display mogelijk niet werkt, is de onjuiste instelling van het I2C-adres. Het feit is dat er veel fabrikanten zijn, en ze kunnen een ander adres instellen, je moet het hier corrigeren:
LiquidCrystal_I2C lcd(0x27, 16, 2);
Tussen haakjes zie je twee waarden, 0x27 en 16, 2 (16, 2 is de weergavegrootte en 0x27 is alleen het I2C-adres). In plaats van deze waarden kunt u proberen 0x37 of 0x3F in te voeren. Welnu, een andere reden is gewoon een defect LCD 1602. Aangezien bijna alles voor Arduino in China wordt gemaakt, kunt u er niet 100% zeker van zijn dat de gekochtehet product is niet defect.
LCD 1602 voor- en nadelen
Laten we eens kijken naar de voor- en nadelen van de LCD 1602.
Pros
- Prijs. Deze module kan tegen een zeer betaalbare prijs worden gekocht in Chinese winkels. De prijs is 200-300 roebel. Soms zelfs verkocht met een I2C-module.
- Eenvoudig aan te sluiten. Waarschijnlijk sluit niemand tegenwoordig een LCD 1602 aan zonder I2C. En met deze module heeft de verbinding slechts 4 pinnen nodig, er zullen geen "webben" van draden zijn.
- Programmeren. Dankzij kant-en-klare bibliotheken is het werken met deze module eenvoudig, alle functies zijn al geregistreerd. En als je je personage moet toevoegen, duurt het maar een paar minuten.
Nadelen
Tijdens het gebruik door duizenden radioamateurs zijn er geen grote minpunten vastgesteld, alleen zijn er gevallen van het kopen van een huwelijk, aangezien voornamelijk Chinese weergave-opties worden gebruikt
Dit artikel besprak hoe het LCD 1602-display op Arduino kan worden aangesloten en presenteerde ook voorbeeldprogramma's voor het werken met dit display. Het is echt een van de beste in zijn categorie, het is niet alleen dat duizenden radioamateurs het voor hun projecten kiezen!