Preciso de Ajuda com Marcador de Pontos Digital

Estou querendo fazer um marcador de pontos digital utilizando 2 display de 7 segmentos para o pebolim do meu filho contento 2 botões para marcar os pontos um botao para cada display e 2 botoes reset para resetar um para cada display que seria jodador 1 e jogador 2 algo bem simples!

achei um sketch na net e um codigo apenas de um display alguem poderia me ajudar a adicionar mais um, não manjo de programar arduino.

#define CONTAR 8    // pino onde será conectado a tecla de contagem 
#define MODO 9     // pino onde será conectado a tecla de modo 

byte
 tabela_7_seg [16] = {   
B01111110,  // = Digito 0   
B00001100,  // = Digito 1   
B10110110,  // = Digito 2   
B10011110,  // = Digito 3   
B11001100,  // = Digito 4   
B11011010,  // = Digito 5   
B11111010,  // = Digito 6   
B00001110,  // = Digito 7   
B11111110,  // = Digito 8   
B11001110,  // = Digito 9   
B11101110,  // = Digito A   
B11111000,  // = Digito B   
B01110010,  // = Digito C   
B10111100,  // = Digito D   
B11110010,  // = Digito E   
B11100010   // = Digito F 

}; 

int
 contagem = 9, inc_dec =1; 

void setup() 
{   

//Configura os pinos digitais de 1 até 7 como saída digital
   
DDRD = B11111110;   

//Configura os pinos onde os botões estão conectados
   
pinMode
(CONTAR, INPUT);   
pinMode
(MODO, INPUT); 



void
 loop()
{     

// Lê o botão de Contagem
     
if (digitalRead(CONTAR)== LOW)    
{     
contagem += inc_dec;          

//Reseta a contagem em caso de estouro
     
if
 (contagem < 0)     
{       
contagem = 15;     
}     
if
 (contagem > 15)
{       
contagem = 0;     
}          

//Aguarda a tecla de contagem ser solta
     
while(digitalRead(CONTAR)== LOW)
{     

}     

}      

// Lê o botão que seleciona MODO
   
if
(digitalRead(MODO)== LOW)   
{     

//Inverte o modo de operação do contador
     
inc_dec = inc_dec * (-1);     
//Aguarda a tecla de MODO ser solta     
while
(digitalRead(MODO)== LOW){     

}     

}      

//Busca o valor da contagem na matriz que decodifica os 7 segmentos e envia para o display
   

PORTD = tabela_7_seg[contagem];   

delay
(50); 

}

Exibições: 1305

Responder esta

Respostas a este tópico

Oi A.

Testa este code.

http://pastebin.com/4j49k3jb

Precisa da biblioteca   #include "SevSeg.h"

https://mega.nz/#!rVFjyRLJ!CbMktovg5cTtwg1Z0ABeCcmfVhcXJtzq76vLdcyzCig

Rui

Obrigao Rui, vou testar depois te aviso se deu certo.

Rui olhei o codigo mas é para 1 display de 7 segmentos, vou usar 2 conforme imagem abaixo, o codigo serve para os dois display ou tem que modificar, não posso ligar os dois display nos mesmos pinos do arduino né, senao vai marcar pontos nos dois ao mesmo tempo, tem que ser individual e o reset pode ser para os dois.

Oi A, bom dia,

acho que você não leu o code e não entendeu.

Esta biblioteca "gerencia"  qtos displays você definir nesta linha:

 byte numDigits = 2;    //Números de dígitos do display, é válido para qq display (1, 2, 3,  n dígitos);

No seu caso eu defini como 2.

Rui

Eu vi essa linha mas não entendi, mas eu posso ligar os fios dos dois display nos mesmos pinos do arduino, achei que quando apertasse o botao marcaria nos dois display! então posso ligar o dois display nas mesmas saidas do arduino?

Outra duvida é de acordo com as duas linhas abaixo, ficaria conforme a imagem abaixo com os numeros dos pinos, o pino 9 e 10 vai depender do meu display se é anodo ou catodo né, vi que dependendo tenho que alterar no code tb.

byte digitPins[] = {9, 10}; //Pino dos ânodos ou cátodos.
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8};

Oi A, os pinos de A até G de ambos display devem ser ligados juntos nos ports de 2 a 8. e o comum (cátodo ou ânodo), do 1o, display no port 9 e do 2o. no port 10. Não esqueça dos resistores limitadores de corrente para não queimar ou o display ou o arduino. Rui

Ok Rui ficou claro o resistor seria só no comum ou em todos pinos do display? vi alguns exemplos que colocam um de 10k no comum anodo ou catodo e de 470oh nos pinos de a - g. vc acha q posso fazer assim!

Rui montei um esquema de acordo com o seu codigo esta correto conforme a imagem, preciso usar resistores no display! 

Oi A,

Sim,precisa usar um resistor para cada display, mas 10k é muito

use +- 1k.

Outra coisa, eu programei os botões para serem ligados entre o port e o Gnd e sem resistor.

Rui

OK Rui vou colocar de 1K o resistor e vou ligar o botao conforme sua programação, e nos port de 2 a 8 posso usar resistor de 470oh?

Arrumei Rui ficou assim certo, vc vê mais alguma coisa errada!

Oi A,

não, não vejo nada errado.

Ps. Se você colocou um resistor de 470 Ohms em cada segmento,

então não precisa dos resistores de 1k.

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço