Arduino LCD Shield

De curand mi-am luat un ArduinoUno, intentionand sa ma “joc” cu el.

Unul din “accesoriile necesare” pentru asta, consta intr-un LCD pe care se va vizualiza
diversele mesaje/date procesate, lasand posibilitatea de a se crea aplicatii mai mult sau mai putin complexe. Am ales sa folosesc un LCD pe care il aveam de ceva vreme, pentru dimensiunile ce il faceau ideal de incadrat pe un shield pe care l-am “gandit si executat rapid”. LCD-ul este un DEM 16223 SY-PY. Un shield te scuteste de fire (si posibile greseli/scurturi). Am prevazut posibilitatea alimentarii shield-ului fie din Arduino, fie dintr-o sursa exterioara in situatia in care consumul va creste odata cu conectarea diverselor “periferice”, cunoscandu-se ca Arduino asigura doar un curent limitat de posibilitatile stabilizatorului LM1117. Deasemenea am “prelungit” accesul la pinii Arduino, astfel incat sa fie usor de utilizat.

arduino shield 3

PCB-ul l-am executat prin metoda de transfer toner, pentru ca vroiam sa testez o folie
pe care am gasit-o la un foto-studio. Nici macar nu am curatat cuprul prea bine (am folosit decat acetona) intrucat nu am asteptam sa am un transfer termic reusit.

arduino shild 1

Am renuntat la semireglabilul ce regleaza contrastul LCD-ului folosind doar o rezistenta de 100 Ohm intre pinul 3 al LCD si GND.

 

arduino shield 2

Pentru primul test, am folosit urmatorul sketch:

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
//  conexiune LCD:
/*                                    -------------------
                                      |  LCD  | Arduino |
                                      -------------------
 LCD RS pin to digital pin 7          |  RS   |   D7    |
 LCD Enable pin to digital pin 8      |  E    |   D8    |
 LCD D4 pin to digital pin 9          |  D4   |   D9    |
 LCD D5 pin to digital pin 10         |  D5   |   D10   |
 LCD D6 pin to digital pin 11         |  D6   |   D11   |
 LCD D7 pin to digital pin 12         |  D7   |   D12   |
 LCD R/W pin to ground                |  R/W  |   GND   |
                                      -------------------
*/                                      
                                      
void setup() {

 lcd.begin(16, 2); // set up the LCD's number of columns and rows: 

 lcd.clear(); // clear the screen
 lcd.setCursor(1, 0); // put cursor at colon 2 and row 0 = left/up
 lcd.print("Arduino shild "); // print a text
 lcd.setCursor(2, 1); // put cursor at colon 0 and row 0 = left/down
 lcd.print("DEM16223SY LCD "); // print a text
     delay (2000);
 lcd.clear(); // clear the screen
 
 lcd.setCursor(1, 0); // put cursor at colon 2 and row 0 = left/up
 lcd.print("first test  "); // print a text
 lcd.setCursor(2, 1); // put cursor at colon 0 and row 0 = left/down
 lcd.print("by Baldo "); // print a text
 
 } // END void setup
 
 void loop(){
   
   } // END void loop