Inhoudsopgave:
Video: DIY I2C LCD-scherm met ingangen - Ajarnpa
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Het typische parallelle LCD-scherm dat wordt gebruikt met een Arduino (16x2 of 20x4) heeft 16 pinnen. Er zijn slechts 6 I/O-pinnen nodig op de Arduino, maar wat als je dat zou kunnen krijgen tot twee I/O-pinnen, en die pinnen nog steeds beschikbaar hebben voor andere apparaten?
De I2C-interface zit op pinnen A4 en A5 van de Arduino UNO. Deze zijn adresseerbaar en kunnen daarom worden gedeeld met andere I2C-apparaten met verschillende adressen. Nu kun je I2C LCD's kopen, en je kunt zelfs I2C LCD's vinden met verschillende adressen, maar het zijn meestal tweeregelige LCD's en de adressen zijn vast. Ik ga je laten zien hoe je je eigen I2C-interface kunt bouwen, een van de 8 adressen kunt selecteren en zelfs tot 8 ingangen of uitgangen kunt toevoegen, met behulp van een MCP23017 16-poorts expander-chip. Dit is dezelfde chip die Adafruit gebruikt op hun I2C LCD Keypad Shield, en gebruikt hun bibliotheek om ermee te praten. U kunt zelfs maximaal 16 LCD-schermen hebben, of maximaal 128 digitale I/O-pinnen en combinaties daarvan
MCP23017
20x4 LCD of 16x2 LCD
Stap 1: LCD-bedrading
De aansluitingen tussen het Hitachi type parallel LCD (2 of 4 lijns) en de MCP23017 zijn weergegeven op de foto.
SDA (pin 13 op de MCP23017) maakt verbinding met Arduino A4 en SCL (pin 12) maakt verbinding met Arduino A5. Sommigen suggereren 4.7k pull-up weerstanden (pin 13 tot +5v en pin 12 tot +5v), maar dit project werkt prima zonder hen.
Let op de 220 Ohm weerstand op de LCD k (kathode, gnd) aansluiting. Dit is een MUST!
Zonder dit kun je de MCP23107-achtergrondverlichtingspin opblazen. Er zijn 3 pinnen die u kunt gebruiken voor de achtergrondverlichting. Pin 1 heet BLAUW in de bibliotheek en Sketch, pin 28 heet GROEN en pin 27 heet ROOD. Als u een monochroom LCD-scherm hebt, kunt u een van de drie pinnen gebruiken en de bijbehorende kleurmarkering gebruiken. Als je een RGB-achtergrondverlichting hebt, kun je veel combinaties van kleuren krijgen. Bekijk ze op
De pinnen 15, 16 en 17 op de MCP23017 bepalen het I2C-adres. We hebben alle 3 geaard, omdat dit het standaardadres is dat de Adafruit-bibliotheek gebruikt. Om meerdere displays toe te voegen, of een ander adres te kiezen, zal de bibliotheek moeten worden aangepast, dus voorlopig gaan we voor de standaard.
Adafruit_MCP23017.h bevat de volgende regel:
#define MCP23017_ADDRESS 0x20
Pin 17 = A2, Pin 16 = A1 en Pin 15 = A0
0 = aarde, 1 = +5v
Het adresformaat is 0100A2A1A0, dus aangezien we alle 3 de lijnen hebben geaard, gebruiken we binair 0100000, of 20 in hex (0x20). 0100111 zou 27 zijn in hex (0x27).
Stap 2: Bedrading van de ingangsknoppen
We nemen 5 invoerknoppen op in dit project. We noemen ze Links, Rechts, Omhoog, Omlaag en Selecteren. Standaard drukknoppen zijn hiervoor ideaal, maar elke digitale aan/uit sensor zal werken.
Verbind uw knoppen als volgt:
Links verbindt tussen Gnd en pin 25 van de MCP23017
Rechts verbindt tussen Gnd en pin 22
Up verbindt tussen Gnd en pin 24
Down verbindt tussen Gnd en pin 23
Selecteer verbindingen tussen Gnd en pin 21
Stap 3: LCD-schets
Download en installeer de Adafruit-bibliotheek, voer het voorbeeld "Hello World" uit en deze lcd-interface is operationeel. We gebruikten pin 27 op de MCP23017, dus specificeer alleen ROOD voor de monochrome achtergrondverlichting.
We zullen het bewerken van het bibliotheekadres behandelen, zodat in een toekomstige stap maximaal 8 MCP23017-chips kunnen worden gebruikt. E-mail mij met vragen.
Voor meer projecten die deze chip en aanvullende code gebruiken, zie:
arduinotronics.blogspot.com/2015/11/wifi-rechargeable-internet-clock.html
arduinotronics.blogspot.com/2015/10/add-up-to-128-inputsoutputs-or-mix-to.html
Stap 4: Hoe het werkt
Hier is een project dat we hebben gebouwd met behulp van de Adafruit-versie van dit project. De doe-het-zelf-versie is hetzelfde bedraad, maar je hebt misschien de monochrome versie in plaats van de RGB-achtergrondverlichting.
Stap 5: Gegevensblad
Een volledige datasheet is beschikbaar op