Помогите написать скетч для ультразвукового датчика HC-SR04 и модуля реле Songle SRD-05VDC-SL-C
- Войдите на сайт для отправки комментариев
Ср, 14/12/2016 - 22:27
Здравствуйте! Необходимо, чтобы при расстоянии <300мм, модуль-реле включал нагрузку, если >300мм выключал. Заранее спасибо.
Пишите ydom@mail.ru сделаем. Напишу код, соберу макет, проверю в работе, так что вы получите полностью рабочий проверенный код.
Пишите ydom@mail.ru сделаем. Напишу код, соберу макет, проверю в работе, так что вы получите полностью рабочий проверенный код.
такое даже я смогу написать )))
Питание от чего? htpicc@gmail.com
От платы arduino uno.
5v реле, при питаниии от ардуино, может давать помеху и перегревать(выводить из строя) стабилизатор ардуины.
правильно реле запитать от отдельного источника 5 вольт, а не от дуни
Это я под ESP писал. Пины D6, D7, D8 заменишь на свои..
В монитор порта выводит в миллиметрах, что хочешь то и делай с ними.
Копипаст, небось.)) Ибо зачем первые 2 строки в лупе?
Копипаст, небось.)) Ибо зачем первые 2 строки в лупе?
Всё там правильно не езди людям по ушам.
Я понял. Для объёма. И не тыкай мне.
Копипаст, небось.)) Ибо зачем первые 2 строки в лупе?
А разве
pinMode(trigPin, OUTPUT);
Не установит выход в единичку?
Копипаст, небось.)) Ибо зачем первые 2 строки в лупе?
А разве
pinMode(trigPin, OUTPUT);
Не установит выход в единичку?
Изначально у меня эта функция называлась по другому и вызывалась по требованию, поэтому я и не удалял все задержки и т.п. Последующие так же её переименуют...
Залей и посмотри в монитор порта.
а константа 58.2 - уточнённое значение на скорость распространения звука в воздушной среде, в примерах просто 58?
А разве
pinMode(trigPin, OUTPUT);
Не установит выход в единичку?
Нет, не установит.
[quote=p.masyukov]
Это я под ESP писал. Пины D6, D7, D8 заменишь на свои..
В монитор порта выводит в миллиметрах, что хочешь то и делай с ними.
Загрузил скетч. Вот такая картина получилась:
Так ты пины замени на те что используешь (вместо D6,D7...) и подключи правильно датчик.
Он и выводит ошибку.. Что в переменной растояние ничего нет.
long
duration = 0, distance = 0; // А так нули будет выдавать если датчик неисправен, не подключен, не правильно подключен
я использую ваши пины. заменил переменную. всё равно ошибка. выделяет 10 строчку.
не работает. пишет:
Попробуйте переустановить IDE
Зааааработаалооооо. Спасибо. Теперь не понятно, где задавать расстояние, если <300мм, то включить реле, >-выключить?
01
#define echoPin 7
02
#define trigPin 6
03
#define relayPin 8
04
05
long
duration = 0, distance = 0;
06
07
void
setup
()
08
{
09
Serial
.begin (9600);
10
pinMode(trigPin, OUTPUT);
11
pinMode(relayPin, OUTPUT);
12
pinMode(echoPin, INPUT);
13
}
14
15
void
loop
()
16
{
17
digitalWrite(trigPin, LOW);
18
delayMicroseconds(2);
19
digitalWrite(trigPin, HIGH);
20
21
delayMicroseconds(10);
22
digitalWrite(trigPin, LOW);
23
24
duration = pulseIn(echoPin, HIGH);
25
distance = duration/58.2;
26
27
Serial
.println(distance);
28
( distance < 300 ) ? digitalWrite(relayPin, HIGH):digitalWrite(relayPin, LOW);
29
// distance < - ТУТ НАХОДИТСЯ РАССТОЯНИЕ В МИЛЛИМЕТРАХ
30
31
delay(100);
32
}
А ведь клиент созрел почти. )))
я не понял вас? это тонкий намёк что ли?
новый год скоро.
тогда с наступающим всех новым годом!!! спасибо за поддержку. помогли бедному страдальцу справиться с железякой.