#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8); //data untuk
double ACSoffset=2.5;
double sensor=0.205;
double current=0;
double voltage=0;
int set_time(100);
char set_current(3);
const int relay=7;
const int led=6;
const int PB=5;
String motion;
void setup() {
Serial.begin (11600);
pinMode(relay, OUTPUT);
pinMode(led, OUTPUT);
pinMode(PB, INPUT);
lcd.begin(20,4);
lcd.setCursor(0,0);
lcd.print(" Current Sensor ");
lcd.setCursor(0,1);
lcd.print("p = start s = stop");
Serial.println("ketik 'p' untuk run, dan 's' untuk stop");
}
void loop() {
unsigned long ACC=millis();
motion = Serial.readString();
double value=analogRead(A0);
voltage=(value*5.0/1023);
current=(voltage-ACSoffset)/sensor;
lcd.setCursor(0,2);
lcd.print("Arus=");
lcd.print(current);
lcd.print(" A");
if (digitalRead(led)==LOW && current <= 0.50 ){
lcd.setCursor(0,3);
lcd.print(" Ready ");
}
else{
lcd.setCursor(0,3);
lcd.print(" Over Current ");
}
if (motion=="p" && digitalRead(led)==LOW){
digitalWrite(relay, HIGH);
lcd.setCursor(0,3);
lcd.print(" ACC ");
delay(20);
}
if (current > 0.50 && current < set_current ){
lcd.setCursor(0,3);
lcd.print(" Running ");
}
if (current > set_current ){
digitalWrite (relay, LOW);
digitalWrite (led, HIGH);
}
if (motion=="s"){
digitalWrite(relay, LOW);
}
if (motion=="r"){
digitalWrite(relay, LOW);
digitalWrite(led, LOW);
}
}