угу, или как схемы с ОК выходом объединяются в монтажное ИЛИ без ардуин
А можно поподробней? Если я правильно понимаю, есть возможность сделать то же самое без ардуино? Гугл с яндексом не в теме:)
Вот что в итоге получилось, может кому пригодится:)
/*
Скетч для управления реле ардуино с помощью датчиков дыма и огня
relay_pin и zrelay_pin содержит номер пина, к которому подключено реле, которым мы будем управлять
smoke_pin и flame_pin содержит номер пина с подключенным датчиком дыма/огня
В теле функции loop проверяем наличия низкого уровня сигнала от датчика с помощью функции digitalRead
*/
int relay_pin = 8; // Определяем пин, используемый для подключения реле1
int zrelay_pin = 9; // Определяем пин, используемый для подключения реле2
int smoke_pin = 2; // Определяем пин, используемый для подключения smoke-датчика1
int ssmoke_pin = 3; // Определяем пин, используемый для подключения smoke-датчика2
int flame_pin = 4; // Определяем пин, используемый для подключения flame-датчика1
int fflame_pin = 5; // Определяем пин, используемый для подключения flame-датчика2
// В этой функции определяем первоначальные установки
void setup()
{
Serial.begin(9600);
pinMode(relay_pin, OUTPUT); // Объявляем пин реле1 как выход
pinMode(zrelay_pin, OUTPUT); // Объявляем пин реле2 как выход
pinMode(smoke_pin, INPUT); // Объявляем пин датчика дыма как вход
pinMode(ssmoke_pin, INPUT); // Объявляем пин датчика дыма как вход
pinMode(flame_pin, INPUT); // Объявляем пин датчика огня как вход
pinMode(fflame_pin, INPUT); // Объявляем пин датчика огня как вход
}
void loop()
{
int smokeVal = digitalRead(smoke_pin);
int ssmokeVal = digitalRead(ssmoke_pin);
int flameVal = digitalRead(flame_pin);
int fflameVal = digitalRead(fflame_pin);
if (smokeVal == LOW || ssmokeVal == LOW || flameVal == LOW || fflameVal == LOW)
{
digitalWrite(relay_pin, LOW);
digitalWrite(zrelay_pin, LOW); // Включаем реле - посылаем высокий??? уровень сигнала
Serial.println("реле включено");
} else {
digitalWrite(relay_pin, HIGH);
digitalWrite(zrelay_pin, HIGH); // Отключаем реле - посылаем низкий??? уровень сигнала
Serial.println("реле выключено");
}
delay(1000); // Проверяем значения один раз в секунду.
}
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
Можно и без ардуино. Берешь модуль на 4 реле, ко входу каждого реле подключаешь датчик. А нормально замкнутые контакты реле об единяешь паралельно и пускаешь на ревун.
Можно и без ардуино. Берешь модуль на 4 реле, ко входу каждого реле подключаешь датчик. А нормально замкнутые контакты реле об единяешь паралельно и пускаешь на ревун.
Можно и без ардуино. Берешь модуль на 4 реле, ко входу каждого реле подключаешь датчик. А нормально замкнутые контакты реле об единяешь паралельно и пускаешь на ревун.
достаточно 4 диода и одно реле
А зачем тогда я всю эту конструкцию накрутил? Для расширения сознания видимо:) А если два реле? Просто параллельно включить второе?
А зачем тогда я всю эту конструкцию накрутил? Для расширения сознания видимо:) А если два реле? Просто параллельно включить второе?
А зачем два реле? Опять для расширения сознания?
Ну я собирался ревун на второе прицепить:)
Но по ходу дела камера Сяоми на обычный рев не реагирует, даже на писк обычных пожарных извещателей тоже. Ей подавай писк фирменного датчика: https://ru.aliexpress.com/item/Xiaomi-Mijia-Honeywell/32890006304.html? Всвязи с чем без ардуинки не обойтись. Дописал скетч, чтобы пьезопищалка пищала фирменный алярм. Заодно доработал программу: теперь после срабатывания одного из датчиков реле отключается до перезагрузки, а пищалка пищит минимальное для срабатывания оповещения время, или пока сигнал с датчика приходит. Неказисто, но работает:)
/*
Скетч для управления реле ардуино с помощью датчиков дыма и огня
relay_pin и zrelay_pin содержит номер пина, к которому подключено реле, которым мы будем управлять
smoke_pin и flame_pin содержит номер пина с подключенным датчиком дыма/огня
В теле функции loop проверяем наличия низкого уровня сигнала от датчика с помощью функции digitalRead
*/
int relay_pin = 8; // Определяем пин, используемый для подключения реле1
int smoke_pin = 2; // Определяем пин, используемый для подключения smoke-датчика1
int ssmoke_pin = 3; // Определяем пин, используемый для подключения smoke-датчика2
int flame_pin = 4; // Определяем пин, используемый для подключения flame-датчика1
int fflame_pin = 5; // Определяем пин, используемый для подключения flame-датчика2
int buzzer = A3; //объявляем переменную с номером пина пьезоэлемента
// В этой функции определяем первоначальные установки
void setup()
{
Serial.begin(9600);
pinMode(relay_pin, OUTPUT); // Объявляем пин реле1 как выход
pinMode(smoke_pin, INPUT); // Объявляем пин датчика дыма как вход
pinMode(ssmoke_pin, INPUT); // Объявляем пин датчика дыма как вход
pinMode(flame_pin, INPUT); // Объявляем пин датчика огня как вход
pinMode(fflame_pin, INPUT); // Объявляем пин датчика огня как вход
pinMode(buzzer, OUTPUT); //объявляем пин как выход
}
void loop()
{
int smokeVal = digitalRead(smoke_pin);
int ssmokeVal = digitalRead(ssmoke_pin);
int flameVal = digitalRead(flame_pin);
int fflameVal = digitalRead(fflame_pin);
int var = 0;
if (smokeVal == LOW || ssmokeVal == LOW || flameVal == LOW || fflameVal == LOW)
{
digitalWrite(relay_pin, HIGH); // Выключаем реле - посылаем высокий уровень сигнала
while(var < 15){
tone (buzzer, 3000); //включаем пищалку на 3КГц
delay(500); //ждем 500 Мс
noTone(buzzer); //пауза 500 Мс
delay(500);
tone (buzzer, 3000); //включаем пищалку на 3КГц
delay(500); //ждем 500 Мс
noTone(buzzer); //пауза 500 Мс
delay(500);
tone (buzzer, 3000); //включаем пищалку на 3КГц
delay(500); //ждем 500 Мс
noTone(buzzer); //пауза 1500 Мс
delay(1500);
var++;
}
} else {
noTone(buzzer); //отключаем пищалку
}
delay(1000); // Проверяем значения один раз в секунду.
}
Очепятка. MQ-2 пользую. Но MQ-2 тоже довольно широкого спектра. На дым реагирует, но так же прекрасно реагирует на 3Д клей и аэрозоли всяческие. Поэтому приспособил сенсорную кнопочку, от которой запускается пауза скетча на пять минут - если надо что сделать, жму ее, и ковыряюсь. Чтобы не пищала система почем зря. А так все работает.
угу, или как схемы с ОК выходом объединяются в монтажное ИЛИ без ардуин
угу, или как схемы с ОК выходом объединяются в монтажное ИЛИ без ардуин
А можно поподробней? Если я правильно понимаю, есть возможность сделать то же самое без ардуино? Гугл с яндексом не в теме:)
Вот что в итоге получилось, может кому пригодится:)
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
Можно и без ардуино. Берешь модуль на 4 реле, ко входу каждого реле подключаешь датчик. А нормально замкнутые контакты реле об единяешь паралельно и пускаешь на ревун.
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
Это врядли, если только вольтметр такое показывает :)
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
Это врядли, если только вольтметр такое показывает :)
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
Это врядли, если только вольтметр такое показывает :)
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
Это врядли, если только вольтметр такое показывает :)
Глюк? На 1 сообщение - 4 копии.
Такое может быть если мерить не относительно земли а относительно плюса питания.
Да нет, относительно земли тестером мерил... Да и ладно - лучшее главный враг хорошего:)
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
У Вас реле с инвертированным управлением: питание на обмотку реле попадает, когда на контакты управления (IN1 или IN2) подается низкий уровень (0).
Да нет, относительно земли тестером мерил... Да и ладно - лучшее главный враг хорошего:)
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
У Вас реле с инвертированным управлением: питание на обмотку реле попадает, когда на контакты управления (IN1 или IN2) подается низкий уровень (0).
Нет, специально померил - реле срабатывает при 1 на входе...
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
У Вас реле с инвертированным управлением: питание на обмотку реле попадает, когда на контакты управления (IN1 или IN2) подается низкий уровень (0).
Нет, специально померил - реле срабатывает при 1 на входе...
Что значит НЕТ? Вы дали ссылку в #2, а это именно реле с инвертированным управлением. Вы описание к этому реле читали?
Да что ж вы в чудеса новогодние не верите?!, а?
Можно и без ардуино. Берешь модуль на 4 реле, ко входу каждого реле подключаешь датчик. А нормально замкнутые контакты реле об единяешь паралельно и пускаешь на ревун.
достаточно 4 диода и одно реле
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль.
Вы это смотрите с подключенным реле или без?
Правда не пойму, отчего при команде digitalWrite(relay_pin, LOW); на выходе ардуины логическая единица, а при HIGH ноль. Но все работает:)
У Вас реле с инвертированным управлением: питание на обмотку реле попадает, когда на контакты управления (IN1 или IN2) подается низкий уровень (0).
Нет, специально померил - реле срабатывает при 1 на входе...
Что значит НЕТ? Вы дали ссылку в #2, а это именно реле с инвертированным управлением. Вы описание к этому реле читали?
Да ладно, проехали - стопудов я где то туплю:) Работает, да и ладно:)
Можно и без ардуино. Берешь модуль на 4 реле, ко входу каждого реле подключаешь датчик. А нормально замкнутые контакты реле об единяешь паралельно и пускаешь на ревун.
достаточно 4 диода и одно реле
А зачем тогда я всю эту конструкцию накрутил? Для расширения сознания видимо:) А если два реле? Просто параллельно включить второе?
А зачем тогда я всю эту конструкцию накрутил? Для расширения сознания видимо:) А если два реле? Просто параллельно включить второе?
А зачем два реле? Опять для расширения сознания?
Я для расширения сознания не реле, а кедровку использую. Рекомендую, очень спасопствует.
А зачем тогда я всю эту конструкцию накрутил? Для расширения сознания видимо:) А если два реле? Просто параллельно включить второе?
А зачем два реле? Опять для расширения сознания?
Ну я собирался ревун на второе прицепить:)
Но по ходу дела камера Сяоми на обычный рев не реагирует, даже на писк обычных пожарных извещателей тоже. Ей подавай писк фирменного датчика: https://ru.aliexpress.com/item/Xiaomi-Mijia-Honeywell/32890006304.html? Всвязи с чем без ардуинки не обойтись. Дописал скетч, чтобы пьезопищалка пищала фирменный алярм. Заодно доработал программу: теперь после срабатывания одного из датчиков реле отключается до перезагрузки, а пищалка пищит минимальное для срабатывания оповещения время, или пока сигнал с датчика приходит. Неказисто, но работает:)
Я для расширения сознания не реле, а кедровку использую. Рекомендую, очень спасопствует.
Кедровку я уже проходил, уж лучше реле. Да и Вам не советую:)
Скетч такой получается:
Я извиняюсь, но MQ-5 это датчик Метана и Природного газа (в котором метан от 70 до 98 %). Или у вас принтер метаном стол нагревает?
Очепятка. MQ-2 пользую. Но MQ-2 тоже довольно широкого спектра. На дым реагирует, но так же прекрасно реагирует на 3Д клей и аэрозоли всяческие. Поэтому приспособил сенсорную кнопочку, от которой запускается пауза скетча на пять минут - если надо что сделать, жму ее, и ковыряюсь. Чтобы не пищала система почем зря. А так все работает.