- Materiaal vereist
- Schakelschema
- 128 * 64 grafisch LCD
- Afbeelding omzetten in hexadecimale code:
- Arduino-code en werkuitleg
Er zijn veel soorten LCD's die worden gebruikt in elektronische projecten. We hebben al in veel van onze projecten 16X2 LCD gebruikt en ook TFT LCD met Arduino. U kunt ons volledige 16X2 LCD-gerelateerde project vinden door deze link te volgen, inclusief interfacing met 8051, AVR, Arduino en nog veel meer.
De ST9720 grafische LCD is totaal anders dan de gewone LCD's. Een gewone LCD kan alleen eenvoudige tekst of cijfers binnen een vast formaat afdrukken. Maar in grafische LCD's hebben we 128 * 64, wat gelijk is aan 8192 dots of 8192/8 = 1024 pixels, dus afgezien van tekens kunnen we elke grafische afbeelding op deze GLCD weergeven.
We hebben GLCD al gekoppeld aan 8051, vandaag zullen we het grafische LCD-scherm koppelen aan Arduino om er tekst en afbeeldingen op weer te geven.
Materiaal vereist
- Arduino UNO
- 128 * 64 grafische LCD ST9720
- Potentiometer-10k
- Draden aansluiten
- Breadboard
Schakelschema
128 * 64 grafisch LCD
Deze grafische LCD heeft een laag stroomverbruik en is ook geschikt voor draagbare apparaten op batterijen. Het heeft een breed spanningsbereik van 2,2 V tot 5,5 V en ondersteunt zowel seriële als 8/4-bit parallelle communicatie en wordt geleverd met ST7290 LCD-controller / driver-IC. De interface-communicatiemodus kan worden geschakeld tussen parallel en serieel met behulp van PSB PIN 15. Dit grafische LCD-scherm heeft een automatische resetfunctie en kan eenvoudig worden bediend door MCU's zoals 8051, AVR, ARM, Arduino en Raspberry Pi.
U kunt doorgaan met de datasheet voor gedetailleerde informatie over ST7290 128 * 64 grafische LCD
Pin-configuratie
Pin nr. |
Pin Naam |
Omschrijving |
1 |
GND |
Aardingsklem |
2 |
Vcc |
Ingangsspanning (2,7 v tot 5,5 v) |
3 |
Vo |
LCD-contrast |
4 |
RS |
Registreren Selecteer RS = 0: Instructieregister RS = 1: gegevensregister |
5 |
R / W |
Lezen / schrijven controle |
6 |
E. |
Inschakelen |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Datapins (gebruikt in parallelle 8 / 4bit communicatiemodus) |
15 |
PSB |
Interface selectie: Laag (0) voor seriële communicatiemodus Hoog (1) voor 8/4-bit parallelle busmodus. |
16 |
NC |
Niet verbonden |
17 |
RST |
Pin resetten |
18 |
Vout |
LCD-spanningsverdubbelaar uitgang VOUT ≦ 7V. |
19 |
BLA |
Backlight positieve toevoer |
20 |
BLK |
Achtergrondverlichting Negatieve toevoer |
Toepassingen
- Industrieel apparaat
- Ingebouwde systemen
- Veiligheid
- Medisch
- Handapparatuur
Afbeelding omzetten in hexadecimale code:
Om een afbeelding op een grafisch LCD-scherm weer te geven, hebben we HEX-code van die afbeelding nodig, dus hier zijn enkele stappen om afbeelding naar HEX-code te converteren. Daarvoor moet u ervoor zorgen dat de afbeelding niet groter mag zijn dan 128 * 64.
Stap 1: Verlaag de grootte van de normale afbeelding tot 128 * 64 of minder, wat u kunt doen met behulp van beeldbewerkingssoftware zoals MS Paint.
Zoals te zien is in de bovenstaande afbeelding, stellen we de breedte en hoogte van de afbeelding in op 128 * 64.
Stap-2: Vervolgens moet u de afbeelding opslaan in de indeling "afbeeldingsnaam .bmp ".
Selecteer het formaat dat wordt weergegeven in de bovenstaande afbeelding en sla het bestand op voor verdere verwerking.
Stap-3: Nadat u het in ".bmp" -formaat hebt opgeslagen, moet u de afbeelding converteren naar hexadecimale code om af te drukken. Hiervoor gebruik ik de software genaamd GIMP 2, die het Bmp-bestand naar hexadecimale code converteert.
Zoals te zien is in de afbeelding hierboven, hebben we het ".bmp" -formaatbestand geopend in de GIMP 2-software.
Stap-4: Na het downloaden van de software, opent u het afbeeldingsbestand in BMP-formaat dat u wilt afdrukken en slaat u het vervolgens op in " .xbm " (X BitMap) -formaat. Nadat je het hebt opgeslagen, open je dat bestand met Kladblok en krijg je de hex-code van de afbeelding.
Kies, zoals in de onderstaande afbeelding wordt getoond, de optie Exporteren om het bestand op te slaan in het xbm- formaat:
Selecteer het formaat dat wordt weergegeven in de onderstaande afbeelding en exporteer het afbeeldingsbestand.
Na het exporteren van het bestand, krijgt u het bestand in ".xbm" -formaat. Open het xbm- bestand met Kladblok en u krijgt de HEX-code zoals weergegeven in de onderstaande afbeelding.
Arduino-code en werkuitleg
Om een grafische LCD met Arduino te verbinden, moeten we eerst de bibliotheek definiëren die voor de grafische LCD wordt gebruikt. Arduino heeft deze bibliotheek niet, u moet deze bibliotheek downloaden en installeren via deze link. Dan kun je de bibliotheek toevoegen zoals hieronder:
#inclusief "U8glib.h"
Hier definieert ' u8g (10) ' de verbinding van de RS (Register Select) -pin van het grafische LCD-scherm met de 10e pin van de Arduino UNO. RS-pin gebruikt als 'chip select' en 'Register Select' bij gebruik in respectievelijk seriële en parallelle modus. We gebruiken dus de seriële modus en RS-pin ingesteld op Hoog (1) voor chip ingeschakeld en Laag (0) voor chip uitgeschakeld.
U8GLIB_ST7920_128X64_4X u8g (10);
Om de afbeelding af te drukken, moeten we de hex-code van de afbeelding in de onderstaande code plaatsen. U kunt elke andere afbeelding afdrukken. U hoeft alleen maar de hex-code van de afbeelding te plakken.
const uint8_t rook_bitmap U8G_PROGMEM = { Plak hier de hex-code van de afbeelding };
Controleer de volledige Arduino-code aan het einde van dit artikel.
De onderstaande functie wordt gebruikt voor het afdrukken van afbeeldingen, het commando dat wordt gebruikt voor het afdrukken is "u8g.drawXBMP (x, y, breedte van afbeelding, hoogte van afbeelding)" . Waar, X en Y is de startpositie van de afbeelding op het LCD-scherm en we moeten ook de grootte van de afbeelding schrijven die niet groter mag zijn dan 128 * 64 en in het laatste argument hebben we de functie genoemd waarin we de HEX-code van de afbeelding hebben geplaatst.
leegte afbeelding (leegte) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
We hebben twee functies gemaakt genaamd "draw" en "next", waarin de code voor het afdrukken van de inhoud wordt geschreven met het commando "u8g.drawStr (x, y," abcd ")". Hier zijn x en y de positie op het LCD-scherm waar de inhoud wordt afgedrukt en ' abcd ' de inhoud die moet worden afgedrukt.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Interfacing"); u8g.drawStr (0, 35, "Grafische LCD"); u8g.drawStr (0, 55, "met Arduino"); }
clearLCD () functie is gemaakt voor het leegmaken van de LCD door de functie een null-waarde te geven.
leegte clearLCD () {u8g.firstPage (); doe {} while (u8g.nextPage ()); }
Pixel, kleur en intensiteit instellen door onderstaande code te gebruiken
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // wit} anders if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // max intensiteit} anders if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel aan} anders if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
De lege lus gaat door met het afdrukken van de tekst en afbeelding na de opgegeven vertraging. Ten eerste hebben we "Circuit Digest" afgedrukt met de tekenfunctie en na 2 seconden. vertraging hebben we het scherm gewist met behulp van de clearLCD- functie en vervolgens " Interfacing Graphical LCD using Arduino " afgedrukt met de volgende functie. Vervolgens hebben we de afbeelding afgedrukt met de functie picture () die 3 seconden op het scherm blijft. Dit gaat door totdat de stroomtoevoer is ingeschakeld.
leegte lus (leegte) {u8g.firstPage (); do {draw (); } while (u8g.nextPage ()); vertraging (2000); clearLCD (); u8g.firstPage (); doe het volgende(); } while (u8g.nextPage ()); vertraging (2000); clearLCD (); u8g.firstPage (); doe {picture (); } while (u8g.nextPage ()); vertraging (3000); clearLCD (); vertraging (50); }
Na het programmeren van de Arduino met de gegeven code, verbindt u de grafische LCD volgens het schakelschema met de Arduino en voorziet u de Arduino van stroom met behulp van een adapter of USB. U krijgt de inhoud en afbeelding afgedrukt op het grafische LCD-scherm, zoals weergegeven in de onderstaande video.
Controleer ook de interface van de Nokia 5110 grafische LCD met Arduino,