Boa tarde a todos,
O meu nome é Ricardo e informo desde já que não tenho qualquer experiência com codificação ou placas arduino ou outras.... sou um iniciante a zeros...
Como sou um pouco curioso, e o clube de basquete onde joga o meu filho mais novo precisa de um placar electronico, pensei em fazer um ... talvez com um pouco de loucura ...
Então o que pretendo é um placard electronico que conte a pontuação das equipas e controle o tempo de jogo.
Medidas do placar – 42 cm X 29,5 cm ( folha A3 ) alimentado por transformador ou baterias
Medidas dos dígitos ( pontos e tempo ) – 10 cm X 5 cm em led’s ou fitas de led
Contador de pontos ( independente para cada equipa )
O contador de pontos será constituído por 3 digitos para cada equipa, a começar no 000 e a terminar no 999.
O contador deve ser accionado por um do botão acrescentando sempre e só um valor de cada vez.
Deverá também existir um botão para retirar valores ( um e cada vez ) em caso de engano.
Contador de tempo
O contador de tempo ( cronómetro ) deverá ter 4 digitos e deverá funcionar em contagem decrescente.
Deverá também, ter as seguintes opções ( recorrendo a botão ) :
1 – Fazer reset colocando a zeros
2 – Colocação pelo utilizador do tempo que for decidido ( o tempo não é fixo )
3 – Quando a contagem decrescente tiver a decorrer, poder efectuar paragem de tempo e posteriormente continuar a mesma sequência.
4 – Quando chegar a um ( 01:00 ) minuto do tempo final, o cronometro deverá contar as decimas de segundo até chegar a zero ( 00:00 )
5 – Quando atingir os zero ( 00:00 ) acciona um buzz de 3 segundos
Espero que tenha colocado a informação toda necessário e que me possam ajudar.
Mais uma vez, não "pesco" nada do assunto ... ;)
Obrigado a todos
Ricardo Alexandre
Tags:
Boas,
Parece que vou ter de refazer as ligações dos TPIC ... a informação não está a passar do primeiro ...
Corre os numeros de 0 a 9, mas os seguintes digitos não fazem nada, ficam apagados...
Vou confirmar com o Diagrama que o José colocou o que está de errado nas minhas ligações ...
Parece que dei com o gato....
Não tinha dado continuidade dos 5v para o proximo TPIC ....
Boas,
Após algumas soldaduras aqui estão os testes:
Teste 1
https://www.youtube.com/watch?v=PwKKRsHo_AA
Teste 2
Boa tarde Ricardo,
O meu circuito também esta com a contagem de tempo irregular em alguns momentos.
Irei pesquisar.
Se quiser testar os quatro dígitos :
http://labdegaragem.com/forum/topics/placar-eletr-nico-port-til-bas...
Bom dia Srs,
Fez um Sketch para teste do display, usando a bilbioteca shiftdisplay. Funcionou corretamente.
Anexei o arquivo: Test_LedStrip.INO
Ricardo, sugiro que faça esse teste no seu display com 4 digitos.
Obs: tive que transformar os números em caracteres, pois senão o 0000 apareceria somente com um Zero (left zero) .
// Display Test - 4 digits LED Strip - driver TPIC6B595// Arduino Nano - IDE 1.8.3// Gustavo Murta - 07/nov/2017 // http://labdegaragem.com/forum/topics/placar-eletr-nico-port-til-basquetebol
// Shiftdisplay by Miguel Pynto
#include /font>ShiftDisplay.h>
const int LATCH_PIN = 6;
const int CLOCK_PIN = 7;
const int DATA_PIN = 5;
const DisplayType DISPLAY_TYPE = INDIVIDUAL_CATHODE; // Display LED Strip
const int DISPLAY_SIZE = 4; // Display with 4 digits
ShiftDisplay display(LATCH_PIN, CLOCK_PIN, DATA_PIN, DISPLAY_TYPE, DISPLAY_SIZE);
char* testNumbers[] = {"0000", "1111", "2222", "3333", "4444", "5555", "6666", "7777", "8888", "9999"};
void setup()
{
Serial.begin(9600);
}
void TestNumbers ()
{
int i;
for (i = 0; i /font> 10; i = i + 1)
{
char* n = testNumbers[i];
display.set(n);
display.show();
Serial.println(n);
delay (600);
}
}
void loop()
{
TestNumbers ();
delay (600) ;
}
O arquivo sumiu , enquanto estava tentando corrigir o erro de português.
Anexei o arquivo: Test_LedStrip.INO
Boa tarde Miguel ,
Sua Biblioteca é bem complexa (para mim) . E parece ser completa ! Muito bom trabalho.
Comecei a fazer testes e estudar o Sketch test.INO de 27 de outubro >
http://labdegaragem.com/forum/topics/placar-eletr-nico-port-til-bas...
A gente poderia redefinir alguns parâmetros, ou existe alguma restrição ? (Para facilitar)
const int TIMER_LATCH_PIN = 5;
const int TIMER_CLOCK_PIN = 6;
const int TIMER_DATA_PIN = 7;
const int SCORE_LATCH_PIN = 8;
const int SCORE_CLOCK_PIN = 9;
const int SCORE_DATA_PIN = 10 ;
Para funcionar corretamente mudei o tipo de display (conforme a sua orientação)
const DisplayType DISPLAY_TYPE = INDIVIDUAL_CATHODE;
const int TIMER_DISPLAY_SIZE = 4; // 4 digitos para marcar tempo
const int SCORE_SECTION_COUNT = 5; // 7 dígitos separados em 5 seções
const int SCORE_SECTION_SIZES[] = {2, 1, 2, 1, 1};
enum sections {
SECTION_POINTS_HOME,
SECTION_PERIOD,
SECTION_POINTS_VISIT,
SECTION_FOULS_HOME,
SECTION_FOULS_VISIT,
Como a minha montagem tem apenas 4 dígitos, farei mais testes com o seu Sketch, dividindo-o em partes.
O timer esta com problemas - acho que é por causa do Zero à esquerda .
A gente poderia redefinir alguns parâmetros, ou existe alguma restrição ? (Para facilitar)
Pode-se redefinir.
Eu tinha chamado ao tipo INDIVIDUAL_CATHODE devido a cada digito ser individualmente controlável, mas não é a melhor semântica, mais para a frente mudo, por enquanto para testes tá bom.
Corrigi o bug do timer, está no git. Linha 40:
int sec = (t % 6000) / 100;
De momento está a contar desde 2 minutos e meio. Ainda falta corrigir a falta de zeros à esquerda em certas ocasiões.
Boa noite,
Estava revendo tópicos antigos .
Esse timer é bem interessante. Acho que dá para aproveitar a programação dele e adapta-la ao Scoreboard.
http://www.ardumotive.com/countdown-timer-en.html
Citada pelo Ricardo em :
http://labdegaragem.com/forum/topics/placar-eletr-nico-port-til-bas...
Estudando e refletindo a melhor opção.
Acho que teremos que usar um RTC DS3231 para controlar toda temporização do Placar.
1) O RTC DS3231 tem um gerador de onda quadrada que pode gerar um clock de por exemplo 1 Hz ( essa frequencia é configurável ). A cada um segundo, todos os timers do Placar poderiam ser atualizados com precisão, através de interrupções no Arduino.
2) O RTC tem dois alarmes configuráveis - por exemplo, acionar o alarme quando terminar um período ( 10 minutos) . Pode controlar o tempo do Shot Clock também - 24 segundos
3) O DS3231 já tem inúmeras Bibliotecas prontas para Arduino. É só achar a mais adequada, ou então adaptá-la.
4) O módulo DS3231 tem uma EPROM 24C32 com 4096 bytes para armazenamento de dados.
Por exemplo , salvar todos os dados do placar no caso de falta de energia.
O uso dos Timers do Arduino para controlar a temporização do placar, poderá tornar o Sketch bem complexo e sujeito à falhas de temporização .
O que acham à respeito ? No momento estou fazendo testes com o meu Módulo DS3231
Datasheet do RTC DS3231 :
https://datasheets.maximintegrated.com/en/ds/DS3231.pdf
Meu módulo é similar à esse :
https://produto.mercadolivre.com.br/MLB-705687190-modulo-real-time-...
Boas, Segue mais uns testes e algumas situações que me apercebi:
No BSKTB_Scoreboard_TPIC6B595_01.INO , que o José colocou, o separador do tempo acende BSKTB_Socoreboard_TPIC6B595_01 mas em todos os que fiz o download do git do Miguel não.
No Test_LedStrip.INO a verificação dá-me estes erros ( listagem abaixo ), mas fazendo o carregamento funciona
Tambem testei o teste.ino, do Miguel, mas tenho algumas situações:
O separador do tempo não acende
Alterando a linha 22 para (const int DEFAULT_POINTS = 188;) o marcador de pontos do lado esquerdo tem falhas em alguns segumentos
O marcador de posse de bola ( setas ) não acendem.
Já agora, é possivel colocar a buzina para verificar se toca quando o tempo chegar a zero??
Já encontrei uma que é programavel e não tem grande consumo, é usada em alarmes e funciona de 12v a 24v com um consumo de
Video:
Data sheet
Erros do Test_LedStrip.INO
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
char* testNumbers[] = {"0000", "1111", "2222", "3333", "4444", "5555", "6666", "7777", "8888", "9999"};
^
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\COMERCIAL_08\Downloads\BasketScoreboard-master\BasketScoreboard-master\Test_LedStrip\Test_LedStrip.ino:18:102: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Creio que o problema deve estar algures nas ligações daqueles segmentos.
Para continuar os testes, apaga tudo o que está dentro do setup (linha 99 a 105) e poem:
scoreDisplay.set("0123456");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("1234567");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("2345689");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("34567890");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("45678901");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("56789012");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("67890123");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("78901234");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("89012345");
scoreDisplay.show();
delay(1000);
scoreDisplay.set("90123456");
scoreDisplay.show();
delay(1000);
verifica se em cada display todos os digitos aparecem correctamente.
Para testar as setas de posse, apaga o que estiver no setup, e poem:
setPossessionHome();
delay(1000);
setPossessionVisit();
delay(1000);
clearPossession();
delay(1000);
Depois à noite vejo da buzina.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por