A baixo a montagem do display lcd no arduino:
Para que ele funcione corretamente no arduino precisaremos instalar duas bibliotecas especiais. Os links para download das bibliotecas estão a baixo:
Monte um led conectado no pino 3 do arduino e copie este scktch:
int tempo = 5;
int estado = 1;
float tencao = 0;
// PARAMETROS DO LCD ****************************************
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADOR 0x3F // <<
#define BACKLIGHT_PIN 3
#define En 2
#define Rw 1
#define Rs 0
#define D4 4
#define D5 5
#define D6 6
#define D7 7
LiquidCrystal_I2C lcd(I2C_ADOR,En,Rw,Rs,D4,D5,D6,D7);
// **********************************************************
void setup()
{
pinMode(3,OUTPUT);
Serial.begin(9600);
lcd.begin (16,2);
// controle da luz de fundo:
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
delay(1000);
lcd.setBacklight(LOW);
delay(1000);
lcd.setBacklight(HIGH);
delay(1000);
// impressao na tela lcd:
lcd.setCursor(1,0);
lcd.print("Variador de");
lcd.setCursor(1,1);
lcd.print("Luminosidade");
lcd.setCursor(15,1);
lcd.blink();
delay(5000);
lcd.clear();
}
void loop()
{
lcd.clear();
while(estado == 1)
{
brilho = brilho + 1;
Serial.print("Tenção na porta = ");
tencao = ((brilho*5)/255.0);
Serial.print(tencao,2);
Serial.println("V");
lcd.setCursor(0,0);
lcd.print("Tencao da porta:");
lcd.setCursor(3,1);
lcd.print(tencao,2);
lcd.setCursor(8,1);
lcd.print("Volts");
analogWrite(3,brilho);
delay(tempo);
if(brilho == 255)
{
brilho = 255;
estado = 2;
//delay(1000);
}
}
lcd.clear();
while(estado == 2)
{
brilho = brilho - 1;
Serial.print("Tenção na porta = ");
tencao = ((brilho*5)/255.0);
Serial.print(tencao,2);
Serial.println("V");
lcd.setCursor(0,0);
lcd.print("Tencao da porta:");
lcd.setCursor(3,1);
lcd.print(tencao,2);
lcd.setCursor(8,1);
lcd.print("Volts");
analogWrite(3,brilho);
delay(tempo);
if(brilho == 1)
{
brilho = 1;
estado = 1;
//delay(1000);
}
}
}
// FIM DO PROGRAMA;
Pessoal, vamos trabalhar com alguns comandos deste outro sketch também:
#include <LiquidCrystal.h>
LiquidCrystal displayTeste(2,4,10,11,12,13);
int efeito = 0;
int contraste = 0;
boolean aumenta = true;
byte smiley[8] = {
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,
};
void setup() {
// put your setup code here, to run once:
pinMode(5, OUTPUT);
analogWrite(5, 0);
displayTeste.createChar(0, smiley);
displayTeste.begin(16,2);
//displayTeste.cursor();
//displayTeste.blink();
displayTeste.print("Brincando com");
displayTeste.setCursor(2,1);
displayTeste.print("Ideias ");
displayTeste.write(byte(0));
//Teste da Tabela de Caracteres
displayTeste.setCursor(15,1);
displayTeste.write(byte(244));
}
void loop() {
// put your main code here, to run repeatedly:
if (efeito == 1) {
analogWrite(5, contraste);
delay(20);
if (aumenta) contraste++;
else contraste--;
if (contraste == 150) aumenta = false;
if (contraste == 0) aumenta = true;
}
if (efeito == 2) {
displayTeste.noDisplay();
delay(500);
displayTeste.display();
delay(500);
}
if (efeito == 3) {
displayTeste.scrollDisplayLeft();
delay(350);
}
if (efeito == 4) {
displayTeste.scrollDisplayRight();
delay(350);
}
}
Nenhum comentário:
Postar um comentário