08-12-2015, 14:54
Czy może ktoś mi powiedzieć dlaczego za pomocą tego programu nie mogę zmierzyć odległości powyżej 1m ?
Pokazuje 99cm a powyżej pokazuje w cm ale co 10cm , czyli jak mam np. 120cm odległość to pokaże 12cm. Gdzie jest błąd w programie ?
Pokazuje 99cm a powyżej pokazuje w cm ale co 10cm , czyli jak mam np. 120cm odległość to pokaże 12cm. Gdzie jest błąd w programie ?
Kod:
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int TRIG = 7;
int ECHO = 8;
int response = 0, distance = 0, level = 0;
void setup()
{
lcd.begin(16, 2);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
}
void loop()
{
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
response = pulseIn(ECHO, HIGH);
distance = response / 58;
level = distance / 2;
lcd.setCursor(0, 0);
lcd.print("DISTANCE: ");
lcd.setCursor(10, 0);
{
lcd.print(distance);
lcd.setCursor(12, 0);
lcd.print(" cm ");
}
lcd.setCursor(0, 1);
lcd.print(" ");
delay(10 * distance);
}