Selasa, 28 Mei 2019

sensor hujan dan ldr motor siepper

//smart dying
const int pinLDR = A0;
const int pinRS = A1;
int LEDa = 7;                      //variabel LED
int LEDb = 6;
int LEDc = 5;
int LEDd = 4;
int x=0;
int C1=8;                         //variabel motor stepper
int C2=9;
int C3=10;
int C4=11;

int step = 25;                    //Kecepatan putaran Motor Stepper
int delaytime = 2;

void setup() {
  Serial.begin(9600);
  pinMode(pinLDR,INPUT);          //masukan Led
  pinMode(pinRS,INPUT);           //masukan RS
  pinMode(LEDa,OUTPUT);           // keluaran lampu Merah (1) tanda Gelap
  pinMode(LEDb,OUTPUT);           // keluaran lampu Hijau (1) tanda Cerah
  pinMode(LEDc,OUTPUT);           // keluaran lampu Merah (2) tanda Hujan
  pinMode(LEDd,OUTPUT);           // keluaran lampu Hijau (2) tanda Tidak Hujan
  pinMode(C1,OUTPUT);
  pinMode(C2,OUTPUT);
  pinMode(C3,OUTPUT);
  pinMode(C4,OUTPUT);
}

float total;
int dataLDR=0;                    // data LDR dimulai dari 0
int dataRS=0;                     // data RS dimulai dari 0

void loop (){
  dataLDR = analogRead(pinLDR);               // data LDR dibaca dari pin analog LDR
  if(dataLDR>400) {digitalWrite(LEDa,HIGH);}  // lampu merah (1) menyala apabila nilai LDR >400 (Gelap)
  else            {digitalWrite(LEDa,LOW);}   // lampu hijau (1) mati apabila nilai LDR <400 (Cerah)
 Serial.print("Data LDR = ");                 // tampilan data LDR di monitor
 Serial.println(dataLDR);                     // Nilai dari data LDR yang akan ditampilkan
  if(dataLDR<400) {digitalWrite(LEDb,HIGH);}  // lampu hijau (1) menyala apabila nilai LDR <400 (Cerah)
  else            {digitalWrite(LEDb,LOW);}   // lampu hijau (1) mati apabila nilai LDR >400 (Gelap)
  
 dataRS= analogRead(pinRS);                   // data sensor hujan yang dibaca dari pin analog RS
  if(dataRS<900) {digitalWrite(LEDc,HIGH);}   // lampu merah (2) menyala apabila nilai RS <900 (Hujan)
  else            {digitalWrite(LEDc,LOW);}   // lampu merah (2) mati apabila nilai RS >900 (Tidak Hujan)
 Serial.print("Data RS = ");                  // tampilan data RS di monitor
 Serial.println(dataRS);                      // Nilai dari data RS yang akan ditampilkan
  if(dataRS>900) {digitalWrite(LEDd,HIGH);}   // lampu hijau (2) menyala apabila nilai RS >900 (Tidak Hujan)
  else            {digitalWrite(LEDd,LOW);}   // lampu hijau (2) mati apabila nilai RS <900 (Hujan)
total = (dataRS - (dataLDR+600));
 Serial.print("total ");
 Serial.println(total);
  if (total<-10)
  { if (x==1){
 Serial.print("jemuran keluar");
 for (int i=0; i<2000; i++)
 {mundur(); } x=0;}
}
else if (total>-10)
{ if(x==0) {
 Serial.println("jemuran masuk");
 for (int i=0; i<2000; i++)
 { maju(); } x=1;} 
}

delay(1000);}

void mundur(){
  step4();
  delay(delaytime);
  step3();
  delay(delaytime);
  step2();
  delay(delaytime);
  step1();
  delay(delaytime);
}
void maju(){
  step1();
  delay(delaytime);
  step2();
  delay(delaytime);
  step3();
  delay(delaytime);
  step4();
  delay(delaytime);
}
void step1(){
  digitalWrite(C1,LOW);
  digitalWrite(C2,LOW);
  digitalWrite(C3,HIGH);
  digitalWrite(C4,HIGH);}
void step2(){
  digitalWrite(C1,HIGH);
  digitalWrite(C2,LOW);
  digitalWrite(C3,LOW);
  digitalWrite(C4,HIGH);}
void step3(){
  digitalWrite(C1,HIGH);
  digitalWrite(C2,HIGH);
  digitalWrite(C3,LOW);
  digitalWrite(C4,LOW);}
void step4(){
  digitalWrite(C1,LOW);
  digitalWrite(C2,HIGH);
  digitalWrite(C3,HIGH);
  digitalWrite(C4,LOW);}

Tidak ada komentar:

Posting Komentar