In acest articol vom folosi un shield LCD 16x02 cu butoane impreuna cu Arduino Uno. Acest shield se conecteaza foarte usor la Arduino, mai exact vine exact deasupra placii de dezvoltare si se conecteaza la pinii acesteia.

    Acest modul se alimenteaza direct din placa de dezvoltare. Pentru a folosi displayul LCD vom avea nevoie de libraria  LiquidCristal.

    Cele 5 butoane (Up, Down, Left, Right si Select) sunt conectate impreuna la pinul Analog 0 pentru a economisi pinii folositi. In functie de valoare detectata la pinul A0 vom sti care buton este apasat. Un tabel cu aceste valori este mai jos:

Buton Valoare A0
Right 0-60
Up  60-200
Down 200-400
Left 400-600
Select 600-800

  

    Pe placa este si un al saselea buton dar acesta este butonul de resetare al placii de dezvoltare.

    Pinii folositi pentru folosirea displayului sunt urmatorii:

RS - D8

EN - D9

d4 - D4

d5 - D5

d6 - D6

d7 - D7

    Un sketch simplu in care vom afisa pe display butoanele folosite este cel de mai jos.

#include <LiquidCrystal.h>

const int RS = 8; 
const int EN = 9; 
const int d4 = 4; 
const int d5 = 5; 
const int d6 = 6; 
const int d7 = 7; 

LiquidCrystal lcd(RS, EN, d4, d5, d6, d7);

void setup() {
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("Testare shield");
  lcd.setCursor(0,1);
  lcd.print("LCD cu butoane");
  delay(1000);
  lcd.clear();
  lcd.print("electronicstore");
  lcd.setCursor(13,1);
  lcd.print(".ro");
  delay(1000);
}

void loop() {
  lcd.clear();
  lcd.print("Buton apasat:");
  lcd.setCursor(0,1);
   int x;
 x = analogRead (0);
 if (x < 60) {
   lcd.print ("Dreapta");
 }
 else if (x < 200) {
   lcd.print ("Sus");
 }
 else if (x < 400){
   lcd.print ("Jos");
 }
 else if (x < 600){
   lcd.print ("Stanga");
 }
 else if (x < 800){
   lcd.print ("Select");
 }
  delay(100);
}

 

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.