Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Expositie:The Primal Display

Exhibit:The Primal Display Deze zeer eenvoudige protip verbindt een LCD met een Raspberry Pi om alle gegevens weer te geven die u nodig hebt, zoals metingen van een temperatuursensor.

Verhaal

Inleiding

LCD is een zeer nuttige toevoeging aan elk project. Deze zeer eenvoudige protip verbindt LCD met Raspberry Pi om alle gegevens weer te geven die u nodig hebt. In ons geval zullen we de metingen van een temperatuursensor weergeven.

Hardware

We hebben een goedkope HDD44780-compatibele LCD, Raspberry Pi 3 en temperatuur- en vochtigheidssensor DHT11, micro SD-kaart en stroombron, 1-2 potentiometers, breadboard en wat draden nodig. LCD, breadboard, draden, potentiometers en sensor zijn te vinden in deze kit. We gaan LCD aansluiten met 6 GPIO-pinnen. Hoewel er een manier is om verbinding te maken via I2C, is dit de meest directe methode en heeft het belangrijke voordelen:

  • Maakt goedkope lcd's mogelijk te gebruiken
  • Vereist geen I2C-stuurprogramma's
  • Stelt niet de enige seriële poort op de Pi.

Dingen bedraden

We zullen een paar opties hebben om het LCD-scherm aan te sluiten:een eenvoudige 4-bits verbinding met één potentiometer voor contrast en helderheid en een iets complexere 8-bits verbinding met geavanceerde controle over contrast en helderheid met 2 potentiometers. De potentiometers kunnen ook worden vervangen door weerstanden van 1K of 3K Ohm.

Elk teken en elke opdracht wordt naar het LCD-scherm verzonden als een byte (8 bits) aan gegevens. Dus in de 4-bits modus wordt de byte gesplitst in twee sets van 4 bits die na elkaar over 4 datakabels worden verzonden. In theorie brengt de 8-bit-modus gegevens twee keer zo snel over als de 4-bit-modus, omdat de hele byte in één keer over 8 datakabels wordt verzonden. Het LCD-stuurprogramma heeft echter relatief veel tijd nodig om de gegevens te verwerken, dus welke modus u ook gebruikt, u zult geen echt verschil merken in de gegevensoverdrachtsnelheid tussen 8-bits en 4-bits modi.

Lcd-pinlay-out

De gegevenspinnen (DB0-7 pinnen 7-14) zijn eenvoudig. Ze sturen gegevens naar het display (wisselend hoog/laag). We gebruiken alleen de schrijfmodus en lezen geen gegevens.

De registerselectpin (RS pin 4) heeft twee toepassingen. Wanneer het laag wordt getrokken, kan het commando's naar het LCD-scherm sturen (zoals de positie om naar toe te gaan of het scherm leeg te maken). Dit wordt schrijven naar het instructie- of commandoregister genoemd of gegevens naar het scherm sturen.

De lees/schrijfpin (R/W pin 5) wordt laag getrokken (alleen schrijven) omdat we in deze protip alleen naar het LCD-scherm schrijven.

De enablepin (E pin 6) wordt omgeschakeld om gegevens naar de registers te schrijven.

Eenvoudige LCD-verbinding

  • Pen #1 van het LCD-scherm gaat naar aarde (zwarte draad)
  • Pen #2 van het LCD-scherm gaat naar +5V (rode draad)
  • Pin #3 (Vo) wordt aangesloten op het midden van de potentiometer (oranje draad)
  • Pin #4 (RS) wordt aangesloten op de Cobbler #37 (gele draad)
  • Pin #5 (RW) gaat naar aarde (zwarte draad)
  • Pin #6 (EN) wordt aangesloten op Cobbler #35 (oranje draad)
  • Lcd-pinnen #7, #8, #9 en #10 overslaan
  • Pin #11 (D4) wordt aangesloten op schoenmaker #33 (witte draad)
  • Pin #12 (D5) wordt aangesloten op Cobbler #31 (grijze draad)
  • Pin #13 (D6) wordt aangesloten op Cobber #29 (paarse draad)
  • Pin #14 (D7) wordt aangesloten op Cobber #23 (blauwe draad)
  • Pin #15 (LED +) gaat naar +5V (rode draad)
  • Pin #16 (LED -) gaat naar aarde (zwarte draad)

