Ir ao conteúdo
  • Cadastre-se

Quero criar um sistema de linha de chegada


Niggul

Posts recomendados

Estou criando uma pista de corrida de hotwheels para meu irmão, e estava montando um circuito eletrônico de linha de chegada, pensei em usar pilhas de 6V, e um display para usar para mostrar qual chegou primeiro, mas não sei como monto esse circuito, esse circuito funcionaria basicamente assim, por exemplo o carrinho 4 chega primeiro no display apareceria o numero 4, mais nao sei como faço essa ligação, peço a ajuda de vocês para me falar qual componentes devo usar (resistor, jumpers) e as ligações, agradeço desde ja a ajuda de todos!                        image.png.6503341eff9ed40d4f4505e43aebecee.png

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
11 horas atrás, Niggul disse:

qual componentes devo usar (resistor, jumpers) e as ligações,

Amigo... o buraco é mais em baixo. Pesquise p.ex. por decodificador decimal a bcd

Olha o que meu exercício mental lhe propôs com circuito "comum"

circuitos-combinacionais-decodificadores

Cada CH_x numa chave que o 1º carrinho bate ou passa por ela, como na sua foto.

Aquela saída ABCD aplicada num decodificador bcd 7 segmentos

decodificador-CD4511-09.png

Combinando as saídas com uma porta OR 4 entradas...

aula-de-eletrnica-digital-9-638.jpg?cb=1

e aplicando no latch através de um flip flop algo como...

imagem5.JPG

, ele congela o 1º que passar.

... ufa!... Tudo isso teoricamente

 

Já o "incomum", comece a estudar microcontrolador. Pode ser até mesmo o famigerado arduíno.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Moris sim também pensei nisso mas foquei na foto com display do garoto. Em mais um extravagante exercício mental e apelando pro tradicional minimalismo, imagino 8 scr, 8 leds e cada scr controlando o gate do outro. O scr trabalhando como memória, o 1º que dispara bloqueia os d+. Infelizmente como a ideia é 100% original, não consigo achar desenho completo na net e to sem lapis e papel agora.

Tava digitando e Moris respondeu... É isso aí Moris. O detalhe é que um disparado deve bloquear o disparo dos d+

I

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Amigo, com alguns cliques e palavras mágicas certas, achei isso...

tir2.jpg

http://www.profelectro.info/tag/alarme-com-tiristor/#

Bem bacaninha. Quem disparar 1º "absorve" a tensão de disparo impossibilitando o disparo dos d+.

Sim você pode testar com 12Vdc, leds [+R 1k] e uns 4K7 no R das chaves. diodo 1n4001..7 ou 1n4148 e qualquer scr de baixa potência ou até mesmo "fazer" com bc548 558

600px-Thyristor.svg.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

como já tens o Arduíno...e já sabe mais ou menos como funciona... penso que o seu caso seja mais simples...

não tenho tempo para codificar algo agora, mas penso que seria fácil fazer...

Como o Arduíno tem vários pinos de entrada/saída

use 7 pinos para o display, e os outros para até 9 pistas...

Penso que seja tranquilo...

o único problema seria se dois passassem ao mesmo tempo não sei se o arduino consegue diferenciar entradas muito rápidas...

 

Acredito que precisaria dê:

10 resistores: 1 para o comum dos display e outros para os pull-ups de cada tecla...

1 display de sete segmentos

1 arduino nano

1 fonte para o arduino

1 chave para o reset.

 

Penso que seja o suficiente, espere o pessoal mais experiente dizer o que acha da ideia... se for boa fazemos o código.

Link para o comentário
Compartilhar em outros sites

17 horas atrás, Niggul disse:

O Arduíno nano tem adaptador para ligar a bateria nele?

Não encontrei adaptador direto para colocar bateria nele... mas, basta colocar a alimentação no GND e no VIN.

conforme esta imagem:

----------------------------------------------

images?q=tbn:ANd9GcS8pNZYhmMfLd7GvIJsEFM

 

Ou alimentar com USB. 

Quanto aos resistores vai depender do tipo do LED/Cor do display que usará...

Mas nem sempre encontramos informações sobre o display na internet... pois as vezes o componente é chinês e nem tem código...

