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
Tags:
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!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por