PRÁTICA 4 – ARDUÍNO COM DISPLAY LCD HD44780 16X2
Objetivos:
- Conectar um display de LCD HD44780 16×2 a um Arduíno e enviar códigos.
Tarefas:
- Montar o circuito.
- Executar o programa
Informações sobre o display LCD HD44780 16X2:
Pinos | Nome | Descrição |
1 | VSS | Massa 0V |
2 | VDD | Alimentação +5V |
3 | VE | Tensão entre 0 e 5V indicando contraste |
4 | RS | Register Select (0-> instruções ao display e 1->Dados) |
5 | RW | Read ou Write (0->indica gravação na memória do display) |
6 | Enable | Enable (1 -> indica início do processo de gravação/leitura do display) |
15 | +VE | Alimentação Backlight +5V |
16 | -VE | Alimentação Backlight massa 0V |
Circuito:
Programa 1 – LCD Básico:
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.print("CEFET -> Arduino"); } void loop() { lcd.setCursor(0, 1); lcd.print(millis()/1000); } |
Desafio: Faça um relógio!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); unsigned long tempo; int segundo = 0; int minuto = 44; int hora = 17; int ajuste = 0; void setup() { lcd.begin(16, 2); lcd.print("RELOGIO"); tempo = millis(); Serial.begin(9600); } void loop() { lcd.setCursor(0, 1); // AJUSTAR O RELÓGIO VIA PORTA SERIAL if (Serial.available()) { if (ajuste == 0) { hora = Serial.parseInt(); Serial.print("HORA:"); Serial.println(hora); } if (ajuste == 1) { minuto = Serial.parseInt(); Serial.print("MINUTO:"); Serial.println(minuto); } if (ajuste == 2) { segundo = Serial.parseInt(); Serial.print("SEGUNDO:"); Serial.println(segundo); } ajuste++; if (ajuste > 2) ajuste = 0; } //SE MILLIS - TEMPO > 1000 passou um segundo if (millis()-tempo > 1000) { segundo = segundo + 1; tempo = millis(); } if (segundo > 59) { minuto = minuto + 1; segundo = 0; } if (minuto > 59) { hora = hora + 1; minuto = 0; } if (hora > 23) { hora = 0; } if (hora < 10) { lcd.print("0"); } lcd.print(hora); lcd.print(":"); if (minuto < 10) { lcd.print("0"); } lcd.print(minuto); lcd.print(":"); if (segundo < 10) { lcd.print("0"); } lcd.print(segundo); } |