Умный дом. PIR датчик движения
- Войдите на сайт для отправки комментариев
Сб, 22/10/2016 - 18:47
Прошу помочь в написание программы для управление сигнализации.
есть PIR датчик ,кнопка(активация сигнализации), ардуино
PIR датчик движения:
1)если кнопка не нажата включает освещение
2)если кнопка нажата(активируем режим сигнализации) включает пищалку, пищалка должна отключаться после отжатии кнопки
int ledPin = 9; // инициализируем пин для светодиода
int inputPin = 4; // инициализируем пин для получения сигнала от пироэлектрического датчика движения
int pirState = LOW; // начинаем работу программы, предполагая, что движения нет
int val = 0; // переменная для чтения состояния 4 пина
int Sigpin = 11; // инициализируем пин для пищалки
int button = 12; // пин для кнопки
pinMode(button, INPUT);
void loop()
{ val = digitalRead(inputPin); // считываем значение с датчика
if (val == HIGH && button==0)
{
digitalWrite(ledPin, HIGH); // включаем светодиод
if (pirState == LOW)
pirState = HIGH;
} else digitalWrite(ledPin, LOW); // выключаем светодиод
if (pirState == HIGH)
pirState = LOW;
if (val == HIGH && button==1 )
{
digitalWrite(Sigpin, HIGH);
} else
{
digitalWrite(Sigpin, LOW); // выключаем светодиод
}
}
не получается когда нажимаю на кнопку,если до этого датчик срабатывал то сразу включается пищалка.
при отключение сигнализации датчик не обнуляется. Помогите с реализации
1. Читаем и точно следуем правилам: http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii Без этого Ваш код скорее всего и смотреть никто не будет.
2. таки тем здесь 100500 и там всё давно разжёвано. Кнопка "Поиск" в правом верхнем углу.
искал, не нашел..
1)не получается когда нажимаю на кнопку(активирую сигнализацию),если до этого датчик срабатывал то сразу включается пищалка. не могу обнулить значение PIR датчика при включение сигнализации
Попытка вставить код не защитана. Потренируйтесь ещё (там кстати есть "предпросмотр", вовсе не обязательно постить все попытки сюда.
Без нормально вставленного кода обсуждать его невозможно (хотя бы потому, что номеров строк нет).
Так что тренируйтесь.
Как вставите - посмотрим на код.
нету у меня кода, не получается написать. если мог то не поднимал бы вопрос
/* #1 PIR датчик -> 4(PIR_pin) 1 движение / 0 нет движения GND -> GND освещение -> 11 (Led_pin) 1 включено / 0 выключено GND -> GND тублер -> 12 (btn_pin) 0 свет / 1 сигнализация GND -> GND пищалка -> 9 (Sign_pin) GND -> GND */ //#1 const int PIR_pin = 4; // пин пирометра uint8_t PIR; // величина на пирометре const int btn_pin = 12; // пин тумблера 0 включаем свет / 1 включаем сигнализацию uint8_t btn; // величина на тумблере const int Led_pin = 11; // пин светодиода const int Sign_pin = 9; // пин пищалки const int frequency = 1000; // частота звука сигнализации Гц const int duration = 500; // длительность посылок миллисекундах void setup() { //#1 pinMode(PIR_pin, INPUT); pinMode(Led_pin, OUTPUT); digitalWrite(Led_pin, 0); pinMode(btn_pin, INPUT_PULLUP); } void loop() { static uint32_t MILLIS ; MILLIS = millis() ; //#1 static uint32_t future1 = 0 ; if (MILLIS >= future1) { future1 = MILLIS + 1000 ; PIR = digitalRead(PIR_pin); btn = digitalRead(btn_pin); digitalWrite(Led_pin, PIR && ! btn); if (PIR && btn) tone(Sign_pin, frequency, duration); } }нету у меня кода, не получается написать. если мог то не поднимал бы вопрос
ну. на нет. и суда нет
Спасибо qwone, ни то что некоторые умники