peresolyak

Ардуино. Контроль 4-х входов

6 сообщений в этой теме

peresolyak    14

доброго времени суток.

требуется одновременно контролировать 4 входа и соответственно управлять 4 выходами.

если на 1 вход поступает сигнал - то на 11 выходе, все время, должен быть высокий уровень

после пропадания сигнала на входе 1 - на 11 выходе должен быть высокий уровень еще несколько секунд

с остальными входами и выходами - то же

проблема в том, что если применить IF ELSE DELAY по очереди для каждого канала, то, я так понимаю, что пока идет задержка DELAY то ардуинка не будет опрашивать остальные входы.

или как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Brian4ever    71

Вариантов решения много. Например вместо задержки запускай счётчик, как досчитает до определенного значения так отключай выход.  Или использовать функцию millis(), в яндексе "мигаем светодиодом без delay".

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подними прерывание в 100мс (например).

Включение выхода по изменению входа.

Отключение засунуть в прерывание:

i++;
if(i > 10 && PIN.X == 0)PORT.X = 0;

Выход отключится через 1.1 сек при условии что прерывание каждые 100мс

Изменено пользователем Никитос

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
peresolyak    14

спасибо, погуглил, нашел. вечером дома попробую. отпишусь если что не так ну или так...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Затяни потенциометр на АЦП,прерывание сделай каждые 2мс. Тогда макс звдержка будет 2048 мс. 

if(i > ADC * 2 && PIN.X == 0)PORT.X = 0;

не забудь переменную i обнулять при отключении входа, а то лажа получится)))

Изменено пользователем Никитос

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...