Como medir distância com o Arduino
Dois sensores para medição de distância com o Arduino são extremamente populares: o sensor de proximidade infravermelho eo telêmetro ultra-sônica. Eles funcionam de maneira similar e atingir praticamente a mesma coisa, mas é importante escolher o sensor certa para o ambiente em que está.
Um sensor de proximidade infravermelha tem uma fonte de luz e um sensor. A fonte de luz refletida luz infravermelha em objetos e volta para o sensor, e o tempo que leva a luz para voltar é medida para indicar o quão longe um objeto está.
Um telêmetro ultra-som dispara ondas sonoras de alta frequência e ouve um eco quando atingem uma superfície sólida. Medindo o tempo que leva um sinal para saltar para trás, o telêmetro ultra-som pode determinar a distância percorrida.
sensores de proximidade infravermelhos não são tão precisos e têm um alcance muito menor do que Telémetros de ultra-som.
Considere o seguinte durante o planejamento:
Complexidade: Ambos os sensores são projetados para ser extremamente fácil de integrar com projetos Arduino. No mundo real, eles são usados para aplicações eletrônicas similares, tais como medidores de proximidade na parte de trás de carros que apitam quando você se aproxima do meio-fio. Mais uma vez, o principal complexidade está abrigando-los de forma eficaz.
Os sensores de proximidade de infravermelhos, tais como aqueles feitos por Forma têm orifícios dos parafusos úteis no lado de fora do corpo do sensor. Maxbotix faz Telémetros de ultra-sons que não têm estas montagens, mas a sua forma cilíndrica torna simples de montar em uma superfície através da perfuração de um buraco através.
Custo: sensores de proximidade infravermelhos custar cerca de $ 15 (# 163-10) e têm um alcance de até cerca de 59 polegadas ou menos. Ultra-sônicas Telémetros de ter uma gama muito maior possível e precisão, mas igualmente um grande preço, custando entre US $ 27 (# 163-18) para um sensor que pode ler até 254 polegadas (645 cm) e $ 100 (# 163-65) para um modelo mais resistente às intempéries que pode ler até 301 polegadas (765 cm).
Onde: Uma aplicação comum para estes sensores está monitorando a presença de uma pessoa ou um objeto em um espaço particular, especialmente quando uma almofada de pressão seria muito óbvias ou fáceis de evitar, ou quando um sensor PIR mediria muito ampla. Usando um sensor de proximidade permite que você saiba onde alguém está em uma linha reta desde que o sensor, tornando-se uma ferramenta muito útil.
sensores de proximidade IR estão bem em ambientes escuros, mas executar terrivelmente sob luz solar direta. O ultra-som MaxBotix localizador de intervalo é um dos sensores mais fiáveis. Ao usar Telémetros de ultra-som, você também pode escolher como largas ou estreitas um feixe quiser. Um sensor grande, em forma de lágrima é perfeito para a detecção de grandes objetos em movimento em uma direção geral, enquanto feixes estreitos são grandes para medição de precisão.
Neste exemplo, você aprende como medir distâncias precisas usando um MaxBotix LV-EZ0. O EZ0, EZ1, EZ2, EZ3 e EZ4 todos funcionam da mesma maneira, mas cada um tem um feixe ligeiramente mais estreito, para escolher o mais adequado para o seu projeto.
O telêmetro precisa de algum conjunto menor. Para usar o telêmetro em seu circuito, você nem precisa de solda no cabeçalho pinos para usá-lo em uma placa de ensaio, ou solda comprimentos de fio.
Você tem três maneiras de conectar o telêmetro: usando analógico, largura de pulso, ou comunicação serial. Neste exemplo, você aprende como medir a largura de pulso e convertê-lo em distância. A saída analógica pode ser lido em linha reta em seus pinos de entrada analógicos, mas fornecem resultados menos precisos do que a largura de pulso. Este exemplo não abrange a comunicação serial.
Você precisa:
Um Arduino Uno
Um localizador LV-EZ0 Ultrasonic Gama
fios de salto
Completar o circuito a partir dos diagramas de layout e de circuito. As conexões para o telêmetro estão claramente marcados na parte inferior do PCB. As conexões 5V e GND fornecer energia para o sensor e deve ser conectado às fontes de 5V e GND em seu Arduino.
A ligação PW é o sinal de largura de pulso que será lido pelo pino 7 no seu Arduino. Certifique-se de que o seu sensor de distância é afixada em algum tipo de base de apontado na direção que você deseja medir.
Você pode encontrar o código MaxSonar por Bruce Allen no parque infantil Arduino, junto com algumas notas e funções adicionais. Criar um novo esboço, copie ou digite o código para ele, e guardá-lo com um nome memorável, tal como myMaxSonar.
. // Sinta-se livre para usar este código # 8232 - // Por favor, seja respeitoso, reconhecendo o autor no código se você usar ou modificá-lo # 8232 - // Autor:. Bruce Allen # 8232 - // data: 23/07 / 09 # 8232- # 8232 - // digital pino 7 para leitura no largura de pulso do dispositivo MaxSonar # 8232 -. // esta variável é uma constante, porque o pino não vai mudar ao longo da execução deste código.const int pwPin = 7- # 8232 - // variáveis necessárias para armazenar valoreslongo pulso, polegadas, cm-vazio setup () {// Isso abre uma conexão serial para fotografar os resultados de volta para o PC consoleSerial.begin (9600) -} void loop () {pinMode (pwPin, ENTRADA) - // Usado para ler no pulso que está sendo enviado pela representação MaxSonar device.//Pulse Largura com um fator de escala de 147 nós por Inch.pulse = pulseIn(PwPin, ALTO) - // 147uS per inchinches = pulso / 147 - // mudança polegadas para centimetrescm = polegadas * 2.54-Serial.print (polegadas) -Serial.print ( "in") -Serial.print (cm) -Serial.print ( "cm") - Serial.println () -demora(500) -}
Pressione o botão Compilar para verificar o seu código. O compilador destaca quaisquer erros gramaticais, transformando-vermelho quando eles são descobertos. Se o esboço compila corretamente, clique em Upload para enviar o desenho para sua placa. Quando é feito o upload, abra o monitor serial e você deve ver a distância medida em polegadas e centímetros. Se o valor é flutuante, tente usar um objeto com uma superfície maior.
Este esboço permite medir com precisão a distância em linha reta. Teste isso com uma fita métrica e fazer ajustes ao código se você encontrar discrepâncias.