Alguém poderia me ajudar, estou usando Arduino Uno e estou com problemas de programação para configurar o display.
Eu fiz 2 um display com fita de LED, eu queria mudar o numero usando botão de pulso,cada vez que apertar o botão soma mais 1 no display e também que ele conte até o numero 99.
Alguém poderia ajudar com o sketch.
Tags:
Boa tarde amigo, primeiro gostaria de dizer que achei criativa a ideia de usar as fitas para construir o display, nunca tinha pensado nisso.
para iniciar a sua sketch você poderia começar tentando com apenas um display.
A Sketch proposta nesse site é bastante interessante: http://www.arduinoecia.com.br/2013/07/display-7-segmentos.html, tente implementá-la e com forme as dúvidas forem surgindo vá colocando aqui que nós te ajudamos
Obrigado.
Veja este video, (Link abaixo) uma simulação com Proteus, talvez seja o que esta procurando, o autor compartilha os arquivos para o Arduino e para o Proteus caso queira simular também, ambos links para o Dropbox na descrição do video.
https://www.youtube.com/watch?v=KbO1w6kesdg&feature=youtu.be
Abs.
Vlw vou ver o vídeo.
vou postar pra ti um codigo que escrevi do zero sem uso de bibliotca:
const byte A = 7;
const byte B = 8;
const byte C = 9;
const byte D = 10;
const byte E = 11;
const byte F = 12;
const byte G = 6;
const byte UN = 4;
const byte DZ = 3;
unsigned long tempsatual,tempsalvo,tempsatuald,tempsalvod;
byte num;
bool flag = 0;
void setup() {
pinMode(A,OUTPUT);
pinMode(B,OUTPUT);
pinMode(C,OUTPUT);
pinMode(D,OUTPUT);
pinMode(E,OUTPUT);
pinMode(F,OUTPUT);
pinMode(G,OUTPUT);
pinMode(UN,OUTPUT);
pinMode(DZ,OUTPUT);
tempsalvo = 0;
num = 0;
}
void loop() {
tempsatual = millis();
if((tempsatual - tempsalvo) >= 1000){
num++;
tempsalvo = tempsatual;
}
if(num > 99){
num = 0;
}
escreve(num);
}
////////////////////////////////////////////////////////////////////////////////////////////////
void escreve(byte n){
byte u = 0;
byte d = 0;
byte aux;
d = n / 10;
u = n % 10; //equivale a "n mod 10"
tempsatuald = millis();
if(tempsatuald - tempsalvod >= 10){
flag = !flag;
tempsalvod = tempsatuald;
}
if(flag == 0)
{
aux = u;
digitalWrite(UN,1);
digitalWrite(DZ,0);
}
if(flag == 1)
{
aux = d;
digitalWrite(DZ,1);
digitalWrite(UN,0);
}
switch(aux){
case 0:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,LOW);
digitalWrite(G,HIGH);
break;
case 1:
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,HIGH);
digitalWrite(E,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
case 2:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,HIGH);
digitalWrite(G,LOW);
break;
case 3:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
digitalWrite(E,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,LOW);
break;
case 4:
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,HIGH);
digitalWrite(E,HIGH);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 5:
digitalWrite(A,LOW);
digitalWrite(B,HIGH);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
digitalWrite(E,HIGH);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 6:
digitalWrite(A,LOW);
digitalWrite(B,HIGH);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 7:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,HIGH);
digitalWrite(E,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
break;
case 8:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
case 9:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
digitalWrite(E,HIGH);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
break;
}
}
////////////////////////////////////////////////////////////////////////////////////////////
espero ter ajudado!
Vlw vou testar esse programa.
esqueci de citar, o display que usei é de anodo comum, se for usar do tipo catodo comum tem que inverter as saidas de LOW para HIGH e de 0 para 1!
Blz
Nesse programa está configurado para usar botão de pulso NA ? Porque quero usar 1 botão para somar +1,
1 botão para diminuir -1, e outro reset. E também na montagem utiliza algum CI?
Desde já obg.
Gostei muito do seu projeto - simples e eficiente !
Já esta funcionando ?
Parabéns !
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por