buen día compañeros tengo una duda respecto a este sensor, lo estoy utilizando con un arduino DUE y deseo medir la distancia de un objeto dentro de un tubo PVC de 1.5 pulgadas de diámetro, el sensor mide distancias afuera del tubo pero al colocar el sensor como se muestra en la foto este no mide distancias =(, para utilizar este sensor tuve que colocar un convertidor de nivel lógico, este es el código que estoy utilizando.
#include <UTFT.h>
#include <Keypad.h>
#include <stdlib.h>
//////////////////TFT/////////////////////
//Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];
UTFT myGLCD(ILI9325C,51,50,49,48);
////////////////KEYPAD/////////////////////
const byte ROWS = 4;
const byte COLS = 4;
byte rowPins[ROWS]={40,41,42,43};
byte colPins[COLS]={44,45,46,47};
char keys[ROWS][COLS]={
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
Keypad keypad=Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
int ledPin=10;
char tecla;
char numero[20];
char indice=0;
int j=0;
int b=50;
/////////////SENSOR ULTRASÓNICO///////////
int tiempo=0;
int distancia=0;
int ECHO=8;
int TRIGGER=9;
void setup()
{
myGLCD.InitLCD();
myGLCD.clrScr();
pinMode(ledPin,OUTPUT);
}
void loop()
{
////////SENSOR ULTRASÓNICO///////
pinMode(TRIGGER,OUTPUT);
digitalWrite(TRIGGER,LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER,HIGH);
delayMicroseconds(5);
digitalWrite(TRIGGER,LOW);
pinMode(ECHO,INPUT);
tiempo = pulseIn(ECHO,HIGH);
distancia=(tiempo/58);
///////KEYPAD/////////
tecla=keypad.getKey();
if(tecla !=NO_KEY){
numero[indice]=tecla;
indice++;
}
if (tecla=='#'){
myGLCD.clrScr();
b=atoi(numero);
indice=0;
myGLCD.setColor(255, 0, 0);
myGLCD.setBackColor(0, 0, 0);
myGLCD.setFont(BigFont);
myGLCD.printNumI(b, CENTER, 16);
}
if(distancia > b){
digitalWrite(ledPin,HIGH);
}
else{digitalWrite(ledPin,LOW);}
}