проблема с HC-SR04 Ultrasonic Sensor

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

проблема с HC-SR04 Ultrasonic Sensor

Сообщение overlocker » 29 янв 2012, 00:22

Решил протестить сонар с ардуинкой подключил. Залил скетч:
int echo_on = 2; //Пин для включения эхо локатора
int echo_in = 12; //ШИМ выход, выдает импульс длительностью с шагом 147 мкс (1 дюйм)
unsigned long duration, duration_crt ;

void setup()
{
pinMode(echo_on, OUTPUT);
pinMode(echo_in, INPUT);
Serial.begin(115200);
}
//-----------------------------------------------
void loop()
{
digitalWrite(echo_on, LOW); // включить сонар
delayMicroseconds(5); // время на включение устройства
duration = pulseIn(echo_in, HIGH); // замер ответа эха
delay(1);
duration_crt = pulseIn(echo_in, HIGH); // контрольный замер ответа эха
if(duration == duration_crt) // если замеры равны, то значит нет ошибки
{
Serial.println(duration/58); //переводим в мм и отправляем в порт[/spoiler]
на ходе сериал монитор только нули в столбик, независимо от расстояния датчика до препятствия.
Попробовал залить скетч который ипользует библиотеку ультрасоник, честно стыбреную с
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1272177425
резалт тот же столбик нулей...
понятно, что в зависимости от скетча меняется схема подключения сонара к ардуино.
сонар нерабочий или руки кривые?!
может подключение неправильное,
покурив доки представлялось так: trig- включение сонара. echo- собсно замеряем эхо...
само собой vcc-плюс 5в,а gnd-земля.
Последний раз редактировалось overlocker 03 фев 2012, 21:40, всего редактировалось 1 раз.
Аватара пользователя
overlocker
 
Сообщения: 137
Зарегистрирован: 22 июл 2006, 13:32
Откуда: Украина. г. Прилуки
прог. языки: basic
ФИО: щербина анатолий

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение overlocker » 30 янв 2012, 20:55

неужели даже мыслей ниукого нет, инфракрасный бампер уж очень не хочется юзать- пройденый этап, совсем неинтересно, да и точность\достоверность минимальная.....
Аватара пользователя
overlocker
 
Сообщения: 137
Зарегистрирован: 22 июл 2006, 13:32
Откуда: Украина. г. Прилуки
прог. языки: basic
ФИО: щербина анатолий

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение overlocker » 03 фев 2012, 09:03

60 просмотров и ниодного ответа....
Аватара пользователя
overlocker
 
Сообщения: 137
Зарегистрирован: 22 июл 2006, 13:32
Откуда: Украина. г. Прилуки
прог. языки: basic
ФИО: щербина анатолий

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение dccharacter » 03 фев 2012, 11:28

Так кода-то никто не увидел. Скрыт он.

Добавлено спустя 4 минуты 58 секунд:
У тебя инит неправильно сделан. Инит - это пульс длительностью 10 мкс, а ты просто роняешь пин в ноль.

Оставь только это:
digitalWrite(echo_on, HIGH); // включить сонар
delayMicroseconds(10); // время на включение устройства
digitalWrite(echo_on, LOW); // включить сонар
duration = pulseIn(echo_in, HIGH); // замер ответа эха
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение overlocker » 16 фев 2012, 17:11

де
У тебя инит неправильно сделан. Инит - это пульс длительностью 10 мкс, а ты просто роняешь пин в ноль.

действительно мой вариант алогичен, твой более правдоподобен.
переделал скетч добавив задержку, но на выходе всеравно столбик нулей. ( пробовал меять задержкуот 0 до 10 - результата тот же нули.
помогите плиз.
Аватара пользователя
overlocker
 
Сообщения: 137
Зарегистрирован: 22 июл 2006, 13:32
Откуда: Украина. г. Прилуки
прог. языки: basic
ФИО: щербина анатолий

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение Skyer » 25 фев 2012, 18:27

Код не смотрел, так как сам пишу на ассемблере, да и лень. Но посоветую проверить а точнее сверить то что нужно сделать (смотри доку, либо статьи по этому дальномеру) и то что делается у тебя в коде (такие ошибки часто бывают).

Тебе по сути после инита нужно ждать 1 на линии Echo и потом высчитать время пока на Echo держится 1. А далее все просто. Мой можешь глянуть в разделе про Linetracer'ы
Аватара пользователя
Skyer
 
Сообщения: 24
Зарегистрирован: 13 окт 2011, 09:32
Откуда: Ханты-Мансийск
прог. языки: AVR asembler, Delphi, C++, Php

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение Dmitri Vladimirovich » 25 фев 2012, 23:40

http://iteadstudio.com/application-note ... h-hc-sr04/
http://www.elecfreaks.com/244.html
Может поможет чем-то, а может Вы это уже видели =)
А вообще - может нужно его на пины вешать которые ШИМ поддерживают, или имеют таймер встроенный?
#define TRUE FALSE
Dmitri Vladimirovich
 
Сообщения: 283
Зарегистрирован: 05 янв 2010, 23:07
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение overlocker » 03 мар 2012, 17:01

Но посоветую проверить а точнее сверить то что нужно сделать (смотри доку, либо статьи по этому дальномеру) и то что делается у тебя в коде (такие ошибки часто бывают).

такие ошибки часто бывают. какие именно ошибки?!
понятное дело- доку курил, там все еще проще чем в статьях-примерах!
код переписывал с нуля несколько раз. ответ четкий столбик нулей.
Аватара пользователя
overlocker
 
Сообщения: 137
Зарегистрирован: 22 июл 2006, 13:32
Откуда: Украина. г. Прилуки
прог. языки: basic
ФИО: щербина анатолий

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение Sinaver » 05 апр 2012, 23:34

резалт тот же столбик нулей...

Недавно (вчера) столкнулся с такой проблемой, даже потревожил магазин, где заказывал, чтоб поменяли, но с новым такая же проблема - "столбик нулей"!
Но сегодня меня озарило! проблема в следующем : ультразвуковой датчик на вход trigger требует импульс уровня 5 В, ниже он понимает как какие-то помехи или дребезг, поэтому в таком случае на выходе Echo будет 0! питал я Arduino Nano через miniUsb, в итоге ардуино работает на 3,3 В (тоже самое если подавать на Vin 5 В, стабилизатор кушает 1 В -> получаем 4), то на выводах I/O будет напряжение 3-4 В! В итоге Ардуино надо кормить только через + 5V pin))
Sinaver
 
