LCD display voor het Arduino home automation system

LCD display voor het Arduino home automation system

Gepubliceerd op: 15-02-2015 19:19

Hé, jij houdt niet van advertenties maar wél van kwaliteitscontent? Dat mag, maar misschien wil je dan een donatie doen via PayPal of creditcard?

Of doe je aankopen via één van onze winkelpartner-links in de zijbalk.

Jouw eigen Arduino domotica systeem bedien je natuurlijk via je smartphone, maar soms is het best handig om gewoon een display in je woonkamer te hebben waarop je direct de meest vitale gegevens kunt raadplegen. In dit artikel sluit ik een 4 x 20 LCD display aan en verwerk het geheel in een eenvoudige behuizing.

Je staat op het punt om weg te gaan dus je wilt nog even snel weten hoe koud het buiten is. Of je vraagt je af hoeveel stroom die TV met Home Cinema set nou eigenlijk verbruikt. Op die momenten is het onhandig om je telefoon te moeten pakken en te wachten tot de web-interface geladen is, een vast display met de belangrijkste data erop zou handig zijn!

HD44780 LCD display voor Arduino

LCD staat voor Liquid Crystal Display (vloeibare kristallen scherm), de meest voorkomende LCD-displays die eenvoudig te gebruiken zijn in combinatie met een Arduino zijn karakter displays met een Hitachi HD44780-controller.

Deze displays zijn opgebouwd uit een aantal 5x7 mini-matrixjes waarop een standaard gedefinieerde set ASCII karakters kan worden getoond. Deze LCD's zijn dus perfect om teksten en cijfers op weer te geven, maar niet geschikt voor afbeeldingen of iconen. Wel kun je 8 custom karakters definiëren maar die kunnen niet groter zijn dan 5 bij 7 pixels.

De meest voorkomende afmetingen van deze HD44780 displays zijn 2 rijen van 16 karakters (2x16), 2x20 en 4x20. De displays worden geleverd inclusief LED achtergrondverlichting in diverse kleuren zoals groen en blauw en zelfs RGB is mogelijk. Let overigens goed op bij DX.com, de plaatjes en beschrijvingen zijn tegenstrijdig en erg verwarrend!

HD44780 LCD aansluiten

De HD44780 controller beschikt standaard over een 8-bits parallelle aansluiting, samen met nog wat extra stuurlijnen, ground, 5 volt en background verlichting kom je op een totaal van 16 aansluitingen. Dat is nogal een soldeerwerkje! Vroeger op de parallelle poort ging dit wel zo maar het kan makkelijker: de Arduino kan namelijk ook overweg met 4-bits aansturing, hiervoor gebruik je alleen datalijn 4 t/m 7, 0 t/m 3 kan je open laten. Nu hoef je dus nog maar 12 draadjes te solderen. Gelukkig kan het tegenwoordig nog makkelijker!

Hitachi HD44780 display met I2C op een Arduino Mega 2560

LCD display met I2C-backpack

Door de grote vraag van Arduino hobbyisten wereldwijd zijn de prijzen van zogenoemde I2C-backpacks enorm gedaald. Een I2C-backpack wordt achterop de 16 pins aansluiting van een HD44780 display gesoldeerd en vertaalt de I2C commando's naar 8-bits parallelle commando's.

De Inter-Integrated Circuit (IIC = I2C = I2C = TWI) standaard is een communicatie protocol dat gebruik maakt van 2 lijnen, data en clock, samen met de ground en 5 volt hoef je dus nog maar 4 touwtjes aan te sluiten, pure winst! Voor die paar euro extra ga ik niet meer moeilijk doen.

Je kunt de I2C-converter los kopen en achteraf op een display monteren maar ik ga liever voor een kant-en-klaar display met I2C om zo min mogelijk te hoeven solderen. De hierboven gelinkte displays hebben allemaal al een I2C-converter aan boord!

De Arduino heeft een in de hardware gedefinieerde I2C-bus. Je kunt I2C devices dus niet zomaar op iedere poort aansluiten. Bij de Arduino Uno bevindt de I2C-bus zich op analoog 4 en 5 (A4 en A5). Ik gebruik in mijn project een Arduino Mega 2560 en daar zit de I2C aansluiting op pin 20 en 21.

LiquidCrystal library met I2C ondersteuning

Alle draadjes verbonden? Dan kunnen we beginnen met programmeren! De standaard LCD library van Arduino heet LiquidCrystal. Helaas kan deze alleen overweg met 4- of 8-bits displays. Gelukkig zijn er alternatieve en verbeterde library's beschikbaar die wel I2C displays kunnen aansturen. Zelf gebruik ik de uitstekende LiquidCrystal library van fmalperitada. Let op dat je eerst de oude library uit je Arduino IDE verwijderd en dan de nieuwe in dezelfde map plaatst. Eenmaal geïnstalleerd kun je direct met behulp van de meegeleverde voorbeeld-sketches aan de slag.

Altijd inzicht in je stroomverbruik via het Arduino LCD display

LCD display monteren

Een losliggend display is natuurlijk niet erg charmant en zeker als je hem in de huiskamer wilt hebben zul je alles in de strijd moeten gooien om je vrouw/vriendin te overtuigen van het nut van dat lelijke ding ;-) Ik heb er voor gekozen om een eenvoudige standaard te buigen van plexiglas (PMMA), dit is een glasheldere kunststof en is eenvoudig te bewerken boven een warmtedraad. Met een paar M3-boutjes en afstandshoudertjes zit het display er netjes in verwerkt.

De Arduino Mega 2560 is hier in gebruik als meesterbrein van mijn Home Automation System. Vandaar dat hij verder is uitgerust met antennes voor de 433 MHz-zender en -ontvanger om de buitensensor uit te lezen en KAKU-modules aan te sturen, een DHT11 luchtvochtigheidssensor, een DS18B20 temperatuursensor en een BMP085 luchtdruksensor.

Ik heb het voor elkaar :-) mijn display prijkt op het dressoir in de woonkamer en op deze wijze heb ik dus altijd inzicht in het binnen-, buiten- en bovenklimaat en in mijn actuele energieverbruik. Leuk extraatje: omdat mijn meterkast-Arduino ook de status van mijn deurbel uitleest laat ik de huiskamer Arduino mee piepen en knipperen als er wordt aangebeld.

1 reacties op dit artikel »

Meer van dit soort artikelen lezen?