LCD kijelző

## Leírás

Egy lélda program az LCD kijelző használatára. A kapcsolás érdekessége hogy a kontraszt állítást nem potenciométerrre bízom, hanem szoftveresen állítom be

## Kapcsolás

Szoftver ami kell hozzá:

-LiquidCrystal.h

Hardver ami kell hozzá

-Arduino

-LCD modul

-Dugdosó panel

## Példa

A program:

```
// LCD Demó

```

```
// LCD kijelző kezelése szoftveres kontraszt állításssal

```

```
#include "LiquidCrystal.h"                //LCD függvénykönyvtár betöltése

```

```
LiquidCrystal lcd(4, 5, 6, 7, 8, 9);      //LCD beállítása a D4-D9 digitális kimeneten

```

```
const int ContrastPin = 3;               //A 3-as lábon a kontraszt szabályozása

```

```
int Contrast = 60;                        //Alapértelmezett kontraszt érték

```

```
int mt = 0;                               //számláló segédváltozó

```

```
int srin;

```

```
int cup = 119;                            //w betű kódja a kontrasztfeszültséget fogja növelni

```

```
int cdn = 115;                            //s betű kódja a kontrasztot csökkenti

```

```

```

```
void setup() {

```

```
analogWrite(ContrastPin,Contrast);      //Kontraszt beállítása. A kimenet analóg PWM

```

```
lcd.begin(16, 2);                       //LCD inicializálása 16 karakter, 2 sor

```

```
lcd.print("Kontraszt:");                //Szöveg kiiratása 0.oszlop, 0.sor

```

```
Serial.begin(9600);                     //Soros port inicializálása

```

```
}

```

```
void loop() {

```

```
//Alap kiiratás

```

```
lcd.setCursor(11, 0);                   //11. karakter, 1. sor kijelölése

```

```
lcd.print(Contrast);                    //Kontraszt érték

```

```
if (Contrast<100){

```

```
lcd.print(" ");                       //2 számjegy esetén még egy karakter törlése

```

```
}

```

```
//Számláló

```

```
lcd.setCursor(0, 1);                    //0. karakter, 2. sor kijelölése

```

```
if (mt>255){mt=0;}                      //Ha nagyobb mint 1 byte, nullázok

```

```
String str = String(mt, HEX);           //Ciklisváltozó hexadecimálisan

```

```
lcd.print(str);                         //kiiratom a hexa számot

```

```
if (mt<16)lcd.print(" ");               //kiiratok még egy szóközt

```

```
lcd.print(":");

```

```
char c = (char) mt;                     //Ciklusváltozó mint karakter

```

```
lcd.setCursor(4, 1);                    //4. karakter,2.sor kijelölése

```

```
lcd.print(c);                           //Karakter kiiratása

```

```
mt+=1;                                  //ciklusváltozó növelése

```

```
//Kontraszt szabályozás a soros vonalon keresztül

```

```
if (Serial.available() > 0) {            //Jött a soros vonalon adat?

```

```
srin = Serial.read();                 //Ha jött, beolvasom

```

```
if (srin == cup) {                    //w karaket a kontrasztot növeli

```

```
Contrast+=10;                       //Kontraszt = érték +10

```

```
}

```

```
if (srin == cdn) {                    //s karakter a kontrasztot csökkenti

```

```
Contrast-=10;                       //Kontraszt = érték -10

```

```
}

```

```
analogWrite(ContrastPin,Contrast);    //Kontraszt módosítása az analóg kimeneten

```

```
}

```

```
delay(500);                             //Késleltetés

```

```
}

```