În acest proiect, vom folosi Arduino pentru a obține date de la senzorul de umiditate a solului și afișați umiditatea pe ecranul LCD de 16 × 2.
Conexiunile:
| Arduino UNO | Senzor umiditate |
| D3 | DO |
| A0 | AO |
| 5V | VCC |
| GND | GND |
| Arduino UNO | I2C 1602 LCD |
| A5(SCL) | SCL |
| A4(SDA) | SDA |
| 5V | VCC |
| GND | GND |
Schema conexiunii este prezentată mai jos și respectiv codul este adaptat la acești parametri.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
String str;
int oldmos=-1;
LiquidCrystal_I2C lcd(0x27,16,2); // daca aveti o alta adresa al LCD I2C decat 0x27 , schimbati cu adresa pe care o aveti (spre exemplu 0x3f)
void setup()
{
Serial.begin(9600);
pinMode(3,INPUT);
pinMode(13,OUTPUT);
lcd.init(); // initializarea LCDului
lcd.backlight();
}
void loop()
{
int soil_mos;
soil_mos=1023-analogRead(0);//obtinerea datelor de la senzor pe pinul A0
soil_mos=map(soil_mos, 0, 1023, 0, 100); //conversia datelor analogice in digitale
if (oldmos!=soil_mos) {
// afisarea pe ecran LCD
lcd.setCursor(0,0);
lcd.print("Umiditatea solului:");
lcd.print(soil_mos);
lcd.print("%");
}
}
Schema proiectului
Descarcă biblioteca ↓