Arduino-opdrachten/Display

Uit basis
Naar navigatie springen Naar zoeken springen
Arduino opdrachten

Zie ook Regels en richtlijnen
Zie ook Artikelen bewerken

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

Bestand:Voorbeeld.png

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

Display aan Arduino

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

Display aan Arduino

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".

  1. #include <LiquidCrystal.h> - invoegen van de definities van de display-library
  2. LiquidCrystal lcd(7, 8, 9, 10, 11, 12); - maken van een LiquiCrystal (display)-object lcd, met de pinnummers van het interface
    1. 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.
  3. lcd.begin(16, 2); - geef aantal kolommen en rijen op
  4. lcd.print("Hello World"); - stuur tekst naar display
  5. lcd.display(); - zet display aan
  6. lcd.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);

Verdiepingsvragen