Pessoal boa tarde!
Estou precisando de uma ajuda, preciso mudar o código para leitura de distancia com ultrassom HC 2R04 passando ele do retorno da leitura em polegada e centímetro que é o que vem no código para milímetro. Preciso ler uma distancia de até 150 mm ( distancia do sensor ao objeto da leitura) e a resposta apresentada seja 1500 mm. Podem me ajudar?
//Programa : Medidor de distancia com HC-SR04
#include <Ultrasonic.h> //Carrega a biblioteca Ultrasonic
#include <LiquidCrystal.h> //Carrega a biblioteca LCD
#define PINO_TRIGGER 13 //Define o pino do Arduino a ser utilizado com o pino Trigger do sensor
#define PINO_ECHO 10 //Define o pino do Arduino a ser utilizado com o pino Echo do sensor
Ultrasonic ultrasonic(PINO_TRIGGER, PINO_ECHO); //Inicializa o sensor ultrasonico
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Define os pinos que serão ligados ao LCD
void setup()
{
Serial.begin(9600); //Inicializa a serial
lcd.begin(16,2); //Inicializa LCD
lcd.clear(); //Limpa o LCD
}
void loop()
{
float cmMsec, inMsec;
long microsec = ultrasonic.timing(); //Le os dados do sensor, com o tempo de retorno do sinal
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); //Calcula a distancia em centimetros
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN); //Calcula a distancia em polegadas
//Apresenta os dados, em centimetros, no LCD e na Serial
lcd.setCursor(0,0);
lcd.print("Cent.: ");
lcd.print(" ");
lcd.setCursor(7,0);
lcd.print(cmMsec);
Serial.print("Cent: ");
Serial.print(cmMsec);
//Apresenta os dados, em polegadas, no LCD e na Serial
lcd.setCursor(0,1);
lcd.print("Pol. : ");
lcd.print(" ");
lcd.setCursor(7,1);
lcd.print(inMsec);
Serial.print(", Pol. : ");
Serial.println(inMsec);
delay(1000);
}
Tags:
Eu usei esse:
/*
HC-SR04 Ping distance sensor]
VCC to arduino 5v GND to arduino GND
Echo to Arduino pin 13 Trig to Arduino pin 12
More info at: http://goo.gl/kJ8Gl
*/
#define trigPin 12
#define echoPin 13
void setup() {
Serial.begin (9600); //inicia a porta serial
pinMode(trigPin, OUTPUT); // define o pino 12 como saida (envia)
pinMode(echoPin, INPUT); // define o pino 13 como entrada (recebe)
}
void loop()
{
int duration, distance;
digitalWrite(trigPin, HIGH); //seta o pino 12 com pulso alto "HIGH" ou ligado ou ainda 1
delayMicroseconds(1000); // delay de 1 milissegundos
digitalWrite(trigPin, LOW); //seta o pino 12 com um pulso baixo "LOW" ou desligado ou ainda 0
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 200 || distance <= 0){
Serial.println("Fora de Alcance do sensor");
}
else {
Serial.print(distance);
Serial.println(" cm");
}
delay(500);
}
Valeu meu irmão mas ok está pegando realmente é como disse antes introduzir no código essa comparação ou seja ele vai ler um valor de 0 a 150mmm e apresentar na tela 0 a 1500 seria uma medição indireta. Mas valeu pela ajuda vou continuar tendo aqui. se encontrar algo me fale.
Obrigado!
//Programa : Medidor de distancia com HC-SR04
#include <Ultrasonic.h> //Carrega a biblioteca Ultrasonic
#include <LiquidCrystal.h> //Carrega a biblioteca LCD
#define PINO_TRIGGER 13 //Define o pino do Arduino a ser utilizado com o pino Trigger do sensor
#define PINO_ECHO 10 //Define o pino do Arduino a ser utilizado com o pino Echo do sensor
Ultrasonic ultrasonic(PINO_TRIGGER, PINO_ECHO); //Inicializa o sensor ultrasonico
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Define os pinos que serão ligados ao LCD
void setup()
{
Serial.begin(9600); //Inicializa a serial
lcd.begin(16,2); //Inicializa LCD
lcd.clear(); //Limpa o LCD
}
void loop()
{
float cmMsec, inMsec, MMsec;
long microsec = ultrasonic.timing(); //Le os dados do sensor, com o tempo de retorno do sinal
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); //Calcula a distancia em centimetros
MMsec = cmMsec * 10; //multiplica o valro de centrimetros por 10, neste caso voce tem milimetros
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN); //Calcula a distancia em polegadas
//Apresenta os dados, em Milimetros, no LCD e na Serial
lcd.setCursor(0,0);
lcd.print("Milim.: ");
lcd.print(" ");
lcd.setCursor(7,0);
lcd.print(MMsec);
Serial.print("Milim: ");
Serial.print(MMsec);
//Apresenta os dados, em polegadas, no LCD e na Serial
lcd.setCursor(0,1);
lcd.print("Pol. : ");
lcd.print(" ");
lcd.setCursor(7,1);
lcd.print(inMsec);
Serial.print(", Pol. : ");
Serial.println(inMsec);
delay(1000);
}
Valeu meu irmão, vou testar o código que você fez, assim que testar te dou um retorno. Se precisar de algo e estiver ao meu alcance é só falar.
Obrigado!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por