-
Notifications
You must be signed in to change notification settings - Fork 0
/
LCD_SOIL.ino
117 lines (83 loc) · 4.48 KB
/
LCD_SOIL.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//Підключення LCD дисплеїв 1602 до шини I2C
/* Використання гідрометра (давача вологості грунту)
* як сигналізатора стану вологості грунту
ввімкненням/вимкненням світлодіоду.
При високій вологості- світлодіод гасне.
При низькій вологості- світлодіод горить.*/
//задаємо номери аналогових і цифрових портів як константи
//перед номером аналогових портів ставимо букву "А",
//ІНАКШЕ ARDUINO сприйме їх як цифрові порти
//Підключення бібліотек
#include <Wire.h> //
#include <LiquidCrystal_I2C.h>
// встановлюємо адресу 0x27(або іншу: 0x20,0x3F), і дисплей 16 символів
//в 2 рядки (16х2)
LiquidCrystal_I2C lcd (0x27,16,2);
// змінна для збереження даних про час роботи LCD
int interval = 0;
int greenled = 10; //змінна з номером цифрового пІна світлодіода
int redled = 11; //змінна з номером цифрового пІна світлодіода
int hiro = A0; // давач вологості грунту аналоговий пін A5
void setup() //процедура встановлення режиму роботи портів
{
//pinMode(led, OUTPUT);//вказуємо, що пін 10 світлодіода led - вихід
// Конфігуріруємо послідовне з'єднання з COM-портом
//на швидкості 1200 бод
Serial. begin ( 9600 );
lcd.begin (); // ініціалізація LCD
lcd.backlight (); // включаємо підсвічування
lcd.clear (); // очищення дисплея
}
void loop() //процедура виконання програми
{
lcd.clear (); // очищення дисплея
// Одержуємо занчення стану вологості грунту
//з аналогового входу A0
int x = analogRead(hiro);
//якщо показник вологості грунту менше 300,
//включаємо світлодіод
if (analogRead(hiro) > 300)
{
digitalWrite(redled, HIGH);
digitalWrite(greenled, LOW);
}
else
{
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
}
// else digitalWrite(led, LOW); //інакше вимикаємо світлодіод
// для того, щоб побачити показники давача
//(аналогові значення від 0 до 1023)
//через "монітор порту",напишемо блок програми:
// виведення даних з давача вологості грунту
//(аналогові значення від 0 до 1023)на монітор порту
lcd.setCursor (1, 0);// встановлюємо курсор на 2-й рядок, 8 символ
lcd.print(x);
Serial.print(x);
// повернення каретки - перехід на новий рядок у вікні монітора
Serial.println("");
//пауза між появою значень освітленості на моніторі 500 мсек
delay(1000);
}
/*
void setup ()
{
lcd.begin (); // ініціалізація LCD
lcd.backlight (); // включаємо підсвічування
lcd.clear (); // очищення дисплея
lcd.setCursor (4,0); // встановлюємо курсор на 4-й символ(позначений 4), 1-й рядок(позначений 0)
lcd.print ("ARDUINO"); // вивід напису в 1-му рядку
lcd.setCursor (1, 1); // встановлюємо курсор на 1-й символ(позначений 1), 2-й рядок(позначений 1)
lcd.print ( "count:");// вивід напису в 2-му рядку
lcd.setCursor (8, 1); // встановлюємо курсор на 2-й рядок, 8 символ
lcd.print (interval);// вивід часу роботи дисплея
}
void loop ()
{
delay (500);
interval ++;//зчитуємо поточний час
lcd.setCursor (8, 1);// встановлюємо курсор на 2-й рядок, 8 символ
lcd.print (interval);// вивід часу роботи дисплея
}
*/