Olá a todos,eu sou iniciante com o arduino e queria fazer dois display de 7 segmentos contarem de 0a99.

Mas para isso iria usar dois 4511(um para cada display)e iria usar 4 saidas digitais do arduino para cada 4511

E ficaria mais ou manos assim:

 

https://storage.ning.com/topology/rest/1.0/file/get/1802473401?prof...

 

0=0,0,0,0,0,0,0,0

1=0,0,0,0,0,0,0,1

2=0,0,0,0,0,0,1,0

......

E por assim vai.

Eu ja fiz uma placa com os dois 4511 e os dois display de 7segmentos mais tenho duvida se vai dar certo na hora de eu fazer a programação  

A minha ideia seria fazer a programação parecida com a que esta nessesite:http://www.arduinoecia.com.br/2013/07/display-7-segmentos.html

Mas utilizando 8 saidas digitais com 4 para cada ci.

 

Desde ja agradeço

Exibições: 570

Responder esta

Respostas a este tópico

Funciona sim Gabriel, você só precisa lembrar de usar os valores DCBA da tabela que você colocou e fazer as alterações necessárias no código do link que você postou.
Eu recomendaria você estudar o funcionamento do 4511 e assim escrever seu próprio código, ao em vez de "reaproveitar" esse do link.
Qualquer dúvida pode contar comigo.

Olá João,eu vi o datasheet do 4511 e vi como seria de 0a9 mas com isso eu ja fiz uma tabela de como é feito até o 99 e pelo oque parece está  certo.

Mas estou com duvidas de como consigo colocar isso na programação pq sou iniciante em arduino

Ainda não testei pois não estou em casa mas tenta esse codigo.

int pinos[]={2,3,4,5,6,7,8,9};
int contador = 0;
int unidade = 0;
int dezena = 0;

void setup() {
for(i=0<8;i++){
pinMode (pinos[i], OUTPUT);
}
}

void loop() {

 if(contador=99){

   contador = 0;

 }
 while(contador>=10){
   unidade = unidade - 10;
   dezena = dezena + 1;
 }
 for(int i=0; i<4; i++){
   digitalWrite(pinos[i], (unidade >> i) % 2);
 }
 for(int i=4; i<8; i++){
   digitalWrite(pinos[i], (dezena >> i) % 2);
 }
 contador = contador + 1;
 delay(1000);
}

Esse codigo incrementa +1 a variavel countador a cada segundo até chegar a 99 (depois volta a zero), e a divide nas variaveis unidade e dezena.

Os pinos 2, 3, 4 e 5 estão sendo usando para as unidades e os pinos 6, 7, 8 e 9 para as dezenas.

Testei o codigo, tive que fazer algumas alterações e ai funcionou perfeitamente.

int pinos[]={2,3,4,5,6,7,8,9};
int unidade = 0;
int dezena = 0;
void setup() {
for(int i=0;i<8;i++){
pinMode (pinos[i], OUTPUT);
}
}

void loop() {
while(unidade>=10){
unidade=unidade-10;
dezena=dezena+1;
}
if(dezena==10){
dezena=0;
}
for(int i=0; i<4; i++){
digitalWrite(pinos[i], (unidade >> i) % 2);
}

for(int i=4; i<8; i++){
digitalWrite(pinos[i], (dezena >> i-4) % 2);
}
unidade = unidade + 1;
delay(1000);
}

Aqui funcionou com o código que vc fez.

Sinceramente o que eu iria fazer(sou iniciante em arduino só usava o 8051)eu iria ter que colocar de 0a99 em binário na programação.

Eu não sabia q tinha como fazer dessa forma que vc fez.

Muito obrigado!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço