Ультразвуковой приемник и ультразвуковой передатчик

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Добрый день!

Для моего проекта необходим УЗ излучатель, который будет прикреплен в одном месте, а также УЗ приемник, который будет висеть в другом месте, но в зоне действия УЗ излучателя. 

При попадании ультразвука на УЗ приемник(обзовем его микрофоном) быдет выполняться какое-либо действие.

Существуют ли такие два отдельных устройства? Ну или можно ли УЗ-дальномеры переделать так, чтобы один дальномер только передавал, а второй только принимал? Желательно, организовать это на программном уровне :))

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

о как, могу предложить вариант удобней.. с одной стороны ставим свинцовый ящик с задвижкой, внутрь ящика ложим сто нибуть страшно радиактивное.. ну и ардуина которая для передачи сигнала будет сервопривовдом открывать задвижу.. а с другой стороны комнаты  поставим ардуину со счетчиком гейгера.. ну и как тока радиактивность добралась то сразу выполняем какое то действие... 

Daemon2017
Offline
Зарегистрирован: 08.10.2013

*вкручивая монокль в глаз*

Ох-хо-хо, какая шутка!

А есть не такие смиЩные задумки?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Daemon2017 пишет:

*вкручивая монокль в глаз*

Ох-хо-хо, какая шутка!

А есть не такие смиЩные задумки?

это вы типа оценили свою задумку в ультразвуковым передатчиком? или у вас подводная комната?

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Puhlyaviy пишет:

Daemon2017 пишет:

*вкручивая монокль в глаз*

Ох-хо-хо, какая шутка!

А есть не такие смиЩные задумки?

это вы типа оценили свою задумку в ультразвуковым передатчиком? или у вас подводная комната?

 

Вы языите примерно так же смешно, как и шутите. 

MosGen
Offline
Зарегистрирован: 18.10.2013

Решал похожую задачу. Сделал так: взял два HC-SR04, с одного из них снял излучатель, этот HC-SR04 "назначил" приемником, второй не переделывал, его "назначил" излучателем. Импульс запуска (на модуле HC-SR04 этот вход называется Trig) подавал и на злучаетель, и на приемник. Импульс длительности прохождения сигнала (Echo) снимал с приемника. Если задача - контролировать  факт получения УЗ сигнала, достаточно контролировать появление импульса на выходе приемника. Два HC-SR04 с eBay обошлись примерно в 130 р.

Daemon2017
Offline
Зарегистрирован: 08.10.2013

Ого как!

У меня URM37 и он так не умеет)

Да, задача именно контролировать факт приема. Спасибо, буду пробовать :)

Daemon2017
Offline
Зарегистрирован: 08.10.2013

MosGen пишет:

Решал похожую задачу. Сделал так: взял два HC-SR04, с одного из них снял излучатель, этот HC-SR04 "назначил" приемником, второй не переделывал, его "назначил" излучателем. Импульс запуска (на модуле HC-SR04 этот вход называется Trig) подавал и на злучаетель, и на приемник. Импульс длительности прохождения сигнала (Echo) снимал с приемника. Если задача - контролировать  факт получения УЗ сигнала, достаточно контролировать появление импульса на выходе приемника. Два HC-SR04 с eBay обошлись примерно в 130 р.

 

А вы не могли бы подсказать, как вы сняли излучатель? Просто отпаяли или еще какие-то изменения в конструкцию вносиили?

MosGen
Offline
Зарегистрирован: 18.10.2013

Daemon2017:
А вы не могли бы подсказать, как вы сняли излучатель? Просто отпаяли или еще какие-то изменения в конструкцию вносиили?

Просто выпаял. Остальное не трогал. Он, как бы, в штатном режиме работает, только вместо своего отраженного сигнала принимает сигнал, пришедший от другого точно такого же устройства. А "свой" излучатель надо убрать, чтоб приемник не срабатывал на свой отраженный сигнал.

Daemon2017
Offline
Зарегистрирован: 08.10.2013

MosGen пишет:
Daemon2017: А вы не могли бы подсказать, как вы сняли излучатель? Просто отпаяли или еще какие-то изменения в конструкцию вносиили? Просто выпаял. Остальное не трогал. Он, как бы, в штатном режиме работает, только вместо своего отраженного сигнала принимает сигнал, пришедший от другого точно такого же устройства. А "свой" излучатель надо убрать, чтоб приемник не срабатывал на свой отраженный сигнал.

Спасибо! :)

Скетч как-то так будет выглядеть? Единственное, у меня такие подозрения: даже если на него не приходит УЗ импульс, он всё-равно будет что-нибудь да выводить. Нужно будет сделать проверку на то, чтобы значение превышало этот "случайный результат". Может у вас сохранился скетч? Я был бы очень благодарен :)

#define Trig 9
#define Echo 8
#define ledPin 13

void setup() 
{  
  pinMode(Trig, OUTPUT); //инициируем как выход 
  pinMode(Echo, INPUT); //инициируем как вход 
  pinMode(ledPin, OUTPUT); 
  Serial.begin(9600); 
  /* задаем скорость общения. В нашем случае с компьютером */
} 

unsigned int impulseTime=0; 

