Ajuda - programa p arduino controle strobos leds vermelho/azul

caro amigo viniviuspolo, voce me ajudou imenso.

Quanto ao tutorial, assim k tiver isto preparado, vou concerteza apresentar ao pessoal...com fotos, video e tudo...desde o inicio.

Vou entao experimentar, e dps digo algo.
Obgdo uma vez mais.

Abraço.

Olá.
Removi uma parte inutil do código

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

Era apenas resto do exemplo que me basiei.
Podes criar quantas outras funcoes sequencias quiser, basta seguir o modelo e depois renomea-las.
Lembrar tambem de chama-las na ordem que desejar no loop.
É sepre bom dar um tempo de pelo menos 500ms antes de ler o estado de um botao novamente, mas como estava implicito isso no código pois se chama duas vezes a funcao delay com esse tempo, nao avisei.
Mas caso o tempo de piscar de seus LEDs no total for menor que 500ms, basta apenas repetir o processo até o total de tempos ser maior ou igual a 500ms.
Mais dúvidas e problemas que tiver basta postar.
Abraço.

ok obgdo.

Amigo viniciuspolo, é possivel trocar-mos o endereço de messenger?!

Rodrigo Pontes
rpontes_30@hotmail.com

agora fikei com uma duvida....o botao vou ligar no pino13 e mais??? n sei onde ligar p mudar de sequencia...

aproveito e anexo um video dos strobos ja com o programa k me enviou

mesmo assim, em cada vez k uma cor acende, pretendo fazer outra sequencia, k em cada cor num segundo pisca 5 vezes...

exemplo da net:

abraço

Olá.
Não gosto muito de usar messenger.
Pode me mandar mensagens de e-mail se quiser para .......
Mas prefiro resolver dúvidas por aqui pois assim todos aprendem e fica resgistrado para quando alguem tiver o mesmo problema
O botao vc deve ligar segundo esse esquema, sendo que ele está ligado ao gnd por um resistor de 10k quando não pressionado.
http://arduino.cc/it/Tutorial/Button
Eu não entendi a sequencia que voce deseja.
Me explique melhor, e se no caso serao dois modulos como no vídeo.
Se for dois modulos se refira a LuzVerm1 e LuzVerm2 para saber de qual modulo fala.

Agora vi o segundo video melhor.
Voce deseja igual o do video?
Voce possui um potenciometro?
Se quiser posso fazer identico ao do video.

isso mesmo, pensei k n tinha percebido.
eu tenho potenciometro, so n sei qual é o indicado....no entanto, tinha pensado criar 2 sequencias diferentes, e muda-las com um botao de pressao...agr n sei qual é o melhor.

entao o que pretendia é o seguinte:

Sequencia 1 : igual ao video que mandei com o programa k me deu;
Sequencia 2 : igual ao video que mandei como exemplo na net:
nota: refiro-me ao post anterior a este que escrevi com videos

espero que tenha percebido, caso contrario, tento explicar de outra maneira.
obgdo
Abraço.

Olá.
Deixe me ver se entendi tudo direito.
Quer duas sequencias.
A primeira sequencia é igual a sequenciaUm que fiz no exemplo.
Quer que faça alguma modificação nela como os LEDs piscarem mais rápido?
A segunda sequencia quer igual a do vídeo, LEDs Vermelhos piscam 5 vezes e depois LEDs Azuis piscam 5 vezes?
No segundo vídeo o que acontece que com o potenciômetro o tempo entre os LEDs piscarem é alterado.
Posso implementar isso se quiser usando um potenciômetro.
Dessa forma você usa o botao para mudar entre a sequencia 1 e 2 e o potenciômetro para alterar a frequência que os LEDs piscam.
Posso ainda implementar isso para a sequenciaUm támbem, caso queira.
Amanhã vou estar bem ocupado, mas talvez sobre um tempo a noite para eu implementar.
Mas deixe bem explicado como quer que eu implemento o código para você.

é isso mesmo. Axo k para ja vou optar pelas 2 sequencias, mas sem potenciometro....da p fazer ??? alternando as duas sequencias com o botao!!

OBGD
ABRAÇO

gostava de saber uma coisa...depois de programar tudo, ter tudo a trabalhar, supondo que quero colocar os strobos na minha viatura, terei k andar com o arduino atras dos modulos, ou posso implementar numa pci os componentes necessários?!

Aguardo respostas de ajuda

