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

Arduino Dishwasher

Stiu din surse “sigure” ca masinile de spalat rufe, sunt facute sa “pice” la un moment dat, dupa un anumit nr. ore de functionare/cicluri, cam dupa ce se termina si garantia data de producator 🙂 . Ma refer aici la modulul electronic, care “pica” odata cu aparitia unor probleme ce tin de pompa de evacuare de exemplu. Practic in cazul aparitiei unei defectiuni ce nu mai permite incheierea ciclului complet de spalare, este foarte posibil ca in zona de EEPROM a uC-ului de pe placa de comanda, sa se memoreze anumite coduri de eroare, care ajuta la identificarea problemei ce a cauzat defectul. Dupa remedierea problemei (mecanice) s-ar putea sa auzim ca trebuie inlocuita placa de baza. In trecut ajutam un amic sa rescrie zona de EEPROM pentru toata gama de masini de spalat INDESIT, ca sa le repuna in functiune fara inlocuirea intregii placi de comanda. Cu timpul, s-a renuntat la folosirea EEPROM-ului extern, acesta fiind integrat in uC-ul ce ruleaza firmwarele (softul) masinii de spalat. De obicei aceste uC-uri sunt securizate, blocandu-se accesul la citire/scriere, astfel incat, nu se mai poate repara, in regim DIY , placa de comanda. O alternativa interesanta, este propusa aici.