Ви не увійшли.
Сторінки 1
Ось сама плата, а праворуч сервопривід. В моєму випадку він просто прокручується коли на нього подається сигнал (схема з інтернету)
Вперше працюю з Ардуїно і роблю автоматичну систему поливу рослин в tinkercad. Підключив екран, датчик вологості та сервопривід який імітує кран для поливу.
Потрібно, щоб він включався при вологості в 20% чи меньше і при досягнені вологості в 75% вимикався до моменту, поки вологість знову не буде 20 чи меньше відсотків.
Проблема: при зміні параметрів на датчику вологості привід не перестає працювати після свого включення (тобто якщо він один раз запуститься, потім не вимикається).
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // Піни підключення LCD монітора
int sensorPin = A0; // Пін, до якого підключено датчик вологості
int servoPin = 8; // Пін, до якого підключено сервопривід
int threshold = 20; // Порогове значення для рівня вологості
int dryAngle = 0; // Кут повороту сервоприводу при сухому ґрунті
int wetAngle = 180; // Кут повороту сервоприводу при вологому ґрунті
void setup() {
lcd.begin(16, 2); // Ініціалізація LCD монітора
lcd.print("Humidity:"); // Виведення заголовка на моніторі LCD
pinMode(servoPin, OUTPUT); // Встановлюємо пін сервоприводу на висновок
// Настроюємо швидкість передачі даних для датчика вологості
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(sensorPin); // Зчитуємо значення з датчика вологості
int humidity = map(sensorValue, 0, 1023, 0, 100); // Перетворюємо вологість у відсотки
lcd.setCursor(0, 1); // Встановлюємо курсор на другий рядок
lcd.print(" "); // Очищаємо попереднє значення вологості
lcd.setCursor(0, 1); // Встановлюємо курсор на другий рядок
lcd.print(humidity); // Виводимо поточний рівень вологості
if (humidity > threshold) { // Якщо рівень вологості вищий за порогове значення
digitalWrite(servoPin, HIGH); // Включаємо сервопривід
} else {
digitalWrite(servoPin, LOW); // Вимикаємо сервопривід
}
delay(1000); // Затримка між вимірами
}
Сторінки 1