Реле и Arduino
- Войдите на сайт для отправки комментариев
Втр, 02/02/2016 - 07:41
Помогите новичку с написанием кода....Нужно при кратковременном нажатии на кнопку чтобы включилось реле на 1сек. выключилось включилось на 0.5сек. и выключилось до следущего нажатия кнопки.
Собираю в Ардублок получается только или включить или выключить.
А где код? С чем помогать?
01
loop
(){
02
if
( digitalRead(pin1) ){
03
digitalWrite(pin2, HIGH);
//Вк. на секунду
04
delay(1000);
05
digitalWrite(pin2, LOW);
//Вык. на 0.5сек.
06
delay(500);
07
digitalWrite(pin2, HIGH);
//Вк. на 0.5сек.
08
delay(500);
09
digitalWrite(pin2, LOW);
//Вык.
10
}
11
}
ничего неполучается....само включается выключается
1)
pinMode( 8 , INPUT);
замени на pullup
2) используй delay
схема твоя где?
подтяжку поставил?
да поставил.... нажимаю кнопку реле включилось отпускаю выкл. А чтобы нажать кнопку и реле включилось на 1 сек потом выключилось потом включилось на 0.5 сек и выключилось до следующего нажатия кнопкии неполучается
белый провод замыкаю на + реле вкл. размыкаю выкл.
схемку нарисуй плз.
можно попробовать
if
( digitalRead(pin1) == HIGH ){...
тестер есть?
смотри напряжение на dpin 8
dpin 8 рабочий .....я его замыкаю на + реле срабатывает
Помогите новичку с написанием кода....Нужно при кратковременном нажатии на кнопку чтобы включилось реле на 1сек. выключилось включилось на 0.5сек. и выключилось до следущего нажатия кнопки.
Собираю в Ардублок получается только или включить или выключить.
выключалось на сколько секунд?
1.Нажимаю копку (кратковременное нажатие)
2.Включается реле на 1 секунду
3.Выключается на 0.5 секунды
4.Включается на 0.5 секунды
5.Выключается (до следующего кратковременного нажатия кнопки)
А вы уверены что простое электромагнитное реле способно работать с такими мелкими задержками, ведь это вам не транзисторный ключь?
А вы уверены что простое электромагнитное реле способно работать с такими мелкими задержками, ведь это вам не транзисторный ключь?
я уверен.
Так попробуйте.
И, да, правильно Вам пишут - схема нужна. Точно на "+" кнопку замыкаете?
Ты в алгоритм глазами или жопой смотришь?
Если на 8 пин к земле притянут, то релюху включить, иначе щелкать по алгоритму.
так как сделать то ...обьясните плиззз....
Ну так заменить тогда
if (digitalRead( 8) == HIGH )
на
if(digitalRead(8)==LOW)
И будет счастье.
Ну так заменить тогда
if (digitalRead( 8) == HIGH )
на
if(digitalRead(8)==LOW)
И будет счастье.
нет щасья.....нажимаешь кнопку и начинает тикать как часы
нет щасья.....нажимаешь кнопку и начинает тикать как часы
Надо настроить параметры delay().
Я просто скопировал ваш код, как было.
delay(1000); это 1 секунда.
нет щасья.....нажимаешь кнопку и начинает тикать как часы
Надо настроить параметры delay().
Я просто скопировал ваш код, как было.
delay(1000); это 1 секунда.
да вкурсе delay(1000); это 1 секунда.....надо чтобы программа при нажатии незацикливалась как она делает в данном скетче а выполнила задачу и остановилась
ЗАДАЧА
1.Нажать копку (кратковременное или длительное нажатие)
2.Включается реле на 1 секунду
3.Выключается на 0.5 секунды
4.Включается на 0.5 секунды
5.Выключается (до следующего кратковременного или длинного нажатия кнопки)
Примерно так.
Если нажатие больше 2 секунд, то цикл включения- выключения реле повторится.
Если нажатие больше 2 секунд, то цикл включения- выключения реле повторится.
Спасибо...работает!!!
Ввёл новую переменную f которая принимает значение 1 при нажатии и сбрасывается в 0 при отпускании кнопки.
Если нажатие больше 2 секунд, то цикл включения- выключения реле повторится.
Спасибо...работает!!!
Накасячил в последнем коде, его не копировать.
Ушол, исправлять не буду.
Накасячил в последнем коде, его не копировать.
Ушол, исправлять не буду.
Вот это по идеи должно работать.
int f=0;// Флаг нажатия кнопки
long надо, а то не вместится. :D
int f=0;// Флаг нажатия кнопки
long надо, а то не вместится. :D
Понимаю вашу иронию. Но тут вопрос нехватки памяти не стоит. А мне, как не профессиональному программисту, чем меньше букв, тем проще. Поэтому int а не boolean.