/*
LiquidCrystal Library - Hello World
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.
This sketch prints "Hello World!" to the LCD
and shows the time.
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
Uw contrast staat niet goed, probeer van pin3 een 10K weerstand naar de 5V bij te zetten.
Kans is groot dat het dan te licht gaat zijn, met de waarde kan je experimenteren of beter plaats een potmetertje van 10K tussen GND en de 5V, de loper op pin 3 om het contrast in te stellen.
Ik had het Engelstalige onderwerp al gezien, en gereageerd.
Daarop heb jij waarschijnlijk ontdekt dat er een Nederlandstalig deel is, en 'm hier ook een keer neergezet.
De foto is niet heel duidelijk door de flits van je telefoon en de vingerafdrukken zo te zien.
Ik kan aan die foto niet echt zien dat de backlight niet goed is, want de flits maakt licht zodat de karakters wel zichtbaar zijn.
Maar in het andere onderwerp heb je verteld dat je pinnen 15 en 16 niet hebt aangesloten.
Die zijn juist bedoeld voor de backlight, dus als je die niet aansluit, heb je ook geen backlight.
De meeste (maar niet alle) LCD modules zijn zo gemaakt dat je hier gewoon 5 volt op aan moet sluiten om licht te maken.
Als dit niet een van die meesten is, dan moet je er ook een weerstand tussen zetten.
Maar ik zie wel meer dat er mis gaat.
De eerste keer dat je een LCD gaat proberen, gebruik je natuurlijk de Hello World sketch om te leren van dat voorbeeld.
Maar nu heb je iets heel anders staan op je scherm.
Alleen, als je heel goed kijkt, zie je wel dat het zelfde patroon te herkennen is in wat er op je scherm staat.
In plaats van de h staat er een l, en in plaats van alle l'en staan er m's.
Maar dat lijkt geen vaste afwijking te zijn (het verschil tussen een h en een l is 4, maar tussen een l en een m is dat maar 1).
Ik vermoed dat je de verbindingen in de module gestoken hebt, maar niet gesoldeerd.
Daardoor krijg je dus geen goede verbinding en dus ook geen goede overdracht van de data die je naar je scherm stuurt.
Dus zorg er ook voor dat je de verbindingen op een goede wijze maakt, en niet maar half.
Verder heb je een 2004 scherm, maar vertel je je Arduino dat het een 1602 is.
Dat moet je in je sketch ook nog ff aanpassen want anders gebeuren er weer heel andere interessante dingen.
(Je kunt natuurlijk ook niet aanpassen en dan es zien wat er gebeurt, ook weer leerzaam...).
Mag ik vragen waarom je een LCD scherm hebt zonder I2c module? Het werkt zoveel makkelijker, gewoon 5 volt eraan, je SCL en SDA met een pull-up aan de I2c pinnen en gaan. Je hebt veel minder kans op fouten en bovenal maar 2 pinnen in gebruik op je Arduino ipv 15.
Hoi even off topic.
Als je een I2c module gebruikt.
Kun je dan gewoon de normale commando's gebruiken voor het lcd.
Of moet je dan ook de code aanpassen?
Een standaard sketch is leuk als ie werkt, maar je moet wel opgeven hoe de pins zijn aangesloten.
Dus niet alleen maar het adres van je I2C module.
Het is niet voor niets dat hier enkele vragen per week over komen op het forum, en dat er een scanner sketch voor gemaakt is om de juiste aansluitingen te vinden.
Bij die aansluitingen gaat er het dus om welke pins van de chip zijn aangesloten aan welke pins van het display.
Nou weet ik niet zeker meer of ik niet toevallig een andere library heb gebruikt als degene die jij hebt gezien (er worden verschillende adviezen gegeven hier op het forum).
Maar ik vind geen voorbeeld voor een I2C display in de IDE, of ik weet niet waar ik naar moet zoeken.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
}
Je hoeft dus geen pins meer toe te wijzen, alleen je i2c adresseren.
Als ik nu op de knop blijf drukken , zie ik bvb eerst op de 2de rij allemaal x verschijnen en dan gaat het verder op lijn 4 om dan terug op lijn 1 te beginnen en dan op lijn 3 en dan van begin af aan
Hoe krijg ik het zo geprogrammeerd dat eerst de lijn 0 dan 1 dan 2 dan 3 en terug op O
Graag effe wat hulp gevraagt
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11, 5, 4, 3, 2);
int myKey=A2; // We gebruiken een analoge pin A2 en gebruiken hem als digital
int speaker=6; // Luidspreker sluiten we aan op Pin 6 en GND
int val=0; // De waarde van de Sleutel op en neer
int myTone=440; // Freq. van de toon
Dit soort displays werken inderdaad met karakter streams (1 -> 3 en 2-> 4). Dat hij op regel 2 begint is eigenlijk toeval. In werkelijkheid begint hij wel op regel 1 maar zolang jij geen toets indrukt genereer je ongelimiteerd x per seconden een spatie die je op het display zet. Je zult het programma toch wel iets anders moeten schrijven door bijvoorbeeld gebruik te maken van de cursor functie elke keer als je een karakter (of string) naar het display wil sturen.
Alleen zal het in zijn huidige vorm wel heel erg snel spaties gaan neerzetten.
Daarnaast zou ik een nieuwe post starten voor jouw probleem. Lijkt mij dat jouw vraag niets met de originele post te maken heeft.
Pen 15 en 16 zijn inderdaad voor de backlight verlichting.
Verder zie ik ook op de foto dat je 8 data pennen aangesloten heb, dit hoeven er maar 4 te zijn.
Pen 5, 4, 3 en 2.
Lekker op tijd gereageerd..... ruim een jaar later