Medição de distância sem fio usando sensor ultrassônico
Introdução:
O projeto de medição de distância é um projeto muito útil, que pode ser utilizado em automóveis para evitar acidentes, ou em qualquer sistema de monitoramento de distância na indústria, e também pode ser utilizado em indicadores de nível de líquidos, como tanques de combustível de aviões. Este sistema consiste em sensor ultrassônico com microcontrolador e display. O sensor, display e circuito estão conectados com fios. Portanto, se for necessário colocar o sensor e o display a alguma distância (digamos 2-3 metros ou mais), teremos que fazer uma conexão de fio longo. Mas em alguns sistemas é necessário monitorar/medir a distância de um local remoto. Como se o sensor estivesse conectado em um veículo robótico sem fio e precisamos saber a distância de qualquer objeto ao redor do veículo em um local remoto. Nesse caso é necessário transmitir a saída do sensor e exibi-la no LCD em local remoto. Isto é possível com a ajuda da tecnologia RF.
A abordagem nova e diferente neste projeto é monitorar a distância ou o nível de líquido do tanque de combustível sem fio a partir de um local remoto. O sensor é conectado ao tanque ou a qualquer objeto móvel, mas o valor do sensor (distância) pode ser monitorado em um local remoto, como em nossa mesa. O sistema de monitoramento sem fio é muito útil em muitos casos.
Descrição:
O projeto utiliza dois microcontroladores. Um medirá a distância usando o módulo sensor ultrassônico e transmitirá esse valor usando o módulo RF Tx e outro receberá esse valor usando o módulo RF Rx e o exibirá no LCD. O sensor ultrassônico funciona com base no princípio básico do radar. Ele gera pulsos contínuos e recebe sinais de eco se algum objeto estiver dentro do alcance. Os dados analógicos do sensor são convertidos para o formato digital usando ADC no microcontrolador e esses dados são transmitidos pelo módulo RF Tx (434Mhz) conectado à porta serial do microcontrolador. É necessário converter o valor do sensor em distância em centímetros. A fórmula para converter é
Distância de teste = (tempo de alto nível×velocidade do som (340M/S)) / 2
E também considere o ângulo de medição.
Então agora vamos começar a construir o projeto e para esse primeiro passo é coletar os componentes e equipamentos necessários:
Componentes e equipamentos necessários:
Sr. Não. Nome do componente Quantidade necessária
1 módulo RF Tx (434 MHz) 1
2 Módulo RF Rx (434 MHz) 1
3 Sensor ultrassônico 1
4 LCD 1
5 1 K Pote 1
6 resistor de 10 K 1
7 Placa de desenvolvimento Arduino pro mini 2
8 Bateria – 9V 2
9 Tábua de pão 2
10 fios de conexão
Diagrama de circuito:
Para construir o circuito na placa de ensaio conforme o diagrama de circuito acima, siga o procedimento passo a passo
Procedimento:
Seção do transmissor:
Passo 1: conecte o 2º pino do módulo Tx ao 12º pino da placa Arduino, o 1º pino ao terra e o 3º pino ao Vcc.
Passo 2: conecte o pino 1 do módulo do sensor ultrassônico ao Vcc e o pino 4 ao terra. Conecte o pino de gatilho ao pino 2 do Arduino e o pino de eco ao pino 4 do Arduino.
Seção do receptor:
Passo 1: conecte o 1º pino do módulo Rx ao terra e o 4º pino ao Vcc
Passo 2: conecte o segundo pino do módulo receptor ao 11º pino do Arduino
Etapa 3: conecte o segundo pino do Arduino ao LCD Enpin (6), o terceiro pino ao Rspin (4) e 4,5,6,7 pinos ao LCD D5, D6, D7, D8pins, respectivamente.
Passo 4: conecte o pino RW (5) do LCD ao terra.
Passo 5: conecte os pinos 1 e 16 do LCD ao terra e 2 e 15 ao Vcc. Conecte o potenciômetro de 1 K ao terceiro pino conforme mostrado para variar o brilho do LCD
Trabalhando:
1. Neste projeto estamos medindo a distância usando o módulo sensor ultrassônico. O valor do sensor está na forma analógica. O valor do sensor é convertido em digital usando microcontrolador
2. O valor digital é aplicado ao módulo Tx de 434 MHz para enviar como sinal ASK.
3. O LCD que está conectado ao microcontrolador que exibe o valor recebido pelo módulo 434MhzRx.
4. Neste projeto a transmissão de dados é baseada nas portas seriais do microcontrolador.
5. Quando um objeto na frente do módulo ultrassônico as ondas sônicas refletem, essas ondas são chamadas de ondas de eco. As ondas de eco são recebidas pelo receptor sônico e produzem saída analógica.
6. A saída do sensor é convertida em escala cm para medir a distância e transmitida ao receptor para exibição no LCD
Fotos:
Código fonte do projeto
Código fonte do projeto
constinttrigPin = 2;constintechoPin = 4; char Distance(4); void setup { Serial.begin(9600); vw_setup(2000); } void loop { int duration, inches, cm; pinMode(trigPin, OUTPUT);digitalWrite(trigPin, LOW);delayMicroseconds(2);digitalWrite(trigPin, HIGH);delayMicroseconds(10);digitalWrite(trigPin, LOW); pinMode(echoPin, INPUT);duration = pulseIn(echoPin, HIGH); // convert the time into a distance //inches = microsecondsToInches(duration); cm = microsecondsToCentimeters(duration); Serial.print(inches);Serial.print("in, ");Serial.print(cm);Serial.print("cm");Serial.println ; delay(100); itoa(cm,Distance,10); digitalWrite(13, true); // Turn on a light to show transmittingvw_send((uint8_t *)Distance, strlen(Distance));vw_wait_tx ; // Wait until the whole message is gonedigitalWrite(13, false); // Turn off a light after transmissiondelay(200); } longmicrosecondsToCentimeters(long microseconds){ return microseconds / 29 / 2;} Receiver:#include
LiquidCrystallcd(2, 3, 4, 5, 6, 7); #include
// LED'sintledPin = 13; // Sensors int Data; // RF Transmission containerchar Distance(4); void setup {Serial.begin(9600); lcd.begin(16, 2);lcd.print("ENGINEERS GARAGE");lcd.setCursor(0, 1); // sets the digital pin as outputpinMode(ledPin, OUTPUT); pinMode(9, OUTPUT);pinMode(8, OUTPUT); // VirtualWire // Initialise the IO and ISR // Required for DR3100vw_set_ptt_inverted(true); // Bits per secvw_setup(2000); // Start the receiver PLL runningvw_rx_start ; } // END void setup void loop {uint8_tbuf(VW_MAX_MESSAGE_LEN);uint8_tbuflen = VW_MAX_MESSAGE_LEN; // Non-blockingif (vw_get_message(buf, &buflen)) {inti; // Turn on a light to show received good message digitalWrite(13, true); // Message with a good checksum received, dump it. for (i = 0; i
{ // Fill Sensor1CharMsg Char array with corresponding // chars from buffer. Distance(i) = char(buf(i)); } Distance(buflen) = ''; // Convert Sensor1CharMsg Char array to integer Data = atoi(Distance); // DEBUG Serial.print("distance = ");Serial.print(Data);Serial.println(" cm "); lcd.setCursor(0, 2);lcd.print("Distance = ");lcd.print(Data); // change the analog out value:lcd.print("cm "); }}
//Program to
###
Diagramas de circuito
RF18 |
|
Perguntas relacionadas a este artigo?
Pergunte e discuta nos fóruns EDAboard.com e Electro-Tech-Online.com.
Nos diga o que você acha!! Cancelar resposta
Você precisa estar logado para postar um comentário.