Preciso fazer um contador que vai de 0 até 9 no Arduino. Tenho um display de 7 segmentos anodo comum, 2 emissores de infra-vermelho e 2 receptores. ao passar algo entre o primeiro emissor e receptor o display deve incrementar 1, ao passar pelo segundo emissor e receptor o display deve decrementar 1.
Alguem pode me ajudar mostrando algum exemplo funcional?
Não precisa ser com os emissores e receptores, pode ser com dois botões.
Agradeço.
Tags:
No meu blog tem um material sobre 7 segmentos, veja: http://automatobr.blogspot.com.br/search?q=segmentos
Liga cada receptor a um pino que suporte interrupção, em um você soma 1 a uma variavel e em outro voce subtrai 1, no loop você aciona o display de 7 segmentos.
Codigo exemplo
int x = 0;
byte seg[10][7] = { { 1,1,1,1,1,1,0 },
{ 0,1,1,0,0,0,0 },
{ 1,1,0,1,1,0,1 },
{ 1,1,1,1,0,0,1 },
{ 0,1,1,0,0,1,1 },
{ 1,0,1,1,0,1,1 },
{ 1,0,1,1,1,1,1 },
{ 1,1,1,0,0,0,0 },
{ 1,1,1,1,1,1,1 },
{ 1,1,1,0,0,1,1 }
};
void setup()
{
attachInterrupt(0, soma, FALLING);
attachInterrupt(1, subtrai, FALLING);
for(int i=6; i<=12; i++)
{
pinMode(i, OUTPUT);
}
}
void loop()
{
for(int segPin=0; segPin<7; segPin++)
{
byte pin = 6;
digitalWrite(pin, seg[x][segPin]);
pin++;
}
}
void soma()
{
x = x + 1;
}
void subtrai()
{
x = x - 1;
}
Acho que funciona.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por