Всем привет! Нужна помощь по скетчу для ардуино и датчика уровня воды вот такого Нужно что бы при определённых значениях включалось реле ,и при других значениях выключалась Есть такой код Код (C++): // контакт подключения аналогового выхода датчика int aPin=A5; // контакт подключения вывода реле // переменная для сохранения значения датчика int avalue=0; // значение уровней int levels[3]={600,500,400}; // текущий уровень int level=0; void setup() { pinMode(4, OUTPUT); // объявляем пин 3 как выход // инициализация последовательного порта Serial.begin(9600); // настройка выводов индикации светодиодов // в режим OUTPUT digitalWrite(4, HIGH); } void loop() { // получение значения с аналогового вывода датчика avalue=analogRead(aPin); // вывод значения в монитор последовательного порта Arduino Serial.print("avalue=");Serial.println(avalue); // вывод звука различной частоты для разных уровней погружения if(avalue>levels[0]) digitalWrite(4, LOW); else if(avalue>levels[1]) digitalWrite(4, LOW); else if(avalue>levels[2]) digitalWrite(4, LOW); else // пауза перед следующим получением значения 1000 мс LOW } Помогите пожалуйста
А таки что вам мешает сюда ввести нужные вам значения Код (C++): int levels[3]={600,500,400}; Создать новый пин для реле (смотря как оно управляется, низким или высоким уровнем) И таки дописать нужные вам действия сюда Код (C++): if(avalue>levels[0]) digitalWrite(4, LOW); else if(avalue>levels[1]) digitalWrite(4, LOW); else if(avalue>levels[2]) digitalWrite(4, LOW); Или же изменив условия, на те что вам нужно. У вас же готовый скетч.
Странно если верить скетчу, она должна быть потушена). Конечно можно и написать скетч, в данном случае это легко. ( Хотя нужно четкое задание, при каких пороговых значениях, или промежутков, что должно происходит. Тип реле) от какой интерес вам тогда будет. Начните с самого начала, инициализации пинов, установкой их на ввод вывод. Поморгайте светодиодом. Потом вернётесь к вашей задаче. Заодно составьте на бумажке условия при каких значениях что должно происходить. Так будет удобнее, я так думаю.
У вас инициализирован только 4 цифровой пин на выход. Как подсказывает мой хрустальный шар, к нему и подключен светодиод. Вам нужно инициализировать ещё один пин на выход или подключить реле к вашему 4 пину
Да, половина комментариев в коде у вас отличается от написанного .... насколько я понял задачу Код (C++): // контакт подключения аналогового выхода датчика #define DATCHIK A4 // контакт подключения вывода реле #define RELE 3 // контакт подключения вывода светодиода #define LED 13 // нижний уровень включения #define LOW_LEVEL 500 // верхний уровень #define HIGH_LEVEL 900 void setup() { pinMode(RELE, OUTPUT); // объявляем пин Реле как выход pinMode(LED, OUTPUT); // объявляем пин Светодиод как выход // инициализация последовательного порта Serial.begin(9600); } void loop() { // получение значения с аналогового датчика int avalue=analogRead(DATCHIK); // вывод значения в монитор последовательного порта Arduino Serial.print("avalue = "); Serial.println(avalue); // включение реле и индикации при нужном уровне показаний датчика if (avalue >= LOW_LEVEL && avalue <= HIGH_LEVEL) { digitalWrite(LED, HIGH); digitalWrite(RELE, HIGH); } else { digitalWrite(LED, LOW); digitalWrite(RELE, LOW); } // пауза перед следующим получением значения 1000 мс delay(1000); } Если датчик показывает от LOW до HIGH то реле включено, иначе выключено Если реле включается низким уровнем, то меняйте местами HIGH и LOW