Eenvoudig schakelschema voor LCD-verbinding

Geavanceerd LCD-verbinding

  • Pen #1 van het LCD-scherm gaat naar aarde (zwarte draad)
  • Pen #2 van het LCD-scherm gaat naar +5V (rode draad)
  • Pin #3 (Vo) wordt aangesloten op het midden van de potentiometer (oranje draad)
  • Pin #4 (RS) wordt aangesloten op de Cobbler #37 (gele draad)
  • Pin #5 (RW) gaat naar aarde (zwarte draad)
  • Pin #6 (EN) wordt aangesloten op Cobbler #35 (oranje draad)
  • Pin #7 (D0) wordt aangesloten op schoenmaker #40 (blauwe draad)
  • Pin #8 (D1) wordt aangesloten op schoenmaker #38 (blauwe draad)
  • Pen #9 (D2) wordt aangesloten op schoenmaker #36 (blauwe draad)
  • Pin #10 (D3) wordt aangesloten op schoenmaker #32 (blauwe draad)
  • Pin #11 (D4) wordt aangesloten op schoenmaker #33 (witte draad)
  • Pin #12 (D5) wordt aangesloten op Cobbler #31 (grijze draad)
  • Pin #13 (D6) wordt aangesloten op Cobber #29 (paarse draad)
  • Pin #14 (D7) wordt aangesloten op Cobber #23 (blauwe draad)
  • Pin #15 (LED +) gaat naar +5V (rode draad)
  • Pin #16 (LED -) gaat naar aarde (zwarte draad)

Geavanceerd schakelschema voor lcd-aansluiting

INTERESSANT:

We hebben nu 2 potentiometers:de linker is verantwoordelijk voor het contrast en de rechter is verantwoordelijk voor de helderheid. Het is je misschien opgevallen dat we de 5V-draad (rode) van de contrastpotentiometer hebben verwijderd, omdat er geen extra spanningsverwerking nodig is omdat we een tweede potentiometer hebben die verantwoordelijk is voor de helderheid.

DHT11-sensorverbinding

DHT11-sensoren kunnen opties met 3 of 4 pinnen hebben, maar het maakt niet uit, want het gebruikt slechts 3 pinnen om de gegevens te lezen. Als je een sensor met 4 pinnen hebt, hoef je alleen Vcc, signaal aan te sluiten /Data en Ground pinnen en negeer de 4e. Op bovenstaande schema's ziet u een 4-pins sensorverbinding.

DHT11-sensor:3- en 4-pins opties

BELANGRIJK:

DHT11-sensor vereist 3,3 V tot 5 V. Laten we eerst de DHT11-sensor aansluiten op 3.3V Raspberry Pi-pin 1 als het werkt, deze spanning is voldoende als de metingen raar zijn of als er helemaal geen metingen zijn, probeer hem aan te sluiten op 5V Raspberry Pi-pin 2. Deze protip gebruikt 3,3V.

Tot nu toe gaat het goed, nadat we de Vcc- en Ground-pinnen hebben aangesloten, moeten we de signaalconnector van de sensor aansluiten op de fysieke pin 12 van de Raspberry Pi (GPIO 18).

Vereiste bibliotheken

Voordat we overgaan tot de exacte codering, moeten we controleren of we bibliotheken voor weergave en sensor nodig hebben en deze installeren als ze ontbreken.

Voor de zekerheid (een beetje paranoia :)) we hebben alle benodigde Python-dingen:

sudo apt-get install build-essentiële python-dev

RPLCD Python-bibliotheek

De RPLCD-bibliotheek kan worden geïnstalleerd vanuit de Python Package Index of PIP. Het is misschien al geïnstalleerd op je Raspbian, maar als dat niet het geval is, voer dan deze opdracht uit om het te installeren:

sudo apt-get install python-pip

Nadat je PIP hebt geïnstalleerd, installeer je de RPLCD-bibliotheek door het volgende in te voeren:

sudo pip install RPLCD

Adafruit DHT11 Python-bibliotheek