Então eu uso um que não fique no brilho total do LED... em geral funciona pra mim quando não sei dados dos LEDs... mas na internet tem calculadoras que calculam o valor do resistor conforme a tensão aplicada... (caso você saiba os dados do LED/Display... eu uso em meus projetos um de 220ohms (vermelho-vermelho-marrom-dourado) para usar em 5V...

 

Quanto aos outros resistores, (que vão nas chaves), como dito por isadora, poderá usar os internos, mas como ainda não pesquisei como utilizar isso, então uso os de 10k (marrom-preto-laranja-dourado).

 

Vou tentar compilar o código hoje a noite para testar e posto aqui assim que conseguir.

Link para o comentário
Compartilhar em outros sites

@BloodCeltics Lopes ta bom muito obrigado, comprei o Arduino nano pela internet e estou esperando chegar para começar às ligações 

adicionado 10 minutos depois

@BloodCeltics Lopes Entendi o sistema que voce montou ai só não sei qual lugar ligar cada ponteira do display , sei q o display tem o E, H,G simbolizando um led no display mais nao sei qual ligação faço, ex o ponto E do display liga o a0 o H no a1, poderia me explicar? 

Link para o comentário
Compartilhar em outros sites

CARROS ARDUINO.jpg

adicionado 4 minutos depois

Basta seguir as ligações desta nova imagem, fiz aqui e funcionou perfeitamente.

O código ainda pode ser muito melhorado por alguém mais experiente.

Não tenho certeza da velocidade de operação, pois não montei na pista com carrinhos apenas montei na protoboard.

O botão reset do Arduíno volta ao ZERO depois de travar no numero que chegou primeiro.

O display deve ser do tipo com o NEGATIVO COMUM, para que funcione com este código.

Agora com este novo esquema você só vai precisar de um resistor, pois estou usando os pull-ups internos.

adicionado 5 minutos depois

void Mostrar(int valor) {
  if (valor == 0)
        { 
        digitalWrite(A0, HIGH); 
        digitalWrite(A1, HIGH);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, HIGH);
        digitalWrite(A4, HIGH);
        digitalWrite(A5, HIGH);
        digitalWrite(12, LOW);
         } else
  if (valor == 1)
        { 
        digitalWrite(A0, LOW);
        digitalWrite(A1, HIGH);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, LOW);
        digitalWrite(A4, LOW);
        digitalWrite(A5, LOW);
        digitalWrite(12, LOW);
         } else         
  if (valor == 2)
        { 
        digitalWrite(A0, HIGH);
        digitalWrite(A1, HIGH);
        digitalWrite(A2, LOW);
        digitalWrite(A3, HIGH);
        digitalWrite(A4, HIGH);
        digitalWrite(A5, LOW);
        digitalWrite(12, HIGH);
         } else   
  if (valor == 3)
        { 
        digitalWrite(A0, HIGH);
        digitalWrite(A1, HIGH);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, HIGH);
        digitalWrite(A4, LOW);
        digitalWrite(A5, LOW);
        digitalWrite(12, HIGH);
         } else       
  if (valor == 4)
        { 
        digitalWrite(A0, LOW);
        digitalWrite(A1, HIGH);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, LOW);
        digitalWrite(A4, LOW);
        digitalWrite(A5, HIGH);
        digitalWrite(12, HIGH);
         } else        
  if (valor == 5)
        { 
        digitalWrite(A0, HIGH);
        digitalWrite(A1, LOW);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, HIGH);
        digitalWrite(A4, LOW);
        digitalWrite(A5, HIGH);
        digitalWrite(12, HIGH);
         } else         
  if (valor == 6)
        { 
        digitalWrite(A0, HIGH);
        digitalWrite(A1, LOW);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, HIGH);
        digitalWrite(A4, HIGH);
        digitalWrite(A5, HIGH);
        digitalWrite(12, HIGH);
         } else        
  if (valor == 7)
        { 
        digitalWrite(A0, HIGH);
        digitalWrite(A1, HIGH);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, LOW);
        digitalWrite(A4, LOW);
        digitalWrite(A5, LOW);
        digitalWrite(12, LOW);
         } else             
  if (valor == 8)
        { 
        digitalWrite(A0, HIGH);
        digitalWrite(A1, HIGH);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, HIGH);
        digitalWrite(A4, HIGH);
        digitalWrite(A5, HIGH);
        digitalWrite(12, HIGH);
         } else              
  if (valor == 9)
        { 
        digitalWrite(A0, HIGH);
        digitalWrite(A1, HIGH);
        digitalWrite(A2, HIGH);
        digitalWrite(A3, HIGH);
        digitalWrite(A4, LOW);
        digitalWrite(A5, HIGH);
        digitalWrite(12, HIGH);
         }           
}
int Terminou;
const int Pista1 =  2;
const int Pista2 =  3;
const int Pista3 =  4;
const int Pista4 =  5;
const int Pista5 =  6;
const int Pista6 =  7;
const int Pista7 =  8;
const int Pista8 =  9;
const int Pista9 =  10;

