Arduino + Sensor de Estacionamento
Autor: José Maria Vasconcelos Dias | Publicado: 2012-06-25T17:54:00-04:00



<!--
google_ad_client = "ca-pub-5050320647282598";
/* Bloco no início */
google_ad_slot = "9608639678";
google_ad_width = 336;
google_ad_height = 280;
//-->





Olá pessoal, comprei alguns componentes novos para melhorar o robô&nbsp;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



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

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

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


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:



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

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

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


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



Versão Final


Veja o vídeo de funcionamento.















<!--
google_ad_client = "ca-pub-5050320647282598";
/* Retângulo grande 336 x 280 */
google_ad_slot = "3694939704";
google_ad_width = 336;
google_ad_height = 280;
//-->









  window.___gcfg = {lang: 'pt-BR'};

  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();