Sensor de distância no Arduíno

Ontem fiz a minha primeira aplicação com os sensores do Arduíno pois já estava incomodado por ter ele lá parado na estante há uns 6 meses me olhando sem ser usado. De início desejo aprender a ler os esquemas de eletrônica e montar meus apetrechos para o barco e para algum projeto do mestrado (que depois descobri não valorizar produtos). Comecei pelo sensor ultra-som de distância HCSR04.

O sensor é aquele com dois copos metálicos, um emite o ultrassom e o outro recebe. Então, ele pega quanto tempo o som demorou para voltar e calcula a distância. Simples, né?

Preço: Aqui no Brasil, R$ 20,oo a 50,oo. 
No ebay $ 3USD com entrega.
Precisão: 3mm
Distância máxima: 45/50cm
Datasheet do sensor HCSR04

Erros:
Eu já tinha testado o Arduino antes só com um código de piscar os leds com um programinha simpes sem problema algum. Mas ontem quando eu compilava qualquer código, mostrava 0 erros de código mas sempre voltava a mensagem:

avrdude: stk500_getsync(): not in sync: resp=0x30
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

Tinha um monte de besteiras nos fóruns, falando pra dar reset repetidamente, tirar e colocar o cabo usb rapidamente (o que acho pode queimar ou perder a ROM) mas no final das contas depois de 1 hora aprendi que é só mudar a porta COM. A minha estava COM3 e ao mudar para a COM5 funcionou, compilou e instantaneamente já começou a receber as informações na janela de serial.

Primeira pegadinha
O programa do Arduino já vem com uma biblioteca e código pronto para um sensor de distância, só que não é este que eu tenho. Pelos tutoriais, o outro sensor só tem três pinos: alimentação 5V, GND (neutro), e o que transmite os dados. Esse meu separa o dado em entrada e saida, então tem 4 pinos. Então, tem que tomar cuidado para não montar tudo no automático sem prestar muita atenção e fazer qualquer coisa que não funcione. Tive que dar uma pesquisada no sensor específico e por sorte tinha bastante documentação, com o porém de a maioria ser de mais alto nível, sem estas minhas questões de iniciante.

Sensor montado com o arduino e breadboard

Conjunto em ação, mas esta configuração não foi a que funcionou.

Instalação de biblioteca
Sempre que um código chama um “qualquerCoisa.h” ele está chamando uma library. Só que este sensor não tinha esta library instalada no console do Arduino e demorei mais uma hora até ter calma de ler a documentação e ver o que deveria fazer. Aqui vai um passo a passo:

  1. Baixar a libray do sensor ou qualquer outro hardware que voce espetar, elas tem dois arquivos pelo menos um “qualquerCoisa.h” e um “qualquerCoisa.ccp”;
  2. Copiar para o diretório do programa do Arduino, na pasta de libraries criando uma pasta para ele.
  3. Reiniciar o programa, com isso já vai aparecer no menu e quando voce fizer a chamada, não vai mais receber o erro de biblioteca não localizada.

Documentação oficial
http://arduino.cc/it/Reference/Libraries

Conclusão:
Tudo funcionou como o esperado, fiz o esquema mais simples possível. Seguindo e lendo os tutorais oficiais e o datasheet não tem erro. Sempre vão surgir dúvidas, mas só se aprende fazendo e com a internet fica tudo muito mais fácil. Meus próximos passos serão colocar um display com as informações do sensor e um outro monitor de temperatura jogando os dados na internet.

Sensor de distância sendo testado

Agradecimentos
Bom, não poderia deixar de citar e agradecer as pessoas que conheci e fiz amizade no encontro CNC de Campinas e que estamos mantendo contato. O Wazen me emprestou um monte de coisas (entre elas o RFID) e está sempre mostrando coisas novas e incentivando pra eu fazer alguma coisa nova e o José Maia que me mandou os tutorais de protoboard e esquemas de eletrônica quando eu nem sabia por onde começar. Valeu!