In dit project leg ik uit hoe je een I2C LCD kan aansluiten.
Ook zal ik jullie laten zien hoe je tekst op een LCD kan zetten en hoe je deze kan laten bewegen. Het beeldscherm dat wij gebruiken sluiten we aan via de I2C op de achterkant, dat houdt in dat we maar 4 jumper wires nodig hebben.
We hoeven ook geen pot meter aan te sluiten want die zit ingebouwd in de I2C module. Deze kunnen we aanpassen door hem met een schroevendraaier meer naar links of meer naar rechts te draaien, door dit te doen veranderen we de helderheid van het scherm.
- Niveau – Beginner 25%
- Tijdsduur – 10/15Min 25%
- Kosten – €38,95 euro compleet 25%
Stap 1: Benodigdheden Arduino LCD
Stap 2: Bouwen en Bedraden
Zodra je alle onderdelen hebt verzameld kan je deze met elkaar verbinden.
Om de Arduino op het beeldscherm aan te sluiten moet je een jumper wire van de 5V in de VCC van het beeldscherm doen. Op het moment dat je dat hebt gedaan doe je een jumper wire van de GND van de Arduino naar de GND van het beeldscherm. Verbind vervolgens nog een jumper wire van A4 naar de SDA pin op het beeldscherm en een jumper wire van A5 naar de SCL pin op het beeldscherm.
De reden dat je A4 en A5 gebruikt is omdat dit de SDA en de SCL pinnen van de Arduino UNO zijn. Waarbij A4 de SDA pin is en A5 de SCL pin is.
Op het moment dat je alles hebt aangesloten kan je doorgaan naar stap 3 programmeren.
Stap 3: Programmeren
Nu beginnen we met programmeren.
Zorg ervoor dat je de LiquidCrystal_I2C library en de Wire library hebt. Als je deze niet hebt werkt je code niet.
Deze librarys voeg je toe door als je in de Arduino IDE zit op schets te drukken. Daarna selecteer je bibliotheek gebruiken. Vervolgens klik je op bibliotheek beheren als je dat gedaan hebt krijg je een pop-up schermpje, typ rechts bovenin de bibliotheek die je nodig hebt bijvoorbeeld LiquidCrystal_I2C. Klik vervolgens op installeren. Je hebt nu een extra library geïmporteerd.
Het is een redelijk korte code waar je in de void setup het beeldscherm aanzet en de tekst schrijft. In de void loop ervoor zorgt dat de tekst iedere 150 milliseconden een vakje naar links gaat. Je kan dit veranderen door bijvoorbeeld de left naar right te veranderen, dan gaat hij van links naar rechts. Of de delay aanpassen sneller of slomer gaat.
Zodra je de code op de Arduino zet zie je tekst die van rechts naar links beweegt.
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
//hier zetten we alle componenten op een pin
int sensor = A0;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int Value = 0;
void setup(){
//Pinnen geven een puls
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop(){
//Leest A0
Value = analogRead(sensor);
delay(100);
//als waar 110 of hoger is gaat lampje aan
if(Value >= 110){
digitalWrite(led1, HIGH);
}else{
//anders gaat hij uit
digitalWrite(led1, LOW);
}
if(Value >= 125){
digitalWrite(led2, HIGH);
}else{
digitalWrite(led2, LOW);
}
if(Value >= 140){
digitalWrite(led3, HIGH);
}else{
digitalWrite(led3, LOW);
}
if(Value >= 155){
digitalWrite(led4, HIGH);
}else{
digitalWrite(led4, LOW);
}
if(Value >= 170){
digitalWrite(led5, HIGH);
}else{
digitalWrite(led5, LOW);
}
}
Erg goed, werkt prima,
Maar nu wil ik een potmeter aansluiten op de A0 arduino en die waarde uitlezen op de LCD?
Waar kunnen wij de tekst invoeren? Er is nu enkel een leeg scherm dat brandt.
Mooi erg bedankt.
Borgar Jonkman