We gebruiken de Adafruit DHT11 Python-bibliotheek. Je kunt de bibliotheek downloaden met Git, dus als je Git niet op je Raspberry Pi hebt geïnstalleerd, voer je deze opdracht uit:

sudo apt-get install git

Je kunt ook het volgende proberen:

sudo apt-get install git-core

BELANGRIJK:

Als je een foutmelding krijgt bij een alternatieve Git-installatie, voer je het volgende uit:

sudo apt-get update
sudo apt-get install git-core

Voer nu het commando uit om de bibliotheek van Git te downloaden:

git-kloon https://github.com/adafruit/Adafruit_Python_DHT.git

Ga naar nieuwe map met:

cd Adafruit_Python_DHT

En installeer de bibliotheek met:

sudo python setup.py installeren

Laten we naar scripting gaan.

Python-script

We gaan Python gebruiken om onze display en sensor te programmeren. Ik gebruik Visual Studio als IDE, maar je kunt alles gebruiken waar je liever mee werkt.

Eerst moeten we via SSH verbinding maken met de Pi (bijvoorbeeld met PuTTY). Daarna gebruiken we een script met de naam temperature.py.

Om het script te maken, kunnen we de nano-editor gebruiken. Nadat je verbinding hebt gemaakt met je Pi, voer je de volgende opdracht uit om een ​​bestand met de naam temperatuur.py te maken:

sudo nano temperatuur.py

Plak vervolgens de volgende code (8-bits optie) in dat bestand en druk op CTRL-X om af te sluiten en op Y om op te slaan wanneer daarom wordt gevraagd.

#!/usr/bin/python
importeer RPi.GPIO als GPIO
importeer tijd
importeer Adafruit_DHT
van RPLCD importeer CharLCD
# We noemen een RPi.GPIO gebouwd -in functie GPIO.cleanup() om alle poorten die we hebben gebruikt op te schonen
GPIO.cleanup()
# Stel nu LCD-schermpinnen in (8-bit-modus)
lcd =CharLCD (numbering_mode=GPIO.BOARD, cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[40, 38, 36, 32, 33, 31, 29, 23])
# Get senosr meetwaarden en geef ze in een lus weer
terwijl True:
# Sensormetingen ophalen
# BELANGRIJK:11 is het sensortype (DHT11) en 18 is het GPIO-nummer (of fysieke pin 12)
vochtigheid, temperatuur =Adafruit_DHT.read_retry(11, 18)
print('Temp:{0:0.1f} C Vochtigheid:{1:0.1f} %'.format(temperatuur, vochtigheid))
# Wis en stel initiële cursorpositie voor LCD-scherm in
lcd.clear()
lcd.cursor_pos =(0, 0)
# Render temperatuurmetingen
lcd.write_string(“ Temp:%d C” % temperatuur)
# Verplaats cursor naar tweede rij
lcd.cursor_pos =(1, 0)
# Render vochtigheidsmetingen
lcd.write_string(“Vochtigheid:%d %%” % vochtigheid)
# Pauzeer uitvoering gedurende 5 seconden
time.sleep(5)

Het bovenstaande voorbeeld gebruikt een 8-bits verbindingsoptie met de fysieke pincodes van de Raspberry Pi voor LCD-schermen, niet de BCM- of GPIO-nummers. Ik neem aan dat je je LCD-scherm hebt aangesloten zoals in de bovenstaande diagrammen, maar je kunt altijd de pinnen veranderen als je dat nodig hebt. Een eenvoudige 4-bits verbindingscode is bijgevoegd in het gedeelte Code.

Lees meer details :Exhibit:The Primal Display


Productieproces

  1. Deegrol
  2. Bowlingspeld
  3. Liquid Crystal Display (LCD)
  4. Ontwikkeling van stuurprogramma's voor Linux-apparaten:het subsysteem voor pincontrole
  5. De Drone Pi
  6. De glazen cockpit:het verhaal van weergavetechnologieën in spaceshuttles
  7. Ontwijk de Defs!
  8. 5 W's van de draagbare brailleleesregel
  9. 74LS74:een allesomvattende gids voor de dubbele flip-flop
  10. Atlas Copco exposeert op de WIN Expo 2017
  11. Atlas Copco exposeert op NPE2018:The Plastics Show