SEMÁFORO DE FERROMODELISMO, COM CANCELA E FAROL A LEDS ???

BOA NOITE CAROS AMIGOS DO "LAB DE GARAGEM"

SERÁ QUE ALGUEM PODERIA ME AUXILIAR ?

ESTOU TENTANDO MONTAR UM SEMÁFORO COM DOIS LEDS, (RED E GREEN) P/ TREM, COM CANCELA DE MICROSERVO, EM MEU " FERROMODELISMO".

PRECISO QUE O SISTEMA ATENDA O SEGUINTE:

QUANDO O TREM SE APROXIMAR DA ESTAÇÃO, ACENDA O FAROL, (LED GREEN), DO SEMÁFORO E LOGO EM SEGUIDA ABRA A CANCELA, (SERVO).

E TÃO LOGO ISSO OCORRA, APÓS UNS 3 SEGUNDOS, A CANCELA (SERVO), BAIXA E ACENDE O FAROL (LED RED), AGUARDANDO O NOVO PERCURSO DO TREM, SEGUINDO O CICLO NORMAL DESSA MINI FERROVIA.

PORÉM, MEU SKETCH COMPILA, A PRINCÍPIO O SISTEMA FUNCIONA NO ARDUINO UNO, MAS, O MICROSERVO OSCILA MUITO AO AGUARDAR O ABRIR E FECHAR DA CANCELA (SERVO), NO ENTANTO OS LEDS ADICIONADOS, VÃO SE PERDENDO SEUS BRILHOS GRADATIVAMENTE.

SERÁ QUE ESCREVI ALGO ERRADO, EMBORA QUE O SKETCH TENHA COMPILADO.

EXEMPLO:

#include <Servo.h>
Servo myservo;

void setup()
{
myservo.attach(7); // Servo conectado al pin 9
pinMode(13, OUTPUT);
}

void loop() {

digitalWrite(9, HIGH); // LED RED ON
delay(2000); // AGUARDA 2 SEGUNDOS

myservo.write(90); //ABRE CANCELA E PASSA TREM
delay(5000); //AGUARDA TREM E VAGÕES PASSAREM


myservo.write(0); // BAIXA CANCELA
delay(1000);

digitalWrite(9, LOW); // LED RED OFF
delay(300);


digitalWrite(12, HIGH); // LED GREEN ON
delay(10000); // AGUARDA A CHEGADA DO TREM NOVAMENTE, TREM ESTÁ EM PERCURSO ...


digitalWrite(12, LOW); // LED GREEN ON

digitalWrite(9, LOW); // LED RED OFF

delay(10);

}

SEM MAIS, QUERO AGRADECER A TODOS OS INTEGRANTES DO GRUPO !!!

Exibições: 1522

Responder esta

Respostas a este tópico

Sugestão - pode colocar sensores infra-vermelho para detectar a aproximação do trem .

Assim quando o trem passar pelo sensor (antes da cancela) , ele fecha a cancela e acende o Led vermelho. 

O outro sensor após a cancela, descobre que o trem já passou e abrirá a cancela novamente e acenderá o led verde. 

https://www.arduino.cc/en/Reference/Servo

https://www.arduino.cc/en/Reference/ServoAttach

https://www.arduino.cc/en/Reference/ServoWrite

O servo esta  conectado  no pino 7 ?? Qual a versão da IDE do Arduino esta usando ?

myservo.attach(7); // Servo conectado al pin 7

Esta usando uma fonte externa ? Ou somente conectado no cabo USB ?

Qual micro servo esta usando ?

Meça a tensão de 5V no Arduino, enquanto faz os testes. 

Ligou resistor em série com o led ? Quais os valores dos resistores ?

OLÁ CARO JOSÉ AUGUSTO, MUITO BOA NOITE !!!

ANTES DE MAIS NADA, QUERO AGRADECER-LHES A SUA ATENÇÃO.

EXCLAREÇO QUE COMPREI UMA PLAQUINHA STANDALONE ARDUINO PELO (M.L.) E ACABEI POR MONTÁ-LA UTILIZANDO O MICRO ATMEGA 328p, LIGADO À UMA FONTE EXTERNA DE 1,5A  x 9VCC.

OS LEDS SÃO DO TIPO SHIELDS (SMD), ONDE JÁ ESTÃO AGREGADOS À ELES, OS RESISTORES SMD.

O MICRO SERVO, AGORA POUCO AQUECEU MUITO E QUASE PEGOU FOGO.

TENHO OUTRO PROTÓTIPO DE HIGH-LIGHT FUNCIONANDO NORMALMENTE, E COM ESSAS MESMAS PEÇAS.

