Raspberry Pi is een op ARM-architectuur gebaseerde processor, ontworpen voor elektronische ingenieurs en hobbyisten. De PI is momenteel een van de meest vertrouwde platformen voor projectontwikkeling. Met een hogere processorsnelheid en 1 GB RAM kan de PI worden gebruikt voor veel spraakmakende projecten zoals beeldverwerking en IoT.
Voor het doen van spraakmakende projecten moet men de basisfuncties van PI begrijpen. In deze tutorials behandelen we alle basisfunctionaliteiten van Raspberry Pi. In elke tutorial bespreken we een van de functies van PI. Aan het einde van deze Raspberry Pi Tutorial-serie kun je zelf spraakmakende projecten doen. Doorloop onderstaande tutorials:
- Aan de slag met Raspberry Pi
- Raspberry Pi-configuratie
- LED Blinky
- Knoopinterface
- PWM-generatie
- Besturen van DC-motor
- Stappenmotorbesturing
- Interfacing Shift Register
- Raspberry Pi ADC-zelfstudie
- Servomotorbesturing
- Capacitief touchpad
In deze tutorial zullen we een 16x2 LCD-scherm bedienen met Raspberry Pi. We zullen het LCD-scherm verbinden met GPIO-pinnen (General Purpose Input Output) van PI om er tekens op weer te geven. We zullen een programma in PYTHON schrijven om de juiste commando's via GPIO naar de LCD te sturen en de benodigde karakters op het scherm weer te geven. Dit scherm is handig voor het weergeven van sensorwaarden, de interruptstatus en ook voor het weergeven van de tijd.
Er zijn verschillende soorten LCD's op de markt. Grafische LCD is complexer dan 16x2 LCD. Dus hier gaan we voor een 16x2 LCD-scherm, je kunt zelfs een 16x1 LCD-scherm gebruiken als je wilt. 16x2 LCD heeft 32 karakters in totaal, 16 op de 1e regel en nog eens 16 op de 2e regel. JHD162 is een 16x2 LCD-module met karakters LCD. We hebben 16x2 LCD al gekoppeld aan 8051, AVR, Arduino enz. U kunt al onze 16x2 LCD-gerelateerde projecten vinden door deze link te volgen.
We zullen wat over PI GPIO bespreken voordat we verder gaan.
Er zijn 40 GPIO-uitgangspennen in Raspberry Pi 2. Maar van de 40 kunnen slechts 26 GPIO-pinnen (GPIO2 tot GPIO27) worden geprogrammeerd. Sommige van deze pinnen hebben een aantal speciale functies. Met speciale GPIO opzij gezet, hebben we 17 GPIO over.
Er zijn + 5V (Pin 2 of 4) en + 3.3V (Pin 1 of 17) uitgangspennen op het bord, deze zijn voor het aansluiten van andere modules en sensoren. We gaan de 16 * 2 LCD van stroom voorzien via de + 5V-rail. We kunnen een stuursignaal van + 3.3V naar het LCD-scherm sturen, maar om het LCD-scherm te laten werken, moeten we het met + 5V voeden. Het LCD-scherm werkt niet met + 3.3V.
Ga voor meer informatie over GPIO-pinnen en hun stroomuitgangen door: LED knippert met Raspberry Pi
Vereiste componenten:
Hier gebruiken we Raspberry Pi 2 Model B met Raspbian Jessie OS. Alle basisvereisten voor hardware en software zijn eerder besproken, u kunt het opzoeken in de Raspberry Pi-introductie, behalve dat we nodig hebben:
- Verbindende pinnen
- 16 * 2 LCD-module
- 1KΩ weerstand (2 stuks)
- 10K pot
- Condensator van 1000 µF
- Breadboard
Circuit en werkuitleg:
Zoals te zien is in het schakelschema, hebben we een Raspberry Pi met een interface met LCD-display door 10 GPIO-pinnen van PI aan te sluiten op de 16 * 2 LCD-besturings- en gegevensoverdrachtpennen. We hebben GPIO-pen 21, 20, 16, 12, 25, 24, 23 en 18 als BYTE gebruikt en een 'PORT'-functie gemaakt om gegevens naar het LCD-scherm te verzenden. Hier is GPIO 21 LSB (Least Significant Bit) en GPIO18 is MSB (Most Significant Bit).
16x2 LCD-module heeft 16 pinnen, die kunnen worden onderverdeeld in vijf categorieën: stroompinnen, contrastpin, controlepennen, datapinnen en achtergrondverlichtingspinnen. Hier is de korte beschrijving over hen:
Categorie |
Pin nr. |
Pin Naam |
Functie |
Power Pins |
1 |
VSS |
Aardpen, verbonden met aarde |
2 |
VDD of Vcc |
Spanningspin + 5V |
|
Contrasterende pin |
3 |
V0 of VEE |
Contrastinstelling, aangesloten op Vcc via een variabele weerstand. |
Controle pinnen |
4 |
RS |
Registreren Selecteer Pin, RS = 0 Commando-modus, RS = 1 Gegevensmodus |
5 |
RW |
Lees- / schrijfpin, RW = 0 Schrijfmodus, RW = 1 Leesmodus |
|
6 |
E. |
Inschakelen, een hoge naar lage puls moet het LCD-scherm inschakelen |
|
Gegevenspinnen |
7-14 |
D0-D7 |
Datapinnen, slaat de gegevens op die op het LCD-scherm of de opdrachtinstructies moeten worden weergegeven |
Backlight-pinnen |
15 |
LED + of A |
Om de achtergrondverlichting + 5V van stroom te voorzien |
16 |
LED- of K |
Achtergrondverlichting Grond |
We raden u ten zeerste aan om dit artikel gewoon door te nemen om te begrijpen hoe het LCD-scherm werkt met de pinnen en hex-opdrachten.
We zullen kort het proces van het verzenden van gegevens naar LCD bespreken:
1. E staat hoog (activeert de module) en RS staat laag (vertelt LCD dat we het commando geven)
2. Waarde 0x01 geven aan de datapoort als een commando om het scherm leeg te maken.
3. E staat hoog (activeert de module) en RS staat hoog (vertelt LCD dat we gegevens geven)
4. Het bewijzen van de ASCII-code voor tekens moet worden weergegeven.
5. E staat laag (vertelt LCD dat we klaar zijn met het verzenden van gegevens)
6. Zodra deze E-pin laag wordt, verwerkt het LCD-scherm de ontvangen gegevens en wordt het bijbehorende resultaat weergegeven. Dus deze pin is ingesteld op hoog voordat gegevens worden verzonden en naar beneden getrokken na het verzenden van gegevens.
Zoals gezegd gaan we de karakters achter elkaar versturen. De tekens worden aan het LCD-scherm gegeven door middel van ASCII-codes (Amerikaanse standaardcode voor informatie-uitwisseling). De tabel met ASCII-codes wordt hieronder weergegeven. Om bijvoorbeeld een teken "@" te tonen, moeten we een hexadecimale code "40" verzenden. Als we de waarde 0x73 aan het LCD-scherm geven, wordt er "s" weergegeven. Op deze manier gaan we de juiste codes naar de LCD sturen om de string " CIRCUITDIGEST " weer te geven.
Programmering Toelichting:
Zodra alles is aangesloten volgens het schakelschema, kunnen we de PI inschakelen om het programma in PYHTON te schrijven.
We zullen het hebben over enkele commando's die we gaan gebruiken in het PYHTON-programma, We gaan het GPIO-bestand uit de bibliotheek importeren, met onderstaande functie kunnen we GPIO-pinnen van PI programmeren. We hernoemen ook "GPIO" naar "IO", dus in het programma zullen we telkens wanneer we naar GPIO-pinnen willen verwijzen het woord 'IO' gebruiken.
importeer RPi.GPIO als IO
Soms, wanneer de GPIO-pinnen, die we proberen te gebruiken, andere functies uitvoeren. In dat geval zullen we waarschuwingen ontvangen tijdens het uitvoeren van het programma. Onderstaand commando vertelt de PI om de waarschuwingen te negeren en door te gaan met het programma.
IO.setwarnings (False)
We kunnen de GPIO-pinnen van PI verwijzen, hetzij op pincode aan boord, hetzij op functienummer. Net als 'PIN 29' op het bord is 'GPIO5'. Dus we vertellen hier dat we de pin hier met '29' of '5' gaan weergeven.
IO.setmode (IO.BCM)
We stellen 10 GPIO-pinnen in als uitgangspennen, voor gegevens- en besturingspennen van het LCD-scherm.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
while 1: commando wordt gebruikt als forever loop, met dit commando worden de statements in deze loop continu uitgevoerd.
Alle andere functies en commando's zijn uitgelegd in het onderstaande gedeelte 'Code' met behulp van 'Opmerkingen'.
Nadat het programma is geschreven en uitgevoerd, stuurt de Raspberry Pi de tekens één voor één naar het LCD-scherm en geeft het LCD-scherm de tekens op het scherm weer.