I got an "Arduino Uno Kit" from a store called Mikroelectron. I'm using the packaged Arduino Uno R3 with the packaged 16x2 LCD, and I connected it with a Capacative Soil Moisture Sensor v1.2.
This is my code:
#include <LiquidCrystal.h>
const int greenled = 12;
const int redled = 11;
const int sensorpin = A0;
const int sensorpower = 8;
const int pump = 9;
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int reading;
int reverse(int num, int start, int end) {
return end - num + start;
}
void setup() {
// put your setup code here, to run once:
pinMode(greenled, OUTPUT);
pinMode(redled, OUTPUT);
pinMode(sensorpower, OUTPUT);
delay(2000);
lcd.begin(16,2);
lcd.setCursor(0, 0);
lcd.print("hello");
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(greenled, LOW);
digitalWrite(redled, LOW);
digitalWrite(sensorpower, HIGH);
delay(100);
reading = analogRead(sensorpin);
Serial.println("Reading unmapped:");
Serial.print(reading);
Serial.println();
if (reading >= 870) {
reading = 870;
}
if (reading <= 760) {
reading = 760;
}
reading = map(reading, 760, 870, 0, 100);
Serial.println("Reading mapped:");
Serial.print(reading);
Serial.println();
reading = reverse(reading, 0, 100);
delay(25);
Serial.println("Reading mapped reversed:");
Serial.print(reading);
Serial.println();
delay(10);
digitalWrite(sensorpower, LOW);
if (reading > 57) {
digitalWrite(greenled, HIGH);
} else {
digitalWrite(redled, HIGH);
// analogWrite(pump, 210);
}
delay(500);
// digitalWrite(pump, LOW);
delay(1000);
}
edit:
I checked my pins and some of them dont give voltage, very weird