31 de outubro de 2012

Safety Car

Sabe quando você precisa de mais que um pisca-alerta no trânsito?


Circular com isso ligado acredito que não seja permitido por lei, mas uma ótima aplicação é em casos de pane no veículo ou algum motivo que seja necessário a parada no acostamento.

A combinação do pisca-alerta, mais o triângulo de segurança, e mais o projeto Safety Car, garante uma segurança muito maior para a visualização do veículo parado.

Usei um par dessas lanternas de leds que encontramos em qualquer loja de peças pra automóveis. O modelo possui 8 leds em cada.

O circuito fiz baseado na plataforma Arduino e foi montado numa placa de fenolite de 7x4cm.

Como podem ver no código do microcontrolador, existe uma chave que liga sinal alto ao pino 9. Dessa forma podemos deixar a lanterna sempre ligada, sem o pisca.

É possível a instalação de forma fixa, ou deixar guardado e utilizar somente quando necessário, utilizando a tomada de 12v do carro.

Segue o esquema elétrico do circuito, fotos da pcb, e o código fonte:


  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
/*----------------- 
 S A F E T Y  C A R
 Fellipe Couto
 16/09/2012
 -----------------*/
#define L1 2
#define L2 3
#define strobe 9

void setup(){
  pinMode(L1,OUTPUT);
  pinMode(L2,OUTPUT); 
  pinMode(strobe, INPUT);
}

void loop(){
  if (digitalRead(strobe) == HIGH){
    strobe1(15);
    strobe2(12);
    strobe3(7);
    strobe4(7);
  }
  else{
    digitalWrite(L1, HIGH);
    digitalWrite(L2, HIGH); 
  }
}

void strobe1(int qtd){
  int t = 50;
  for (int q=0; q<qtd; q++){
    for (int i=0; i<3; i++){
      digitalWrite(L1,HIGH);
      delay(t);
      digitalWrite(L1,LOW);
      delay(t);
    }
    for (int i=0; i<3; i++){
      digitalWrite(L2,HIGH);
      delay(t);
      digitalWrite(L2,LOW);
      delay(t);
    }
  }
}

void strobe2(int qtd){
  int x = 5;
  int t = 40;
  for (int q=0; q<qtd; q++){
    for (int i=0; i<x; i++){
      digitalWrite(L1,HIGH);
      digitalWrite(L2,HIGH);
      delay(t);
      digitalWrite(L1,LOW);
      digitalWrite(L2,LOW);
      delay(t);
    }
    delay(200);
  }
}

void strobe3(int qtd){
  int t = 400;
  int t1 = 60;
  for (int i=0; i<qtd; i++){
    digitalWrite(L1,HIGH);
    digitalWrite(L2,HIGH);
    delay(20);
    digitalWrite(L1,LOW);
    digitalWrite(L2,LOW);
    delay(t);
    digitalWrite(L1,HIGH);
    delay(t1);
    digitalWrite(L1,LOW);
    digitalWrite(L2,HIGH);
    delay(t1);
    digitalWrite(L2,LOW);
    digitalWrite(L1,HIGH);
    delay(t1);
    digitalWrite(L1,LOW);
    digitalWrite(L2,HIGH);
    delay(t1);
    digitalWrite(L1,LOW);
    digitalWrite(L2,LOW);
    delay(t);
  }
}

void strobe4(int qtd){
  int t = 20;
  int t1 = 500;
  for (int i=0; i<qtd; i++){
    digitalWrite(L1,HIGH);
    digitalWrite(L2,HIGH);
    delay(t);
    digitalWrite(L1,LOW);
    digitalWrite(L2,LOW);
    delay(t1);
  }
}

