Det 8 knappers KLAVER, er nu tilføjet et 4 x 20 karakters LCD-display
Formålet med dette eksperiment er, at lære hvordan man tilslutter et LCD-display, samt hvordan man styrer CURSOR-placering og udskriver på det.
På tegningen ser opstillingen således ud:
Desværre kunne jeg ikke
finde et modul til et 4 linjers display, men da det jo er samme benforbindelse,
er skaden meget begrænset.
Displayet er her tegnet på hovedet, og d.v.s., at ben-forbindelserne begynder
fra højre med nr. 1 mod venstre ben16. Jeg har ikke forbundet ben 15 og ben 16,
da det jo er baggrundslys, og sikkert kræve mere strøm en jeg ønsker at give
det via en USB-forbindelse.
"READ/WRITE"
forbindelsen på LCD-ben 5 er, som i de fleste tilfælde, hvor man ikke skal
læse fra displayet, men bare skrive til det, forbundet til stel.
"Register Select" på LCD-ben 4 er forbundet til ARDUINO UNE' DIGITAL
pin8, og LCD's "enable" er forbundet til DIGITAL pin9.
DATA-pindende "D4 til D7" er forbundet i rækkefølge på ARDUINO UNO
til DIGITAL pin 4 til 7, så der er kronologi i det. Hvis man har fulgt med i
ARDUINO-forums på nettet, vil man have lagt mærke til, at det er disse
forbindelser, de fleste har problemer med at få lagt rigtigt på plads, samt
defineret, i deres programmer.
DEMO-videoen ses her: https://plus.google.com/111931115004210443802/videos?hl=da&pid=6122335140437938530&oid=111931115004210443802
På diagrammet ser det således ud:
Her vil jeg ikke
kommentere så meget, men gå videre til programmet til styring af displayet.
Den opmærksomme læser vil se, at der er meget "grønt" i denne kode,
og det er fordi jeg gør mig en hel del umage for at dokumentere, hvad der skal
til for at forstå programmet.
Af dette program ses, hvorledes LCD-displayet defineres i ARDUINO UNO. Der vises en række af de almindelige lcd-kommandoer - der er et eksempel på brugen af SETUP, og LOOP kalder under-routiner, der vises også hvorledes programmet stoppes i sit løb, ved at trykke på bare een af de 8 knapper knapper, ligegyldig hvilken.
#include <LiquidCrystal.h> // initialize biblioteket til LCD-DISPLAYET //***************************************************************** //** Vælg de pinde på LCD der skal bruges ** //***************************************************************** // LiquidCrystal lcd(RS, E, D4, D5, D6, D7) ** //***************************************************************** LiquidCrystal lcd(8,9,4,5,6,7); // standard for OZ6YM, Palle // LCD-definitionen følger ArduinoUno-pinnr på de digitale ben ** // LDC's RS forbindes til UNO's ben 8, // LCD's E forbindes til UNO's ben 9, // LCD's D4,D5,D6,D7 forbindes til UNO's ben 4,5,6 og 7 //***************************************************************** const int colums = 20; // 16 eller 20 karakterer pr. linje const int rows = 4; // 2 eller 4 linjer //***************************************************************** //************ tællere der benyttes i programmet ****************** //***************************************************************** int x; // linje-tæller int y; // gennemløbs-tæller, tæller til 10 og nulstilles int z = 1; // antal gange de 4 linjer er skrevet int analogPin = A0; // port der læser knapperne //***************************************************************** void setup() { //***************************************************************** Serial.begin(9600); // aktiveres hvis man skal DEBUGGE program //***************************************************************** //**** Initialicer LCD med antal collonner og linjer ****** //***************************************************************** //** setup() bruges i begyndelse af et program til at initialicere //** ting der kun skal gøres een gang i programmet
} //** Herefter defineres andre
rutiner der skal benyttes i programmet //********************************************************************** //** END of PROGRAM ** //********************************************************************** |