void setup() {
pinMode(A0, OUTPUT); //Segmento "A" do display.
pinMode(A1, OUTPUT); //Segmento "B" do display.
pinMode(A2, OUTPUT); //Segmento "C" do display.
pinMode(A3, OUTPUT); //Segmento "D" do display.
pinMode(A4, OUTPUT); //Segmento "E" do display.
pinMode(A5, OUTPUT); //Segmento "F" do display.
pinMode(12, OUTPUT); //Segmento "G" do display. 

pinMode(Pista1,INPUT_PULLUP);
pinMode(Pista2,INPUT_PULLUP);
pinMode(Pista3,INPUT_PULLUP);
pinMode(Pista4,INPUT_PULLUP);
pinMode(Pista5,INPUT_PULLUP);
pinMode(Pista6,INPUT_PULLUP);
pinMode(Pista7,INPUT_PULLUP);
pinMode(Pista8,INPUT_PULLUP);
pinMode(Pista9,INPUT_PULLUP);
Terminou = 0;
Mostrar(0);
}

void loop(){

if (Terminou == 0){

  if (digitalRead(Pista1) == LOW)
    {     
    Mostrar(1); 
    Terminou = 1;   
    }else
  if (digitalRead(Pista2) == LOW)
    {     
    Mostrar(2); 
    Terminou = 1;   
    }else  
  if (digitalRead(Pista3) == LOW)
    {     
    Mostrar(3); 
    Terminou = 1;   
    }else   
  if (digitalRead(Pista4) == LOW)
    {     
    Mostrar(4); 
    Terminou = 1;   
    }else   
 
   if (digitalRead(Pista5) == LOW)
    {     
    Mostrar(5); 
    Terminou = 1;   
    }else   
 
   if (digitalRead(Pista6) == LOW)
    {     
    Mostrar(6); 
    Terminou = 1;   
    }else   
 
   if (digitalRead(Pista7) == LOW)
    {     
    Mostrar(7); 
    Terminou = 1;   
    }else   
 
   if (digitalRead(Pista8) == LOW)
    {     
    Mostrar(8); 
    Terminou = 1;   
    }else   
 
   if (digitalRead(Pista9) == LOW)
    {     
    Mostrar(9); 
    Terminou = 1;   
    }       
}
}

 

Link para o comentário
Compartilhar em outros sites

Valeu,

CARROS ARDUINO.zip

adicionado 3 minutos depois

Cada pista é uma chave... só náo sei o que você vai colocar para detectar cada carrinho que passa...

adicionado 7 minutos depois
9 minutos atrás, Niggul disse:

@BloodCeltics Lopes image.png.7915b3ecc8a4303934ae03c8e60f9472.pngE esses aqui o que seriam? 

Estas são as chaves ligando o negativo (GND) em cada pino... poderia ser feito com um pequeno imã em baixo de cada carro e um sensor reedswitch em cada pista para detectar cada passagem do carro.

A chave que for ligada primeiro trava as demais...e clica-se no reset para voltar ao zero.

lembrando que apesar de ter a opção de 9 pistas você pode usar menos se quiser.

Link para o comentário
Compartilhar em outros sites

Para colocar só 6, basta iniciar do pino D2 e usar até o D7.

 

7 minutos atrás, Niggul disse:

chega ele empurra a alavanca e ativa, teria como? 

Sim, basta colocar um fiozinho em cada parte, por exemplo o GND do arduino colocado na base.. e nas alavancas coloca os fios D2 na primeira... D3 na segunda... e assim por diante...

 

ou usar um ima nos carrinhos e uma chave deste tipo REED-Switch NA (normalmente aberta)

assim se cada carrinho passar com seu imã... ele fecha a chave e registra que o carro passou...

08642-02-L.jpg

chave reedswitch... é uma alternativa...

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!