13 comentários:

  1. Cara, muito bom isso, mas porque você não posta alguma coisa sobre, Ponte H com transistor, ou MOSFET, qual e a melhor, e como usar com PWM. Obrigado pela atenção, Abraços

    ResponderExcluir
    Respostas
    1. Obrigado pelo elogio! Estarei postando algo sobre. Abraços!

      Excluir
  2. Bom dia Felipe,
    Obrigado por ter postado e oque eu estava procurando, mas nao entendo muito de eletonica na verdade nao intendo e nada......kkkk
    mais gostaria de saber se voce nao vende um arduino ja com codigo fonte???

    ResponderExcluir
    Respostas
    1. Bom dia, Rafael!
      Eu faço os projetos por hobby, não trabalho com vendas. Mas não é complicado pra montar esse projeto e qualquer dúvida que tiver e ajuda, estamos ai!
      Abraços!!

      Excluir
  3. Bom dia Fellipe Couto, estou voltando a gostar de eletrônica e até ja comprei alguns itens 01 protoborad e um multímetro. Ah, também baixei aquele programa chamado PROTEUS para ajudar na confecção da placa de circuito elétrico. O que venho aqui solicitar é o seguinte, este arduino é fácil achar ele para comprar? Tem alguma especificação do tipo, igual a CI, por exemplo: CI 555 ou CI 4017 ou é só chegar e pedir um arduino nas casas de eletrônica? Percebi que ele é programável, pois tem umas linhas de comando mais abaixo do esquema de montagem do circuito. Posso conectar a qualquer computador ou notebook? Precisa de algum cabo especial para está conexão?
    Estou te fazendo estas perguntas, pois moro à 20km da cidade de Ribeirão Preto/SP e recentemente minha esposa precisou ir as pressas para o hospital que temos convénio em Ribeirão Preto/SP e na estrada o pessoal não dava passagem, mesmo com os pisca alerta do carro ligado, eu dando luz alta e buzinando o pessoal não dava passagem. Graças a DEUS cheguei ao hospital com ela e conseguiram atende-la. Hoje ela está no CTI e nosso filho nasceu com prematuridade máxima, apenas com 24 semanas e 4 dias. Isso tudo aconteceu dia 22/11/2013. Quero montar este circuito em meu carro para quando em emergências dessas as pessoas que não respeitam ver que de certa forma eu estou com pressa para salvar uma vida, ou duas no meu caso. Agradeço desde já sua atenção.

    ResponderExcluir
    Respostas
    1. Bom dia, Antur!
      O Arduino é uma placa para desenvolvimento de protótipos. Já é feita para conexão direta no pc via porta USB. Assim vc faz toda a configuração/programação dele. Depois, é só passar para a placa em versão final, assim como nesse projeto SafetyCar.
      Nesse post listei alguns sites de vendas, e em alguns deles tem o arduino: http://www.efeitonerd.com.br/2011/12/compra-de-componentes-eletronicos.html
      Graças a Deus não houve problemas com seu ocorrido, e espero que hoje seu filho esteja feliz e saudável, alegrando a sua família!
      Abraços!

      Excluir
  4. vc tem o print da placa? sua foto nao esta legivel... a da montagem... obg e parabens foi o melhor que vi ate agora... gostaria de tentar fazer um

    ResponderExcluir
    Respostas
    1. Bom dia!
      Não tenho o print da placa. Mas é o Arduino montado de forma stand-alone. A tensão do carro (12v) é ligada diretamente nos nos LEDs, com os transistores TIP22, e para alimentar o arduino, os 12v são ligados a um CI regulador de tensão para 5v (CI 7805). É simples, sem mistérios.
      Abraços!!

      Excluir
    2. tenho umas pequenas duvidas.. vc poderia passar teu zap ou entrar em contato comigo 041 81 9 9712 5153 obrigado

      Excluir
    3. Oi Ronaldo!
      Quais seriam as dúvidas?
      Abraços!

      Excluir
  5. Muito bom, parabéns. Como eu faço para colocar uma chave push-botton para mudar o efeito no momento em que eu quiser. Ex: Escolho um tipo de efeito assim ele fica naquele tipo e se em seguida dou um toque na chave ele passa para outro tipo de efeito e sucessivamente até chegar ao início novamente.
    Obrigado.
    Diarez Mello

    ResponderExcluir
    Respostas
    1. Oi Diarez! Obrigado pelo elogio!
      Para controlar os efeitos, uma das formas seria adicionar uma condicional If entre as linhas 18 e 21, da mesma forma qie existe o If na linha 17, para controlar o botão já existente.
      Abraços!

      Excluir
  6. Como seria pra assim que ligar o circuito, funcionar com um efeito específico e só mudar de efeito após tocar um botão ?

    ResponderExcluir