Сообщения: 1
Зарегистрирован: 05 апр 2012, 23:26

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение overlocker » 03 янв 2013, 12:37

2Sinaver
так вам удалось решить проблему, или все закончилось на ровне - осенило?
подключал стабилизированный источник питания на 9 вольт, проблема та же столбик нулей.
Аватара пользователя
overlocker
 
Сообщения: 137
Зарегистрирован: 22 июл 2006, 13:32
Откуда: Украина. г. Прилуки
прог. языки: basic
ФИО: щербина анатолий

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение pablito » 19 фев 2013, 02:52

Если у кого-то еще осталась эта проблема, то у меня такой код работает:
#define trigPin 12
#define echoPin 13

int duration, distance;

void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}

void loop() {
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 400 || distance <= 0){
Serial.println("Out of range");
}
else {
Serial.print(distance);
Serial.println(" cm");
}
delay(500);
}
pablito
 
Сообщения: 1
Зарегистрирован: 19 фев 2013, 02:46

Re: проблема с HC-SR04 Ultrasonic Sensor

Сообщение Good_Winn » 22 фев 2016, 00:00

Всем доброго времени суток. Мучаю уже пару дней этот датчик с Arduino Nano.
Проблема в следующем:
1 вариант. Подключаем к компу через USB, без внешнего питания, датчик подключен к +5V на ардуино (реально 4.54 V), крутим датчик в разные стороны, показывает как надо, при выходе за диапазон выдает нули, при возвращении в диапазон измерений опять шлет корректные данные.
2 вариант. Не меняя скетч, на ходу, подключаем на VIN внешнее питание от батареи (LiPo 7.4 V), при этом напряжение на датчике реально 4.95 V, крутим датчик в разные стороны, продолжает показывать как надо, при выходе за диапазон выдает нули, при возвращении в диапазон измерений продолжает показывать нули сколько угодно долго (если померить напряжение на ECHO +4.95 V ). Лечится передергиванием питания, прикосновением к конденсаторам на датчике, щелчке по излучателю. После чего измерения продолжаются до очередного выхода за границы диапазона. Если во время "зависания" отключить внешнее питание - начинает работать нормально...
Тестировал разные библиотеки, поведение одинаковое. Получается проблема хардварная (?) IMHO - с питанием, но что конкретно делать/мерить - ума не приложу. На данный момент к ардуине больше ничего не подключено. Батарея понятное дело заряжена..
Прошу помощи..!
Good_Winn
 
Сообщения: 2
Зарегистрирован: 22 сен 2015, 08:06
Откуда: Бийск, Алтайский край
прог. языки: Pascal, VBS
ФИО: Молодцов Роман


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12