Обсуждаем цифровые устройства...
Ответить

Помогите с программой для ардуино нано

Сб апр 07, 2018 11:59:05

Срочно надо собрать устройство для охраны. Как написать цикл для проверки датчиков вроде разобрался, а вот как решить вопрос с кнопкой сброса не пойму.

По идее надо 2 цикла делать. Первый проверяет датчик сравнивает значение если условие выполняется включает реле и переходит в цикл проверки кнопки. Если условие не выполняется то цикл выполняется дальше

Спойлер//программа

int vibroPin = 2; //Вход вибродатчика
int smkPin = 3; //Вход шлейфа на обрыв
int swPin = 4 //Вход кнопка сброса тревоги
int relePin = 13; //Выход управления реле

void setup() {
pinMode(vibroPin, INPUT);
pinMode(smkPin, INPUT);
pinMode(swPin, INPUT);
pinMode(relePin, OUTPUT);
}

void loop() {
int val = digitalRead(smkPin); // Считваем значение с датчика SMK
if(val==0){
digitalWrite(relePin, HIGH); //Датчик сработал включаем реле
Здесь надо как то дождаться нажатия кнопки отключить реле и вернуться к опросу датчиков
int val = digitalRead(PIN_SENSOR); // Считваем значение с датчика vibro
if(val==1){
digitalWrite(relePin, HIGH); //Датчик сработал включаем реле
Здесь надо как то дождаться нажатия кнопки отключить реле и вернуться к опросу датчиков
}
Вложения
охрана .GIF
Схема
(132.53 KiB) Скачиваний: 387
блок схема охрана камеры.png
(83.38 KiB) Скачиваний: 196

Re: Помогите с программой для ардуино нано

Сб апр 07, 2018 14:01:46

То есть по логике работы: пока не нажата кнопка отключения реле программа ни хрена делать не будет? Плевать ей на остальные датчики?
Странная охранка. Ложное срабатывание и привет всей охране.

Re: Помогите с программой для ардуино нано

Сб апр 07, 2018 14:13:56

Все очень логично. не важно стукнули или оторвали охраняемое устройство включается сирена и орет до тех пор пока не придут проверить и отключить

Re: Помогите с программой для ардуино нано

Сб апр 07, 2018 21:59:29

"Закон" из "законов Мэрфи". - Если какая-нибудь беда (херня, фигня) МОЖЕТ случиться, то она СЛУЧИТСЯ. Писать алгоритм, который не проверит несколько раз входящее событие, прежде чем выдать реакцию на него - легкомысленно, а часто и накладно. Не пробовали - пожарников несколько раз вызвать не по делу, или скорую.. В реале все бывает - космическая частица пролетит, электричество "мигнет", таракан в датчик заберется и тд. Главное - разумно интервалы проверки и число попыток (бог любит троицу...) взять.

Re: Помогите с программой для ардуино нано

Вс апр 08, 2018 03:53:42

Срочно и на ардуино это курсовой?

Re: Помогите с программой для ардуино нано

Вс апр 08, 2018 07:01:16

Не курсовой. Надо защитить железяку от коммунистов.

Re: Помогите с программой для ардуино нано

Вс апр 08, 2018 09:35:43

помимо темы с ложными срабатываниями.
Попробуйте разложить вашу задачу на процессы и состояния (не только для МК, а полностью, т.е. включая действия человека), наложите одно на другое и может станет понятней какие сущности нужны а какие лишние.
к примеру, эта кнопка нужна что бы вернуться на состояние "наблюдение" для этого канала, но канал то у Вас и так один - поэтому можете просто после "принятия решения" и подачи "тревога" загонять МК в ступор; и возвращаться на "наблюдение" штатной reset. А индикация "взят под наблюдение" не помешает.
Посмотрите чужой опыт использования sw420, к примеру :
"C сенсором вибраций SW-420 не всё так однозначно, как предыдущими сенсорами, так как он показывает не наличие самой вибрации... При этом при отсутствии вибрации он с большой долей вероятности будет находиться в состоянии LOW, но так же может и спокойно встать в состояние HIGH."
там же по поводу срочности - можете найти уже готовый скетч, подрихтуете зальете в Вашу нано.
Еще фактор, для контроля наличия датчика - с него "0" или "1", т.е. подвесив вход МК на делитель и включив ацп можно видеть оторван датчик или на линии. (просто как вариант).
да еще, вероятно и собаку надо прикручивать (watchdog).

А если тема с ложным срабатыванием, по каким-то причинам не критична (никого вызывать не нужно, можно загрубить чуйку, ...), от МК можно отказаться: датчик - одновибратор - реле с 2мя группами конт.(для самоудержания). :)

Re: Помогите с программой для ардуино нано

Вс апр 08, 2018 22:28:24

Вопрос решен.

Добавлено after 9 hours 34 minutes 27 seconds:
Если кому интересно http://arduino.ru/forum/programmirovani ... t-sketch-0
Ответить