Здравствуйте! Как можно получить и вывести данные без обработки (без использования pulseIn). Я это пробовал это сделать через analogRead(), но он выводит 0 (значит, то что получает пин это 0 и 1). В правильном направлении я мыслю? Что можно ещё использовать для этого?
Заранее спасибо!
int Trig=4;
int Echo=A0;
int r=A1;
float duration;
void setup() {
Serial.begin (9600);
duration=0;
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
}
void loop() {
digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(5);
digitalWrite(Trig, LOW);
int read=analogRead(r);
Serial.println(read);
duration= pulseIn(Echo, HIGH);
Serial.println(duration);
delay(500);
}
Если Вы хотите обойтись без pulseIn - начните с того что загляните в исходник этой функции и попытайтесь понять, как она работает.
Вкратце - Вам нужно замерить время, проходящее между отправкой сигнала и получения ответа на пин приемника.
Мне интересно как работает сам ультразвуковой дальномер, то есть как на нем формируется сигнал, не как он уже обработан, а исходный, поэтому я и пытался через analogRead что-то там найти. Поэтому я и хочу это попробовать вывести через двоичный сигнал
Вам доступна только ИНТЕРФЕЙСНАЯ часть датчика ! Через ИНТЕРФЕЙС вы можете только попросить начать измерение и получить результат …
А что бы понять как он реально работает - надо лезть внутрь.
“Чонить” прочитать я смог, у меня задание такое вытащить “сырые”, то есть без pulseIn. Я найти такие сайты не смог. Поэтому и братился “можете подсказать”.
pulseIn - это не обработка, а измерение.
Вспоминайте физику: скорость звука при нормальных условиях известна. Измерение расстояния основано на том, что посылаем звуковой сигнал и ждем, когда этот сигнал отразится от препятствия и вернется к нам. Замеряем время, делим на скорость звука и получаем расстояние.
Расстояние нельзя прочитать, его нужно измерять.
При том в данном случае измерять нужно время, а не напряжение, поэтому analogRead никак не подходит.
Если Вы не хотите напрямую использовать pulseIn, то Вам придется написать самому его прямой аналог, который делает то же самое.