Приемная сторона ультразвукового датчика
Я работаю над проектом, связанным с ультразвуковым датчиком 40 кГц, который будет использоваться для точного измерения расстояния. У меня есть отдельный передатчик и приемник. Я хочу получить время между моментом, когда мой передатчик передает волны, и моментом, когда мой приемник их получает. Однако я не смог заставить это работать. Может ли кто-нибудь из вас дать мне код, который поможет мне передавать и принимать волны 40 кГц и получать время между ними, чтобы я мог использовать его для вычисления расстояния? Заранее спасибо. Я был бы очень признателен!
@Jenifer Ricalde, 👍1
Обсуждение2 ответа
У меня нет «кода», но вы можете использовать таймер, установленный на 40 кГц, и посылать нужные вам импульсы. .
Если больше ничего делать не нужно (и в будущем это не потребуется), можно использовать функцию задержки.
Также проверьте функцию pulseIn из Arduino, вы можете использовать эту удобную функцию для проверки результата.
Это самый простой ультразвуковой импульс и код приема. Я написал его для работы с модулями HC-SR04; надеюсь, он будет работать и для вас, поскольку они тоже звучат на 40 кГц.
Основная функциональность исходит от функции pulseIn().
#define TRIGPIN 9
#define ECHOPIN 10
void setup() {
Serial.begin(9600);
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
}
void loop() {
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
uint16_t duration = pulseIn(ECHOPIN, HIGH, 4000);
int distance = (duration*.0343)/2;
Serial.println(distance);
}
Обратите внимание, что вам нужно будет настроить 4000 (мкс) на любое желаемое вами время ожидания (или полностью выдать, если оно вам не нужно).
Здравствуйте, сэр! К сожалению, я не использую коммерчески доступные ультразвуковые датчики, такие как HC-SR04. У меня есть отдельные передатчик и приёмник, сэр., @Jenifer Ricalde
@JeniferRicalde Хорошо, можете дать ссылку на них? Код будет работать, если предположить, что передатчик и приёмник — это просто цифровые выходы (т.е. для передачи звука на передатчик подается сигнал HIGH, а приёмник выдаёт сигнал HIGH при приёме)., @Joe Iddon
Сэр, ничего, если я спрошу ваш адрес электронной почты? Я хочу отправить код. Я не могу прикрепить его здесь., @Jenifer Ricalde
Почему бы и нет? Просто вставьте в вопрос, как я в своём ответе, файл .ino. Или создайте ссылку на https://pastebin.com/, @Joe Iddon
Я посылаю 8 импульсов волн частотой 40 кГц, а затем приемник измеряет пик напряжения принятой волны, чтобы определить временной интервал. Однако я не совсем уверен, что мой код верный., @Jenifer Ricalde
вот ссылка: https://pastebin.com/4chsLQ6R, @Jenifer Ricalde
Я использовал код мистера Керри Вонга., @Jenifer Ricalde
@JeniferRicalde Извините, но поскольку вы только что скопировали [чей-то код] (http://www.kerrywong.com/2011/01/22/a-sensitive-diy-ultrasonic-range-sensor/), отладка без возможности проверить всё на практике (у меня нет такой настройки) особенно сложна. Однако есть два момента: вы можете использовать функцию delay() для задержки в миллисекундах и delayMicroseconds() для микросекунд — нет необходимости писать собственную функцию delayMilliseconds(), поскольку delay() уже работает. Во-вторых, я рекомендую использовать библиотеку Serial для вывода показаний с приёмника, что облегчит отладку., @Joe Iddon
- Какова работа pulseIn?
- Сколько датчиков может поддерживать один модуль Arduino?
- Как получить данные о весе с датчиков стеклянных электронных весов для ванной?
- Получение BPM из данного кода
- Датчик Arduino Uno DHT11 Не удалось прочитать данные с датчика DHT
- Как подключить более 10 датчиков к Arduino uno r3
- Чтение датчика давления от 4 до 20 мА с использованием uno
- Как использовать два ультразвуковых датчика для управления двигателем 5 Вольт?
Какое именно у вас оборудование? Большинство известных мне коммерческих американских датчиков имеют собственные встроенные измерительные системы., @mystery
@mystery что насчет [
HC-SR04](https://www.sparkfun.com/products/13959)?, @Joe IddonЯ это знаю довольно хорошо. Должно подойти автору проекта, например, код https://github.com/sparkfun/HC-SR04_UltrasonicSensor/blob/master/Firmware/HC-SR04_UltrasonicSensorExample/HC-SR04_UltrasonicSensorExample.ino, @mystery
Я использую Arduino Uno и отдельные ультразвуковой передатчик и приёмник. Я не использую какие-либо коммерчески доступные ультразвуковые датчики., @Jenifer Ricalde