-
Notifications
You must be signed in to change notification settings - Fork 0
/
lcd_soil_2leds.ino
72 lines (55 loc) · 2.94 KB
/
lcd_soil_2leds.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* Використання гідрометра (давача вологості грунту)
* як сигналізатора стану вологості грунту
ввімкненням/вимкненням світлодіоду.
При високій вологості- світлодіод гасне.
При низькій вологості- світлодіод горить.*/
//задаємо номери аналогових і цифрових портів як константи
//перед номером аналогових портів ставимо букву "А",
//ІНАКШЕ ARDUINO сприйме їх як цифрові порти
#include <LiquidCrystal_I2C.h>
int redled = 10;//змінна з номером цифрового пІна світлодіода
int greenled = 11;
int hiro = A0; // давач вологості грунту аналоговий пін A5
LiquidCrystal_I2C lcd (0x27,16,2);
void setup() //процедура встановлення режиму роботи портів
{
lcd.begin (); // ініціалізація LCD
lcd.backlight (); // включаємо підсвічування
lcd.clear (); // очищення дисплея
pinMode(redled, OUTPUT);//вказуємо, що пін 10 світлодіода led - вихід
pinMode(greenled, OUTPUT);//вказуємо, що пін 11 світлодіода led - вихід
// Конфігуріруємо послідовне з'єднання з COM-портом
//на швидкості 1200 бод
Serial. begin ( 1200 );
}
void loop() //процедура виконання програми
{
// Одержуємо занчення стану вологості грунту
//з аналогового входу A0
lcd.clear (); // очищення дисплея
int x = analogRead(hiro);
//якщо показник вологості грунту менше 300,
//включаємо світлодіод
if (analogRead(hiro) > 300)
{
digitalWrite(greenled, LOW);
digitalWrite(redled, HIGH);
}
else
{
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH); //інакше вимикаємо світлодіод
}
// для того, щоб побачити показники давача
//(аналогові значення від 0 до 1023)
//через "монітор порту",напишемо блок програми:
// виведення даних з давача вологості грунту
//(аналогові значення від 0 до 1023)на монітор порту
Serial.print(x);
lcd.setCursor (1,0);
lcd.print(x);
// повернення каретки - перехід на новий рядок у вікні монітора
Serial.println("");
//пауза між появою значень освітленості на моніторі 500 мсек
delay(500);
}