18-10-2020, 14:32
witam mam mały problem i nie wiem jak go rozwiązać Ultradźwiękowy czujnik odległości HC-SR04 2-200cm napisałem do niego kod i chciałem zrobić tak że będzie skala w procentach czujnik ma mierzyć zakres od zera do 50 cm więc zamiast czas_impulsu/58 zrobiłem 29 teraz jeden centymetr to tak jakby 2centymetry więc przy rzeczywistych 50 centymetrach na wyświetlaczu będzie wartość 100 i teraz mam problem bo chce aby wartość była odwrócona czyli zaczynała się od 100% i czym dalej odległość tym wartość mniejsza ma ktoś jakiś pomysł jak to zrobić
Kod:
#include <LiquidCrystal_I2C.h>
#include <Timers.h>
#define pin_nadajnik 9 //Definicja pinu, do którego podłączamy nadajnik (pin TRIG)
#define pin_odbiornik 8
int odleglosc1; //Zmienna przechowująca odległość
long czas_impulsu = 0;
Timer odleglosc;
void setup() {
Serial.begin (9600);
pinMode(pin_nadajnik, OUTPUT);
pinMode(pin_odbiornik, INPUT);
odleglosc.begin(1000);
Serial.begin(9600);
}
void loop() {
if (odleglosc.available()) {
digitalWrite(pin_nadajnik, HIGH); //Wystawienie stanu wysokiego na pin nadajnika
digitalWrite(pin_nadajnik, LOW); //Wystawienie stanu niskiego na pin nadajnika
czas_impulsu = pulseIn(pin_odbiornik, HIGH); //Czas trwania impulsu na pinie Echo
odleglosc1 = czas_impulsu/29; //Wyznaczenie odległości w cm
odleglosc1
Serial.println(odleglosc1);
odleglosc.restart();
}
}