Site icon AranaCorp

Gerir um ecrã LCD 16×2 com Arduino

Um dos elementos de exibição de informação mais utilizados no mundo Arduino é o ecrã de cristal líquido (Liquid Crystal Display) LCD 16×2 . Ao construirmos um sistema eletrônico, pode ser interessante que ele nos informe sobre o seu estado sem precisar ser conectado a um computador ou a outro sistema, como um smartphone. O ecrã LCD 16×02 é fornecido com muitos kits Arduino e é suficiente para diversas aplicações.

Material

Visão geral do ecrã LCD 16×2

Os ecrãs de cristais líquidos fazem uso da propriedade de modulação da luz dos cristais líquidos. Os ecrãs de cristais líquidos consistem em duas camadas de polarizadores, com direções de polarização perpendiculares, fazendo um “sanduíche” com duas placas de vidro contendo cristais líquidos entre elas. Sobre as placas de vidro, há uma matriz de eletrodos para cada pixel. Uma tensão aplicada entre os eletrodos de um pixel provoca uma mudança na orientação das moléculas e, portanto, na transparência do pixel, que pode deixar passar a luz da retroiluminação ou não.

Esquema de ligação

O LCD 16×2 tem 16 pinos para permitir controlar a exibição e o contraste.

Montagem com resistor
Montagem com potenciómetro

Código

Com o módulo devidamente conectado, pode alterar o código a seguir para obter a funcionalidade desejada. No exemplo seguinte, criamos uma contagem regressiva.

Para gererenciar o ecrã LCD 16×2 no programa,é utilizada a biblioteca LiquidCrystal.h.

/*
 * Liquid cristal counter
 */

// Library
#include <LiquidCrystal.h>


// Initalisation de la librairie
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

long timeInit=0; //min
int tHour=1;
int tMin=26;
int tSec=35;


void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  analogWrite(8,15);
  // Affiche un message
  lcd.print("Alarm buzz in : ");
  timeInit=timeToCounter(tHour,tMin,tSec);
}

void loop() {
  // Affichage digitale de l'heure
  counterToTime(timeInit);
  lcd.setCursor(0, 1);// place le curseur au 1er caractère de la 2nde ligne
  lcd.print(tHour);
  lcd.print(" h ");  
  lcd.print(tMin);  
  lcd.print(" m ");
  lcd.print(tSec);
  lcd.print(" s");
  
  delay(1000); // Attend 1 second
  timeInit=timeInit-1;
}

int timeToCounter(int h,int m,int s){
  return h*3600+m*60+s;
}

void counterToTime(long cnt){
  tHour=(cnt/3600);
  tMin= (cnt%3600)/60;
  tSec = ((cnt%3600)%60);
}

Aplicação

Fonte

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Exit mobile version