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.

Exibições: 1227

Responder esta

Respostas a este tópico

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 !

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço