project with servo — Arduino Uno simulation

An interactive Arduino Uno circuit simulation you can run free in your browser on Velxio, by bella.

Components

Sketch code

#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
#include <Servo.h>

LiquidCrystal_PCF8574 lcd(0x27);
Servo myServo;

const int ledPin = 4;
const int servoPin = 9;
const int soilPin = A0;

void setup() {

  pinMode(ledPin, OUTPUT);

  Wire.begin();

  lcd.begin(16, 2);
  lcd.setBacklight(255);

  myServo.attach(servoPin);
  myServo.write(0);
}

void loop() {

  int soilValue = analogRead(soilPin);

  int moisturePercent = map(soilValue, 0, 1023, 0, 100);

  lcd.setCursor(0, 0);
  lcd.print("Soil: ");
  lcd.print(moisturePercent);
  lcd.print("%      ");


  // =========================
  // TANAH KERING
  // =========================
  if (moisturePercent < 40) {

    // LED menyala
    digitalWrite(ledPin, HIGH);

    lcd.setCursor(0, 1);
    lcd.print("Status: KERING  ");

    // Servo bergerak dari 0 ke 180 derajat
    for (int pos = 0; pos <= 180; pos++) {

      myServo.write(pos);

      delay(15);
    }

    delay(1000);

    // Servo kembali dari 180 ke 0 derajat
    for (int pos = 180; pos >= 0; pos--) {

      myServo.write(pos);

      delay(15);
    }

    delay(1000);
  }


  // =========================
  // TANAH BASAH
  // =========================
  else {

    // LED mati
    digitalWrite(ledPin, LOW);

    // Servo tetap di posisi 0 derajat
    myServo.write(0);

    lcd.setCursor(0, 1);
    lcd.print("Status: BASAH   ");

    delay(1000);
  }
}

More projects by bella