void loop() 
{  
  impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса 
  Serial.println(impulseTime); // Выводим на порт 
}
MosGen
Offline
Зарегистрирован: 18.10.2013

Daemon2017, в Вашем скетче не вижу формирования импульса на выходе Trig. На этом выходе надо сформировать импульс длительностью 10 мксек и затем уже замерять длительность ответного импульса на входе Echo. Остальное правильно. Все будет работать.
Ложных срабатываний не наблюдал - у меня таким способом измеряется расстояние между излучателем и приемником. Такой способ пришлось применить из-за узкого пространства, где на отраженном сигнале работать не получается.

Daemon2017
Offline
Зарегистрирован: 08.10.2013

#define Trig 9
#define Echo 8
#define ledPin 13

void setup() 
{  
  pinMode(Trig, OUTPUT); //инициируем как выход 
  pinMode(Echo, INPUT); //инициируем как вход 
  pinMode(ledPin, OUTPUT); 
  Serial.begin(9600); 
  /* задаем скорость общения. В нашем случае с компьютером */
} 

unsigned int impulseTime=0; 

void loop() 
{  
digitalWrite(Trig, HIGH); 
  /* Подаем импульс на вход trig дальномера */
  delayMicroseconds(10); // равный 10 микросекундам 
  digitalWrite(Trig, LOW); // Отключаем 
  impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса 
  Serial.println(impulseTime); // Выводим на порт 
}

Поправил немного. Так - более правдоподобно?

Правда я не очень понял, для чего подавать импульс, если я отпаяю УЗ-излучатель? В документации написано, что TRIG (T): вывод входного сигнала. Я, наверно путаю что-то...

 
MosGen
Offline
Зарегистрирован: 18.10.2013

Daemon2017 пишет:

Поправил немного. Так - более правдоподобно?

Правда я не очень понял, для чего подавать импульс, если я отпаяю УЗ-излучатель? В документации написано, что TRIG (T): вывод входного сигнала. Я, наверно путаю что-то...

После инициализации выхода Trig в него лучше сразу прописать 0, иначе может не сформироваться первый импульс, если выход после инициализации окажется в 1.

Импульс на вход Trig приемника надо подавать, чтобы он мог сформировать ответный импульс на выходе Echo: задний фронт этого импульса формируется, когда до премника доходит УЗ сигнал (т.е. окончание измерения), а передний фронт формируется именно по импульсу на входе Trig (с небольшой задержкой). Поэтому, излучатель мы сняли, чтоб он не формировал ненужный УЗ сигнал, но сам импуль запуска подаем, чтоб сформировался передний фронт импульса Echo. Наличие импульса Echo в Вашем случае и является признаком наличия УЗ сигнала. Для повышения надёжности можно контролировать его длительность, если расстояние между излучателем и приемником известно.

MosGen
Offline
Зарегистрирован: 18.10.2013

Возникли тут у меня сомнения по поводу всего вышесказанного. А какая у Вас задача? Если надо сделать что-то вроде дистанционной "кнопки", то мой вариант не подойдет, так как придётся и к приёмнику тащить сигнал Trig. Если надо контролировать прохождения сигнала от одной точки к другой, то подойдёт. 

Daemon2017
Offline
Зарегистрирован: 08.10.2013

MosGen пишет:

Возникли тут у меня сомнения по поводу всего вышесказанного. А какая у Вас задача? Если надо сделать что-то вроде дистанционной "кнопки", то мой вариант не подойдет, так как придётся и к приёмнику тащить сигнал Trig. Если надо контролировать прохождения сигнала от одной точки к другой, то подойдёт. 

 

Имеются ворота. С одной стороны закреплена ардуинка с излучателем, а с другой - ардуинка с приемником. Если через ворота пробегает кошка - цепь разрывается, а ардуинка-приемник посылает команду на сброс нямки для кота :)

Т.е. цель - просто отслеживать наличие/отсутствие приходящего сигнала.

Daemon2017
Offline
Зарегистрирован: 08.10.2013

MosGen пишет:

Daemon2017 пишет:

Поправил немного. Так - более правдоподобно?

Правда я не очень понял, для чего подавать импульс, если я отпаяю УЗ-излучатель? В документации написано, что TRIG (T): вывод входного сигнала. Я, наверно путаю что-то...

После инициализации выхода Trig в него лучше сразу прописать 0, иначе может не сформироваться первый импульс, если выход после инициализации окажется в 1.

Импульс на вход Trig приемника надо подавать, чтобы он мог сформировать ответный импульс на выходе Echo: задний фронт этого импульса формируется, когда до премника доходит УЗ сигнал (т.е. окончание измерения), а передний фронт формируется именно по импульсу на входе Trig (с небольшой задержкой). Поэтому, излучатель мы сняли, чтоб он не формировал ненужный УЗ сигнал, но сам импуль запуска подаем, чтоб сформировался передний фронт импульса Echo. Наличие импульса Echo в Вашем случае и является признаком наличия УЗ сигнала. Для повышения надёжности можно контролировать его длительность, если расстояние между излучателем и приемником известно.

 

Теперь понял, спасибо!

Похоже, что это то, что мне нужно :) Сейчас начнем пробовать.