#define leds0 2
#define leds1 3
#define leds2 4
#define leds3 5
//portas array
int ledsA[4] = {2,3,4,5};
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,8,9,10,11,12);
//milli
unsigned long int valorM0 = 0; //valor limites de milisegundos
unsigned long int valorM1 = 0;
unsigned long int valorM2 = 0;
unsigned long int valorM3 = 0;
unsigned long int lcdScr = 0;
boolean MillB0 = LOW; //boleano para desligar e ligar leds
boolean MillB1 = LOW;
boolean MillB2 = LOW;
boolean MillB3 = LOW;
unsigned long int potenc = 0;
//Aqui vai todos os carcteres especiais.
//==================================================================
byte PinEC[8] = { //Cima
B00001,
B00011,
B00111,
B00001,
B00011,
B00111,
B01111,
B00011
};
byte PinEB[8] = { //Baixo
B00111,
B01111,
B11111,
B00001,
B00001,
B00001,
B00001,
B00001
};
byte PinDC[8] = { //Cima
B10000,
B11000,
B11100,
B10000,
B11000,
B11100,
B11110,
B11000
};
byte PinDB[8] = { //Baixo
B11100,
B11110,
B11111,
B10000,
B10000,
B10000,
B10000,
B10000
};
void setup() {
for(int i = 0; i<7; i++)
{
pinMode(ledsA[i],OUTPUT);
pinMode(leds1,OUTPUT);
pinMode(leds2,OUTPUT);
pinMode(leds3,OUTPUT);
//DigitalWrite
digitalWrite(ledsA[i], LOW);
digitalWrite(leds1, LOW);
digitalWrite(leds2, LOW);
digitalWrite(leds3, LOW);
}
pinMode(A0, INPUT);
//LCD
Serial.begin(9600);
lcd.begin(16,2);
lcd.createChar(0, PinEC);
lcd.createChar(1, PinEB);
lcd.createChar(2, PinDC);
lcd.createChar(3, PinDB);
lcd.setCursor(0,0);
lcd.write((byte)0);//
lcd.setCursor(0,1);
lcd.write((byte)1);//
lcd.setCursor(1,0);
lcd.write((byte)2);//
lcd.setCursor(1,1);
lcd.write((byte)3);//
lcd.setCursor(14,0);
lcd.write((byte)0);//
lcd.setCursor(14,1);
lcd.write((byte)1);//
lcd.setCursor(15,0);
lcd.write((byte)2);//
lcd.setCursor(15,1);
lcd.write((byte)3);//
//Nome Natal
lcd.setCursor(5,0);
lcd.print("FELIZ");//
lcd.setCursor(5,1);
lcd.print("NATAL!");//
lcd.setCursor(25,0);
lcd.print("MERRY");//
lcd.setCursor(23,1);
lcd.print("CHRISTMAS!");//
//Criar caracteres especiais.
}
void loop() {
//leds
for(int v=0; v<7; v++)
{
if(millis() - valorM0 >= 900){
valorM0 = random(millis());
random(ledsA[v]);
digitalWrite(ledsA[v], MillB0);
MillB0 = !MillB0;
}
}
//LCD
if(millis()- lcdScr >= 300)
{
lcdScr = millis();
lcd.scrollDisplayLeft();
}
//Potenciometro. Controle de Luz
potenc = analogRead(A0);
analogWrite(6, byte(potenc/4));
}