Помогите написать скетч автовключения и выключения аудио усилителя

xmumik
Offline
Зарегистрирован: 02.10.2017

Помогите написать скетч, я новичок первый проект

Идея заключается в автоматическом включении и выключении аудио усилителя 2.1

По входящему аудио сигналу аукс

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

Для переключения в аукс  надо нажать кнопку  AUX SW с задержкой в 5 секунд после включения усилителя

 Реализовать планирую так, схему набросал

Ардуинка к ней

подключаем 2 реле  на выходы Д2 и Д3

подключаем датчик звука к выходу Д12

Алгоритм работы такой

1 Ардуинка в дежурке

 2 подаем сигнал аукс, датчик распознает

3 ардуинка включает  и держит 1 реле (питание усилителя)

4 через 5 секунд кратковременно включает 2 реле (переключение в режим аукс)

5 при отключении сигнала аукс через 15 минут, 1 реле отключается

 цикл повторяется

 Прошу помощи в реализации

xmumik
Offline
Зарегистрирован: 02.10.2017
const int sensorD0 = 12;  // Пин Arduino к которому подключен выход D0 датчика zvuka
const int relay1 = 2; // Пин Arduino к которому подключен rele1
const int relay2 = 3; // Пин Arduino к которому подключен rele2
 
void setup (){

pinMode(relay1, OUTPUT); // устанавливаем цифровой пин 2 в режим выхода
digitalWrite(relay1, HIGH); // Выключаем реле - посылаем высокий сигнал
pinMode(relay2, OUTPUT); // устанавливаем цифровой пин 3 в режим выхода
digitalWrite(relay2, HIGH); // Выключаем реле - посылаем высокий сигнал

}
 
void loop ()
{
int sensorValue = digitalRead(sensorD0); // получаем сигнал с датчика

if (sensorValue > 0.5) //если порог громкости достигнут и светодиод был ВЫКЛЮЧЕН
{
digitalWrite(relay1, LOW); // включаем rele1
delay(1000);

}
if (sensorValue < 0.1) //если порог громкости достигнут и светодиод был ВЫКЛЮЧЕН
{
digitalWrite(relay1, HIGH); // включаем rele1
}
}

 

xmumik
Offline
Зарегистрирован: 02.10.2017

набросал только это

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ну, и чо не так работает?

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DetSimen пишет:

ну, и чо не так работает?

А Вы посмотрите на строки 18 и 24, а потом на описание переменной в строке 16 :)

sadman41
Offline
Зарегистрирован: 19.10.2016

Так набросал же, не отлаживал. Отладкой форум занимается, топикстартерам некогда...

xmumik
Offline
Зарегистрирован: 02.10.2017

Пытаюсь разобраться , во первых по истечении таймера dalay кратковременно 1 реле размыкается и снова смыкается так как звук на входе присутствует. Во вторых второе реле в скетче незадейстаовано так как незнаю как правильно написать алгоритм. За помощь могу отблагодарить не думал что будет один сарказм, а не помощь.

sadman41
Offline
Зарегистрирован: 19.10.2016

Я тоже не думал, когда регистрировался, что придется за каждого второго скетчи писать...

b707
Offline
Зарегистрирован: 26.05.2017

xmumik пишет:
не думал что будет один сарказм, а не помощь.

заканчивайте тупить. вам уже даже строчки указали с ошибками - если это "один сарказм, а не помощь" - обратитесь в армию спасения.

Если вам лень даже готовые ответы внимательно прочитать, то представляете как нам лень изо дня в день учить таких, как вы?

xmumik
Offline
Зарегистрирован: 02.10.2017

Все равно непонял, ошибка в том что с цифрового выхода можно принимать только ответы в виде 0 и 1

14
void loop ()
15
{
16
int sensorValue = digitalRead(sensorD0); // получаем сигнал с датчика
17
 
18
if (sensorValue >= 1) //если порог громкости достигнут и светодиод был ВЫКЛЮЧЕН
19
{
20
digitalWrite(relay1, LOW); // включаем rele1
21
delay(1000);
22
 
23
}
24
if (sensorValue <= 0) //если порог громкости достигнут и светодиод был ВЫКЛЮЧЕН
25
{
 перенес тему в ищу исполнителя здесь можно удалить

 

xmumik
Offline
Зарегистрирован: 02.10.2017
перенес тему в ищу исполнителя здесь можно удалить