Com esta programaçao o HCSRO4 me da leituras de distancia. Porém Criei uma função if que não age da maneira que deveria e esta na PARTE "//NÃO FUNCIONAL" dentro da programação. A criei para ler o nível de um tanque de maneira %, porém precisaria de uma medição de distancia contrária.
Gostaria apenas de ajuda para que a função if funcionasse me dando os valores observados na programação para assim eu dar continuidade e converter em valor %.
//INICIO FUNCIONANDO
#include <Ultrasonic.h>
#define echoPin 13
#define trigPin 12
int I;
Ultrasonic ultrasonic(12,13);
void setup()
{
Serial.begin(9600);
pinMode(echoPin, INPUT); // define o pino 13 como entrada (recebe)
pinMode(trigPin, OUTPUT); // define o pino 12 como saida (envia)
}
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
int distancia = (ultrasonic.Ranging(CM));
Serial.print("Distancia em CM: ");
Serial.println(distancia);
delay(1000); //espera 1 segundo para fazer a leitura novamente
//NÃO FUncional
//Nesta parte tento inverter os resultados onde, em um tanque pequeno de20cm.
//Quando tenho a leitura de 20cm de distancia uma diferente variavel(Neste caso I) me mosra o valor 4cm, quando 19cm esta mesma variavel me mostra o valor 5cm.
// E assim por diante
if (distancia = 20){
I = 4;
}
if (distancia = 19) {
I = 5;
}
if (distancia = 18) {
I = 6;
}
if (distancia = 17) {
I = 7;
}
if (distancia =16) {
I = 8;
}
if (distancia = 15) {
I = 9;
}
if (distancia = 14) {
I = 10;
}
if (distancia =13) {
I = 11;
}
if (distancia = 12) {
I = 12;
}
if (distancia =11) {
I = 13;
}
if (distancia = 10) {
I = 14;
}
if (distancia = 9) {
I = 15;
}
if (distancia = 8 ) {
I = 16;
}
if (distancia = 7) {
I = 17;
}
if (distancia = 6){
I = 18;
}
if (distancia = 5) {
I = 19;
}
if (distancia = 4) {
I = 20;
}
Serial.print("Distancia invertida");
Serial.println(I);
delay(1000); //espera 1 segundo para fazer a leitura novamente
}
A função não está me mostrando os valores equivalentes I corretos em relação a distancia. Gostaria de saber o porque.
OBS: SOU LEIGO NO ASSUNTO NEM MESMO SOU PROGRAMADOR, SE HOUVEREM MANEIRAS MAIS FÁCEIS DE FAZER ISSO AGRADECERIA A AJUDA. Uma ótima tarde para todos!