Помогите написать скетч
- Войдите на сайт для отправки комментариев
Сб, 07/04/2018 - 15:54
надо собрать устройство для охраны. Как написать цикл для проверки датчиков вроде разобрался, а вот как решить вопрос с кнопкой сброса не пойму.
//программа 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); //Датчик сработал включаем реле }
nekromant, программирование это не только синтаксис языка Си, а еще умение строить модели различных устройств. У вас устройство для охраны. У него как минимум 3 состояния: охрана отключена, охрана включена и тревога.
Ну если датчик сработал, то режим тревоги. Кнопка сброса или отключает всю систему или же взводит в режим охраны.
Конкретно в этом устройстве такого не надо. Сдесь достаточно того, что бы при срабатывании любого датчика включалась тревога и возврата системы в исходное состояние по нажатию кнопки
Конкретно в этом устройстве такого не надо. Сдесь достаточно того, что бы при срабатывании любого датчика включалась тревога и возврата системы в исходное состояние по нажатию кнопки
А теперь прочтем, что Вы написали и подумаем. Исходное состояние,это что? включение требоги это что? Правильно состояния. Если бы так просто ,Вы просто замкнули датчик на тревогу и исключили Ардуину. Есть сигнал на датчике , есть тревога, нет сигнала- нет тревоги. Думаю вы догадались, что нужен триггер. А это и есть то, что я написал выше.
Конкретно в этом устройстве такого не надо. Сдесь достаточно того, что бы при срабатывании любого датчика включалась тревога и возврата системы в исходное состояние по нажатию кнопки
Вы противоречите и qwone, и самому себе.
Правильно спроектированная система должна иметь набор состояний. При этом внешние воздействия могут переводить систему из одного состояния в другое, а состояния (включая переход между ними) инициируют управляющее воздействие на исполнительные устройства.
Вы же пытаетесь отказаться от состояний, а внешние воздействия замкнуть непосредственно на управляющие воздействия. В некоторых простейших случаях такая стратегия срабатывает. Но решение оказывается нерасширяемым. Вот как есть - так есть, и ничего добавить нельзя. А автомат состояний достаточно легко расширяем.
Так что постарайтесь вникнуть в то, что Вам сказал qwоne и реализовать именно этот родход у себя.
Другими словами система, как она спроектирована Вами, не обладает расширяемостью. Для обеспечения этой расширяемости идеологию надо менять - делать автомат состояний.
Попробуйте так
Спасибо. Только я не понял где тут задается уровень при котором датчик считается сработавшим?
Вот это поворот. Уровень чего?
Дык, у датчиков то уровни - либо "0", либо "1".
Не надо тапочками в меня кидать. Это мой первый опыт с контроллерами по тому и вопросы могут быть глупыми. С ! это 0, а без 1? Вопрос не только решить задачу но и хочется разобраться что и к чему.
Если хотите разобраться - разбирайтесь. А если спрашиваете, то пишите так, чтобы было понятно другим, а не только вам. Что вот это за.. муйня "С ! это 0, а без 1?"
! Перед digitalRead. И есть где про все нюансы написания кода почитать?
http://cppstudio.com/post/297/ Помогу тем кого забанили в гугле. Понимаю санкции, потому что Путин Трампу нассал в тапок. Нет ,что бы, как приличный кот , ходить в отведенную миску.
Понимаю санкции, потому что Путин Трампу нассал в тапок. Нет ,что бы, как приличный кот , ходить в отведенную миску.
Судя по истерике, он ему под стол навалил ниаднакратно.