Segue os códigos fontes utilizados na Aula 10 do Curso Arduino Advanced. E conforme prometido segue o código também do contador regressivo.
Código #1
#include
#define expansor1 0x38
void setup()
{
Wire.begin();
Wire.beginTransmission( expansor1);
Wire.send(0xFF);
Wire.endTransmission();
}
void loop()
{
Wire.beginTransmission( expansor1);
Wire.send(B10000001);
Wire.endTransmission();
delay(1000);
Wire.beginTransmission( expansor1);
Wire.send(B01111101);
Wire.endTransmission();
delay(1000);
}
Código #2
#include
#define expansor1 0x38
#define expansor2 0x39
void setup()
{
Wire.begin();
comunica(expansor1, 0xFF);
comunica(expansor2, 0xFF);
}
void loop()
{
comunica(expansor1, B10000001);
comunica(expansor2, B01111101);
delay(1000);
comunica(expansor2, B10000001);
comunica(expansor1, B01111101);
delay(1000);
}
void comunica(byte endereco, byte digito)
{
Wire.beginTransmission( endereco);
Wire.send(digito);
Wire.endTransmission();
}
Código Extra do Contador Regressivo
#include
#define expansor1 0x38
#define expansor2 0x39
void setup()
{
Wire.begin();
EscreveDigito(expansor1, 0xFF);
EscreveDigito(expansor2, 0xFE);
}
void loop()
{
for(int i = 99; i >= 0; i--)
{
byte a = i / 10;
byte b = i - (a * 10);
if (i < 10) a = 0;
EscreveDigito(expansor2, ConverteDigito(a));
EscreveDigito(expansor1, ConverteDigito(b));
delay(1000);
}
}
byte ConverteDigito(byte decimal)
{
switch(decimal)
{
case 0:
return B00010001;
case 1:
return B01111101;
case 2:
return B00100011;
case 3:
return B00101001;
case 4:
return B01001101;
case 5:
return B10001001;
case 6:
return B10000001;
case 7:
return B00111101;
case 8:
return B00000001;
case 9:
return B00001001;
default:
return B11101111;
}
}
void EscreveDigito(byte endereco, byte digito)
{
Wire.beginTransmission(endereco);
Wire.send(digito);
Wire.endTransmission();
}
#define expansor1 0x38
#define expansor2 0x39
void setup()
{
Wire.begin();
EscreveDigito(expansor1, 0xFF);
EscreveDigito(expansor2, 0xFE);
}
void loop()
{
for(int i = 99; i >= 0; i--)
{
byte a = i / 10;
byte b = i - (a * 10);
if (i < 10) a = 0;
EscreveDigito(expansor2, ConverteDigito(a));
EscreveDigito(expansor1, ConverteDigito(b));
delay(1000);
}
}
byte ConverteDigito(byte decimal)
{
switch(decimal)
{
case 0:
return B00010001;
case 1:
return B01111101;
case 2:
return B00100011;
case 3:
return B00101001;
case 4:
return B01001101;
case 5:
return B10001001;
case 6:
return B10000001;
case 7:
return B00111101;
case 8:
return B00000001;
case 9:
return B00001001;
default:
return B11101111;
}
}
void EscreveDigito(byte endereco, byte digito)
{
Wire.beginTransmission(endereco);
Wire.send(digito);
Wire.endTransmission();
}
Abraços,
Renato Aloi
Cara.. em termos d video aula, é vc e o neri dominam o mercado...hehe
ResponderExcluirvc em arduino e ele em programação..
Faz os vídeos meio q no improviso e só não aprende quem não quer..
Está de parabens.. Ótimas Vídeo aulas... vlw ai..
Obrigado pelo comentario e pelo apoio!!!
ExcluirAbraços
Renato
Boa tarde,
ResponderExcluirGostaria de tirar uma duvida.
É possível com Arduíno + algum outro adicional simular um controle remoto, por exemplo para controlar um ar condicionado.
Este comentário foi removido pelo autor.
ExcluirObrigado pelo comentário!!!
ExcluirParticipe do forum do curso Arduino, poste suas duvidas tecnicas la!!!
Existem tópicos exclusivos separados por aula.
http://www.seriallink.com.br/forum
Abraços
Renato
Boa Noite, tem algum e-mail que poderia passar pra poder tirar duvidas sobre o arduino?
ResponderExcluirpoderia entrar em contato comigo pelo meu e-mail kmorett@gmail.com
Obrigada
Este comentário foi removido pelo autor.
Excluircara, eu to tentando ligar um LCD 16x2 mas não estou conseguindo fazer o upload, ta dando um erro ('LiquidCrystal_I2C' does not name a type)
ResponderExcluiroque pode esta acontecendo?
Essas portas "extras" são analógicas ou digitais?? Posso utilizá-las para ler sensores?? Obrigado
ResponderExcluirboa noite Renato você pode fazer um video, arduino com TEMPORIZADOR LCD como neste video youtube.com/watch?v=3JtEOQgNd08
ResponderExcluirBoa Tarde!
ResponderExcluirEstou com o PCF8574P e no meu projeto preciso dar nome aos pinos! Estou usando a lib PCF8574.h a programação foi toda feita e funciona ate a hora que coloco no PCF. Os leds não da nem sinal setando eles pelo binário de cada pino! Outro problema que encontrei e que um programa no computar manda via serial o sinal para cada led acender separadamente. Usei o chip 74HC595 e fiz funcionar o problema foi que todos os leds ligarão juntos! Poderia me ajudar por favor não tem nada parecido na internet fiz muita pesquisa e não achei nada nem parecido! Obrigado desde já!