MAS, VOU APROVEITAR DESSA DICA QUE ME PASSOU, REFERENTE AOS LINKS, E MODIFICAR A FORMA DE ADMINISTRAR A MINHA MINI FERROVIA.

QUANTO A VERSÃO, É A ÚLTIMA BAIXADA 1.6.8 ALGO PARECIDO.

E SOBRE O PINO D7, ESCOLHI ALEATÓRIAMENTE.

AGRADEÇO GRANDEMENTE SUA ATENÇÃO MEU PREZADO !!!

Esse servo motor deve estar com defeito. Troque-o. 

Esta alimentando o servo com 5V ? 

sim, 5vcc da fonte

vou providenciar outro

Bom dia André!

O código que o Argel Galante postou, corrige alguns problemas apresentados no seu sketch que poderiam causar as falhas apresentadas:

- Código organizado com nomes apropriados de variáveis

- Veja que você habilitou o pino 13, mas nunca usou no programa

- Você está acionando os leds RED e GREEN, mas não definiu os pinos como OUTPUT. Isso faz com que o brilho fique fraquinho.

Experimente testar o código do Argel e depois poste aqui os resultados.

Você só precisa checar os pinos da sua montagem com os pinos apresentados no código. Parece que o LEDs R e G estão no pinos 9 e 12. Então confira e faça as adaptações...

MARAVILHA PESSOAL !!! MUITÍSSIMO AGRADECIDO PELAS DICAS DESSES MEUS AMIGOS !!!

AGRADEÇO A TODOS:

RUI VIANA, JOSÉ A. CINTRA, JOSÉ G. A. MURTA E ARGEL GALANTE !!!!

COM O AUXÍLIO DE VOCEIS, DEIXEI MEU SKETCH COMO MOSTRA ABAIXO, E AGORA TUDO ESTÁ FUNCIONANDO CORRETAMENTE, APESAR DE QUE O MICROSERVO AINDA ESQUENTA UM POUQUINHO, QUANDO FUNCIONANDO POR VÁRIOS MINUTOS.

VALEU PESSOAL !

ATT

ANDRE // PIRACICABA-SP.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

#include <Servo.h>
Servo myservo;

void setup()
{
myservo.attach(7); // Servo conectado al pin 9
myservo.write(0);
// pinMode(13, OUTPUT);
pinMode(12,OUTPUT);
pinMode(9,OUTPUT);
}

void loop() {

digitalWrite(9, HIGH); // LED RED ON
delay(2000); // AGUARDA 2 SEGUNDOS

myservo.write(90); //ABRE CANCELA E PASSA TREM
delay(5000); //AGUARDA TREM E VAGÕES PASSAREM


myservo.write(0); // BAIXA CANCELA
delay(1000);

digitalWrite(9, LOW); // LED RED OFF
delay(300);


digitalWrite(12, HIGH); // LED GREEN ON
delay(10000); // AGUARDA A CHEGADA DO TREM NOVAMENTE, TREM ESTÁ EM PERCURSO ...


digitalWrite(12, LOW); // LED GREEN ON

digitalWrite(9, LOW); // LED RED OFF

delay(10);

}

André, para incrementar o seu projeto, veja esse componente com leds para semáforo:

http://www.baudaeletronica.com.br/modulo-semaforo-gbk-robotics.html

OK JOSÉ, VOU DAR UMA ESPIADINHA ...

Oi ALP, bom dia:

Você utiliza os pinos 12 como controle do LED Verde e 9 como controle do LED verde.

Mas antes de usar estes pino para acender os LED ou acionar uma carga, ele TEM que ser defino com

será usado, na função  void setup()

      ten-se que definir assim:  pinMode(12,OUTPUT);

                                            pinMode(9,OUTPUT);

Sem estas definições, o LEDs se comportam mesmo da maneira que você descreve.

No exemplo do link:

         http://blog.filipeflop.com/motores-e-servos/micro-servo-motor-9g-sg...

tem uma linha que não tem no seu código, na função void setup():

             myservo.write(0); // Inicia motor posição zero

Não acredito que isto afete o resultado final, mas vale apenas testar.

Aqui tem um erro, mas acho que o erro é só no comentário:  myservo.attach(7); // Servo conectado al pin 9

Rui

OK, PURA VERDADE RUI, VC TEM RAZÃO.

VOU  SETAR PRIMEIRAMENTE OS PINOS, 9 && 12 (pinMode); E DEPOIS VERIFICO O RESTANTE DO SKETCH, CASO NECESSITE.

BOM DIA CARO RUI, ENFIM COM SEUS AUXÍLIOS, CONSEGUI ESTABILIZAR O CIRCUITO.

VALEU MESMO HEIN !!!!

ABRAÇÃO MEU CAMARADA.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço