Привет, можно вопрос от новичка? http://amperka.ru/product/hc-sr04-ultrasonic-sensor-distance-module работает стандартная библиотека Ultrasonic выдает почти постоянные значения в см, от 120-150, явно реагируя на предмет перед сенсором. но значения к реальным - отношения не имеют..... пересобрал схему несколько раз, либо выдает постоянный 0, либо некие значения.... плохо коррелирующие с расстоянием до объекта. что я не так включил? ) код - из примера к библиотеки
Убедитесь, что все подключено правильно. По поводу библиотеки не знаю, брал от сюда http://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip Там есть пример, только в примере Trig - pin 12, Echo - pin 13 Пробовал работать и с NewPing на странице описания продукта. Работает нормально с любой из них, на сколько точно работает не скажу, определяю падение детали на станке, но на глаз +/- 5см. Если выдает 0, то возможно перепутали Trig и Echo. Был случай когда датчик показывал не реальные значения за метр, но проблема была в том, что капли с охлаждения попали на сетку "глазков". Убедитесь, что в самих "глазках" чисто. Я решил проблему, продув воздухом из компрессора. UPD. Да и проверьте соединения мультиметром.
пересобрал. код - пример из вашей ссылки на ножках сенсора - 5В. тригер и эхо менял местами - 0. ответы 0. обнаружил, что тестировал схему , в том числе через БП - с включенным напряжением 12В. вопрос: мог я сжечь сенсор 12Вольтами? возможно, я ему на тригер и эхо даже при коммутации включал 12В.
Конечно могли. Надо быть очень внимательным, при подключении. У меня 3 таких, ни с одним проблем не обнаружил. 2 стоят на машинах в режиме 24 часа, один не смог настроить, не достаточный угол. UPD. Как-то вы запутано сделали это на макетке, Trig и Echo верно. Только есть ощущение, что не все провода вставлены, но раз проверили, значит норм. Интересная макетка, с такой не работал. Что с + и - не понятно. С права Вы подаете + и - от Ардуины. Слева плюс от V1 и минус от макетки. Потом перемычка от V1 + слева на V2 + справа. Не понимаю, что у Вас там с питанием. Сам пока плохо разбираюсь в электронике, но меня очень спасает мультимерт и простая позвонка кабелей.
борд был куплен пару лет назад. вот настало время расчехлить. на нем схема питания разведена как надо, на фото это не очевидно, но я ее перепроверял. к тому же на ножках - явно 5Вт. Grn - я специально для фото подал напрямую в контроллер. вещад мультиметр на TRIG и ECHO. мультиметр ловит что "то там"...(ассоцилографа нет под рукой.) думаю, я его спалил... поехал купил другой. сам виноват. спасибо за сочувствие
борд классный - просторный - я развожу на красный синий по периметру Vc и Grn. получается, что можно несколько схем тестить.
Да это точно, если проверяли мультиметром, значит все должно быть ок. Увы скорее всего. Это точно, классная вещь, иногда не уживаюсь на своем, приходится ставить 2 и т.д.
Можно ещё вопрос от новичка? У меня с данными все ок. Вот только ни как не могу заставить гореть диоды, в зависимости от полученых значений. Что то вроде парктроника хочу... Сразу скажу - программирование не мой конёк
ВсЁ заставил гореть диоды... Но теперь дугой вопрос. Как сделать, что бы каждый следующий загорался при увеличении дистанции на 10 см, а не на 1? #include "Ultrasonic.h" #define FIRST_LED_PIN 2 #define LED_COUNT 10 // sensor connected to: // Trig - 12, Echo - 13 Ultrasonic ultrasonic(13, 12); void setup() { Serial.begin(9600); // start the serial port for (int i = 0; i < LED_COUNT; ++i) pinMode(i + FIRST_LED_PIN, OUTPUT); } void loop() { float dist_cm = ultrasonic.Ranging(CM); // get distance Serial.println(dist_cm); // print the distance delay(100); // arbitary wait time. for (int i = 0; i < LED_COUNT; ++i) { boolean enableSegment = (dist_cm >= 10+i); digitalWrite(i + FIRST_LED_PIN, enableSegment); } }
Помогите, пожалуйста, ламеру! Использую датчик HC-SR04, Arduino micro и источник питания 12в (с него питаются ленты светодиодов) Пытаюсь сделать плавную регулировку яркости от расстояния. тестирую на 13м светодиоде. Код fade-а выглядит примерно так Код (Text): if (cm < 100) { int cm2 = 100 - cm; int fadeValue2 = map(cm2 , 0, 100, 0, 254); analogWrite(13, fadeValue2); } else { analogWrite(13, 0); } } Но проблема в том, что если мерить свыше 50см, то при работе от источника питания диод горит постоянно. При условии до 50см, все нормально. При работе от USB все тоже хорошо. куда копать?! Голову всю сломал уже…
Ну вроде как у светодиода нелинейная характеристика по яркости. Попробуйте простейшим скетчем по очереди на него задать значения 126,190,254 и попытайтесь определить различие яркости.
Если от юсби работает, а от внешнего источника питания нет, то вопрос в схеме подключения, разбираемся...