Projeto com Arduino - Radar com Informações via LCD (Programação)
Hoje apresento o primeiro projeto do blog. Se trata de um radar improvisado em um sensor ultrassônico com informações de distância via LCD. Esse projeto surge como "inauguração" dos trabalhos de programação voltadas às aplicações de automação predial e industrial.
Modulação
Radar Ultrassônico
- O sensor emite sinais ultrassônicos que refletem quando atinge um objeto próximo;
- Quando o sinal é refletido, ele volta para o sensor, só que para a parte de recepção;
- Quando o sinal é recebido de volta, ocorre o processamento desse sinal em função do tempo que ele levou para ir e voltar após a emissão;
- Um sinal, considerado por mim, dono do blog, como portadora, é recebido pelo pino Trig e que é modulado e emitido para o Arduino pelo pino Echo.
Desafio
Material
1 - Arduino Uno2 - Potenciômetro3 - Resistor de 330Ω4 - LCD 16x25 - Sensor HC-SR046 - Motor de Passo7 - Um protoboard grande6 - Um protoboard pequeno
Programa
#include <Servo.h>.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Define os pontos RS, E, D4, D5, D6, D7 referentes as entradas e saídas do LCD.
const int trigPin = 9; // Define o pino 9 como Trig
const int echoPin = 8; // Define o pino 8 como Echo
long tempo;
int distancia;
Servo servo;
void setup() {
lcd.begin(16, 2); // Define as dimensões do LCD
pinMode(trigPin, OUTPUT); // Define o pino 9 como saída para Trig do HC-SR04
pinMode(echoPin, INPUT); // Define o pino 8 como entrada para Echo do HC-SR04
Serial.begin(9600);
servo.attach(7); // Define que as instruções de movimento do servo motor saírão do pino 7
}
void loop() {
for(int i=15;i<=165;i++){
servo.write(i);
delay(300);
distancia = calculoDistancia();
lcd.clear();
lcd.setCursor(0, 0); // Define que a distância aparecerá na linha 0 e coluna 0
lcd.print("Distancia: ");
lcd.print(distancia);
}
for(int i=165;i>15;i--){
servo.write(i);
delay(300);
distancia = calculoDistancia();
lcd.clear();
lcd.setCursor(0, 1); // Define que a distância aparecerá na linha 1 e coluna 0
lcd.print("Distancia: ");
lcd.print(distancia);
}
}
int calculoDistancia(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
tempo = pulseIn(echoPin, HIGH);
distancia= tempo*0.034/2;
return distancia;
}








Comentários
Postar um comentário