Custom Search

segunda-feira, 25 de junho de 2012

Arduino + Sensor de Estacionamento




Olá pessoal, comprei alguns componentes novos para melhorar o robô e resolvi fazer alguns tutoriais para mostrar o melhor funcionamento de cada componente.

O componente que irei mostrar hoje é o sensor infra vermelho sharp. Ele é nada mais e nada menos que um detector de obstáculos, com isso vou tentar "simular" um sensor de estacionamento.

Estou usando:

1 - Arduino Duemilanove
2 - Sensor Sharp
3 - Led
4 - Resistor 220
5 - Buzzer
6 - Botão Liga/Desliga
7 - Fio e Protoboard

Componentes


Primeiro vamos verificar como funciona o Sensor Sharp. Utilizaremos uma chave on/off para simular a marcha ré, o sensor e um led para mostrar a presença do obstáculo.

Segue o modelo do circuito.

Circuito

Em seguida faça o upload do código


/*
    **************************************
        Teste do Sensor Sharp
        José Maria DVD
        http://josemdvdf.blogspot.com.br/
    --------------------------------------

*/
int pinLed = 12;
int pinSensor = 0;
int pinChave = 2;
void setup(){
  pinMode(pinLed, OUTPUT);
  pinMode(pinSensor, INPUT);
  pinMode(pinChave, INPUT);
}
void loop() {
  int vlChave = digitalRead(pinChave);

  if(vlChave == HIGH)
  {
    int vlSensor = analogRead(pinSensor);
    int sleep = map(vlSensor, 0, 800, 250,0);
    digitalWrite(pinLed,HIGH);
    delay(sleep);
    digitalWrite(pinLed,LOW);
    delay(sleep);
  }
}


Veja o vídeo do funcionamento.


Próximo passo é inserir o buzzer para fazer aquele barulho conhecido :D


Buzzer

O buzzer possui 2 pinos, um negativo e outro de dados. Portanto basta ligar o pino negativo no terra e o positivo em uma porta digital do arduino. Veja na figura abaixo.

Circuito Completo

Em seguida faça o upload do seguinte código:


/*
    **************************************
        Simulação de um Sensor de Estacionamento
        José Maria DVD
        http://josemdvdf.blogspot.com.br/
    --------------------------------------

*/
int pinLed = 12;
int pinSensor = 0;
int pinChave = 2;
int pinBuzzer = 4;
void setup(){
  pinMode(pinLed, OUTPUT);
  pinMode(pinSensor, INPUT);
  pinMode(pinChave, INPUT);
  pinMode(pinBuzzer, OUTPUT);
}
void loop() {
  int vlChave = digitalRead(pinChave);

  if(vlChave == HIGH)
  {
    int vlSensor = analogRead(pinSensor);
    int sleep = map(vlSensor, 0, 800, 250, 1);
    digitalWrite(pinLed, HIGH);
    tone(pinBuzzer, 2637, sleep);
    delay(sleep);
    digitalWrite(pinLed,LOW);
    delay(sleep);
  }
}


Quem quiser saber um pouco mais como funciona a função tone.

Versão Final

Veja o vídeo de funcionamento.





4 comentários:

O QUE EU VI DA VIDA disse...

Olá José Maria, sou eletroeletronico e fã do Arduino. Parabéns pela sua página, boas idéias com arduino!
Rene (São Paulo)

José Maria Vasconcelos Dias disse...

Obrigado pelo apoio

O QUE EU VI DA VIDA disse...

Olá José Maria, vendo teu projeto, tive uma idéia aqui na fábrica.
Tenho uma prensa, e pretendo fazer esse projeto seu, para que quando a máquina feche para estampar, acenda o led e toque o buzzer. Inicialmente é isso que pretendo.
A seguir desejo colocar um LCD, para iniciar a contagem de peças estampadas, ainda continuando a acender um led e tocar o buzzer quando estampa. Pode me dar uma dica, tenho o Arduino Uno.

O QUE EU VI DA VIDA disse...

Se puder me responda em meu email:
reneaviles@hotmail.com

Att,
Rene.