Olá.
Hoje estou um pouco ocupado ainda e nao deve dar tempo de implementar o código, mas amanha devo ter tempo.
Voce pode usar uma pcb.
Até amanhã.

amigo viniciospolo, ja descobri...ja tenho o codigo!!!!

tive a falar com o meu ex-formador, e ele deu-me uma ajuda. tenho o codigo com 4 sequencias de strobos. Assim que for possivel posto fotos para verem.

codigo:

 const int pinoBotao = 10;     // dando nome ao pino conectado o botao para facilitar durante a programacao
const int pinoLedVerm =  5;      // dando nome ao pino conectado o LED Vermelho para facilitar durante a programacao
const int pinoLedAzul =  4;      // dando nome ao pino conectado o LED Azul para facilitar durante a programacao
volatile int state = LOW;
// variables will change:
int buttonState, sequencia=0;         // variable for reading the pushbutton status

void setup() {
  // inicializa os pinos dos LEDs como saidas
  pinMode(pinoLedVerm, OUTPUT);
  pinMode(pinoLedAzul, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(pinoBotao, INPUT);
  //desliga os dois LEDs, apenas para ter certeza que quando inicia é com os LEDs apagados
  digitalWrite(pinoLedVerm, LOW); 
  digitalWrite(pinoLedAzul, LOW); 
  attachInterrupt(0, sequencias, RISING);
}

void loop(){
  
  if(sequencia==1) sequenciaUm();
  if(sequencia==2) sequenciaDois();
  if(sequencia==3) sequenciaTres();
  if(sequencia==4) sequenciaQuatro();


}

void sequencias()
{
  static unsigned long last_interrupt_time = 0;
  unsigned long interrupt_time = millis();
  // If interrupts come faster than 200ms, assume it's a bounce and ignore
  if (interrupt_time - last_interrupt_time > 700)
  { 
    sequencia++;
    if (sequencia >4) sequencia = 1;
  }
  last_interrupt_time = interrupt_time;
}

void sequenciaUm(){
  //acende os LEDs azuis
  digitalWrite(pinoLedAzul, LOW); 
  //apaga LEDs vermelhos
  digitalWrite(pinoLedVerm, LOW);
  //aguarda um tempo de 500 ms
  delay(500);
  //acende os LEDs vermelhos
  digitalWrite(pinoLedAzul, HIGH); 
  //apaga LEDs azul
  digitalWrite(pinoLedVerm, HIGH);
  //aguarda um tempo de 500 ms
  delay(500);

}

void sequenciaDois(){
  //acende os LEDs azuis
 
  digitalWrite(pinoLedAzul, LOW);
  delay(150);
  digitalWrite(pinoLedAzul, HIGH); 
  delay(150);
  digitalWrite(pinoLedAzul, LOW);
  delay(150);
  digitalWrite(pinoLedAzul, HIGH); 
  delay(150);
  digitalWrite(pinoLedAzul, LOW);
  delay(150);
  digitalWrite(pinoLedAzul, HIGH); 
  delay(150);
  

  //apaga os LEDs vermelhos
 
  digitalWrite(pinoLedVerm, LOW); 
  delay(150);
  digitalWrite(pinoLedVerm, HIGH);
  delay(150);
  digitalWrite(pinoLedVerm, LOW); 
  delay(150);
  digitalWrite(pinoLedVerm, HIGH);
  delay(150); 
  digitalWrite(pinoLedVerm, LOW); 
  delay(150);
  digitalWrite(pinoLedVerm, HIGH);
  delay(150);
  
 
}
void sequenciaTres(){
  
 digitalWrite(pinoLedAzul, HIGH); 
  //apaga LEDs vermelhos
  digitalWrite(pinoLedVerm, LOW);
  //aguarda um tempo de 500 ms
  delay(200);
  //acende os LEDs vermelhos
  digitalWrite(pinoLedVerm, HIGH); 
  //apaga LEDs azul
  digitalWrite(pinoLedAzul, LOW);
  //aguarda um tempo de 500 ms
  delay(200);

}
void sequenciaQuatro(){
  
   digitalWrite(pinoLedAzul, LOW);
  delay(50);
  digitalWrite(pinoLedAzul, HIGH); 
  delay(50);
  digitalWrite(pinoLedAzul, LOW);
  delay(50);
  digitalWrite(pinoLedAzul, HIGH); 
  delay(50);
  digitalWrite(pinoLedAzul, LOW);
  delay(50);  
  digitalWrite(pinoLedAzul, HIGH); 
  delay(50);
  digitalWrite(pinoLedAzul, LOW);
  delay(50); 
  digitalWrite(pinoLedAzul, HIGH); 
  delay(50);
   digitalWrite(pinoLedAzul, LOW);
  delay(50);  
  digitalWrite(pinoLedAzul, HIGH); 
  delay(50);
  digitalWrite(pinoLedAzul, LOW);
  delay(50); 
  digitalWrite(pinoLedAzul, HIGH); 
  delay(50);
  //apaga os LEDs vermelhos
 
  digitalWrite(pinoLedVerm, LOW); 
  delay(50);
  digitalWrite(pinoLedVerm, HIGH);
  delay(50);
  digitalWrite(pinoLedVerm, LOW); 
  delay(50);
  digitalWrite(pinoLedVerm, HIGH);
  delay(50); 
  digitalWrite(pinoLedVerm, LOW);   
  delay(50);   
  digitalWrite(pinoLedVerm, HIGH);
  delay(50); 
  digitalWrite(pinoLedVerm, LOW);   
  delay(50);  
  digitalWrite(pinoLedVerm, HIGH);
  delay(50);
  digitalWrite(pinoLedVerm, LOW);   
  delay(50);   
  digitalWrite(pinoLedVerm, HIGH);
  delay(50); 
  digitalWrite(pinoLedVerm, LOW);   
  delay(50);  
  digitalWrite(pinoLedVerm, HIGH);
  delay(50);
}

Este foi um exemplo que ele me deu, mas ha outra maneira de fazer mais simples.
peço desculpa ter colado o codigo assim, mas n sei como voces fazem.

de qlqr forma, se tiverem outra ideia, ou outro codigo que queira partilhar, aceito...eu partilhei este para quem precisar.

Abraço

ja agora, pode-me explicar como faço isso na pcb?!

desculpe a minha ignorancia...

Olá.
Então a parte do código já está resolvida?
Para passar o Arduino para um PCB basta seguir esses passos que são os mesmo que para um Breadboard.
http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard
Pode ainda usar o regulador de tensao para converter a energia 12V do carro para o Arduino, lembrando que talvez precise coloca um pedaço de metal junto ao regulador para dissipar o calor gerado se for muito.
Quando precisar inserir um link, codigo, foto, etc, basta clicar em um dos botoes acima da caixa de texto.
Como por exemplo quando quiser colocar código clique em # e coloca seu codigo entre as tags code.
Se quiser pode editar sua mensagem anterior e ajustar.
Se surgirem mais dúvidas fico a disposição para ajudar.
Tem meu e-mail, se quiser poste aqui e me mande o link do post pelo e-mail, pois nem sempre venho aqui ao forum.

Obrigado pela ajuda.

Agora tou com um problema, o arduino que eu tinha, era do curso que fiz e agora pediram-me o arduino e tive de o entrgar. Ou seja, tou sem arduino.
Vou ter que comprar um...mas so no fim do mes :drooling_face: :drooling_face:

Outra coisa, posso usar os strobos sem a placa arduino??
disseram-me k sim, mas ia precisar de um microcontrolador, cristais...etc... ou seja, posso criar numa pci com os componentes necessarios?!

Abraço

Olá.
Sim pode funcionar sem Arduino, basta montar o esquema que passei na resposta anterior em uma PCB ao inves da Breadboard.
Mas deve precisar de um Arduino para gravar o seu programa no microcontrolador.

sim isso eu sei...
so fikei com uma duvida...no esquema que me mandou, fikei com uma duvida...é preciso tb o arduino-ready??

Já agora, é possivel arranjar-me o desenho p imprimir, e passar para a PCB do esquema anterior na breadbord???
eu tenho o programa para o fazer, mas não me entendo muito com isso...
obrigado

abraço

Olá.
Não, ele é preciso apenas se necessitasse gravar outros programas no microcontrolador.
Mas como você prentede deixar o programa permanente na memoria, não é preciso.
Pode usar o Arduino de algum conhecido para gravar o código no seu microcontrolador.

sim isso eu sei...
so fikei com uma duvida...no esquema que me mandou, fikei com uma duvida...é preciso tb o arduino-ready??

Já agora, é possivel arranjar-me o desenho p imprimir, e passar para a PCB do esquema anterior na breadbord???
eu tenho o programa para o fazer, mas não me entendo muito com isso...
obrigado

abraço

Pode me arranjar o esquema com o desenho para colocar na PCB???
Obgdo, Abraço