Arduino-opdrachten/Display
Sjabloon
Voorkennis | spanning en stroom |
Leerdoelen | LED, weerstand, breadboard, schema |
Onderdelen |
breadboard, LED, weerstand 220 ohm (rood-rood-bruin-goud), weerstand 10K ohm (bruin-zwart-oranje-goud), Arduino/Arduino UNO |
Libraries en functies |
Display
Met een eenvoudig 16x2 character-display kun je je Arduino-schakeling voor veel toepassingen "autonoom" maken: je kunt dit dan zonder computer laten werken, terwijl je toch de nodige informatie kunt laten zien.
- Een nadeel van een display is dat je hiervoor zoveel Arduino-pinnen nodig hebt. Je kunt ook een I2C-display-aansturing gebruiken: door deze extra elektronica heb je dan maar een paar pinnen van de Arduino nodig voor het display. We behandelen hier alleen de directe aansturing, zonder I2C.
Voor het aansturen van het display gebruik je een library: dit neemt je alle lastige programmeerwerk uit handen.
Opbouwen van de schakeling
Voor het aansluiten van een dergelijk display moet je veel verbindingen maken. Dit is niet moeilijk, maar wel een precies werkje.
- maak de verbindingen aan het display van rechts (pin 1) naar links.
- de pinnen 7, 8, 9, en 10 sla je over.
- gebruik draden van de juiste kleur om niet in de war te raken.
Plaats de potmeter en sluit deze aan (loper aan display pin3; links aan 0V, rechts aan 5V).
- voor het gebruik op een breadboard heb je een klein formaat instelpotmeter nodig. Deze is bij de meeste displays meegeleverd.
NB: als het display niet lijkt te werken, kan het helpen om het contrast van het display aan te passen, via de potmeter.
NB: in deze schakeling gaan er ervan uit dat de display-module een ingebouwde serieweerstand heeft voor de LED van de achtergrondverlichting. Controleer via de datasheet van je display of dat het geval is. Als de module geen serieweerstand voor de LED heeft, moet je in één van de LED-verbindingen van het display (pin 15: 5V, pin 16: 0V) een serieweerstand van 220 Ohm monteren.
NB: het kan nodig zijn om een strip met pinnen aan het display te solderen, voordat je dit op het breadboard kunt plaatsen. Zie bijvoorbeeld de aanwijzingen op: https://learn.adafruit.com/adafruit-arduino-lesson-11-lcd-displays-1/soldering-pins-to-the-display
Schema
Naast het display is een potmeter gemonteerd: daarmee kun je de helderheid van het display veranderen.
Programma
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // LCD interface pins
void setup() {
lcd.begin(16, 2); // LCD's number of columns and rows
lcd.print("hello, world!");
}
void loop() {
lcd.noDisplay(); // Display off
delay(500);
lcd.display(); // Display on
delay(500);
}
Uitleg van het programma
Het eerste programma dat we voor het display gebruiken is een variant van "Hello World".
#include <LiquidCrystal.h>
- invoegen van de definities van de display-libraryLiquidCrystal lcd(7, 8, 9, 10, 11, 12);
- maken van een LiquiCrystal (display)-objectlcd
, met de pinnummers van het interface- dit zijn de pinnummers van de schakeling die we hier beschrijven: in het Arduino-voorbeeld in de IDE worden andere pinnummers gebruikt, het display is daar anders aangesloten.
lcd.begin(16, 2);
- geef aantal kolommen en rijen oplcd.print("Hello World");
- stuur tekst naar displaylcd.display();
- zet display aanlcd.nodisplay;
- zet display uit
Voor het tonen van tekst op het display gebruik je dezelfde print-functie als voor het tonen van tekst in de seriële monitor.
Een beschrijving van de LiquidCrystal library vind je op https://www.arduino.cc/en/Reference/LiquidCrystal. Bestudeer die beschrijving als je meer wilt dan alleen deze eenvoudige vorm van gebruik.
Er zijn ook varianten van deze library waarmee je het display van I2C enz. kunt aansturen.
Vragen en opdrachten
Eerste experimenten
Als je de Display-voorbeelden uit de Arduino IDE wilt gebruiken, dan moet je de pinnummering aanpassen, zoals hierboven:
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);