Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите найти проблему с кодом Ардуино

Kaif Pro Ученик (90), открыт 4 часа назад
const int relayPin =5; // Пин реле
const int soilMoisturePin = A5; // Пин датчика влажности почвы
int soilMoistureValue = 0; // Переменная для хранения значения влажности почвы
int moistureThreshold = 1000; // Пороговое значение для влажности (настройте по необходимости)

void setup() {
pinMode(relayPin, OUTPUT); // Установка пина реле как выходного
Serial.begin(9600); // Инициализация последовательного монитора
}

void loop() {
soilMoistureValue = analogRead(soilMoisturePin); // Чтение значения с датчика
Serial.print("Значение влажности почвы: ");
Serial.println(soilMoistureValue); // Отладочный вывод

// Проверка уровня влажности
if (soilMoistureValue < moistureThreshold) {
digitalWrite(relayPin, HIGH); // Включить реле, если почва сухая (HIGH)
Serial.println("Почва сухая, реле включено.");
} else {
digitalWrite(relayPin, LOW); // Выключить реле, если почва влажная (LOW)
Serial.println("Почва влажная, реле выключено.");
}

delay(1000); // Задержка перед следующим считыванием
}
Код работает но реле не включается (в другом коде реле работает исправно)
В чем может быть ошибка
Код был написан нейросетью
помогите пожалуйста !
2 ответа
Лайт Ягами Искусственный Интеллект (316310) 4 часа назад
   // Проверка уровня влажности  
if (soilMoistureValue < moistureThreshold) {
digitalWrite(relayPin, HIGH); // Включить реле, если почва сухая (HIGH)
Serial.println("Почва сухая, реле включено.");
} else {
digitalWrite(relayPin, LOW); // Выключить реле, если почва влажная (LOW)
Serial.println("Почва влажная, реле выключено.");
}
Вот так не делай, если soilMoistureValue будет примерно равен moistureThreshold и дрожать, то реле начнёт щёлкать туда-сюда и может спалить подключённую к нему электронику.
Kaif ProУченик (90) 4 часа назад
А как тогда делать ? Я плохо знаю язык Ардуино можете пожалуйста написать неверный фрагмент правильно
Лайт Ягами Искусственный Интеллект (316310) Kaif Pro, с каким-нибудь допуском делать, к примеру, включать, когда отключено и меньше 400, и отключать, когда включено и больше 600 (цифры сам подбирай).
Беспрекословный Эксперт Мыслитель (7741) 4 часа назад
 const int relayPin = 5; // Пин реле  
const int soilMoisturePin = A5; // Пин датчика влажности почвы
int soilMoistureValue = 0; // Переменная для хранения значения влажности почвы
int moistureThreshold = 600; // Уточните пороговое значение для вашей почвы

void setup() {
pinMode(relayPin, OUTPUT); // Установка пина реле как выходного
Serial.begin(9600); // Инициализация последовательного монитора
digitalWrite(relayPin, LOW); // Убедитесь, что реле выключено при старте
}

void loop() {
soilMoistureValue = analogRead(soilMoisturePin); // Чтение значения с датчика
Serial.print("Значение влажности почвы: ");
Serial.println(soilMoistureValue); // Отладочный вывод

// Проверка уровня влажности
if (soilMoistureValue < moistureThreshold) {
digitalWrite(relayPin, HIGH); // Включить реле, если почва сухая (HIGH)
Serial.println("Почва сухая, реле включено.");
} else {
digitalWrite(relayPin, LOW); // Выключить реле, если почва влажная (LOW)
Serial.println("Почва влажная, реле выключено.");
}

delay(1000); // Задержка перед следующим считыванием
}
Если проблема сохраняется, попробуйте описать, какие показания вы видите в Serial Monitor, и мы поможем уточнить.
Похожие вопросы