I’m using arduino and relay module to change state of sensor(ACS712).
I’ll send value 0 and 1. If send 0 value, state data become 0 and relay stop the module. If send 1 value, state data become 1 and relay start the module.
when I run the program and enter value 0, it works good. But if I enter value 1, data changes 10 and not change to 0 even if I enter 0 value. Where is the error…? I cant find it. This is my code.
`void loop(){
Serial.println(data);
if(data=='1') {
start_time = millis();
digitalWrite(Relay,HIGH);
now_time = millis();
if(Serial.available()>0) Serial.read();
while(now_time-start_time<1000) {
now_time = millis();
if(Serial.available()>0) {
data = Serial.read();
if(data=='0') {
Serial.println("You input the OFF");
digitalWrite(Relay,LOW);
return ;
}
}
}
value = analogRead(cur_pin);
amp = abs(((value-511)5/0.185)/1024);
Serial.print(amp);
Serial.println("A");
Serial.print("P : ");
Serial.println(220amp);
bluetooth.print("P : ");
bluetooth.println(220amp);
bluetooth.println(" ");
start_time = now_time;
if(ptr==SIZE) ptr = 0;
store[ptr++] = 220amp;
bluetooth.print("S : ");
for(int i=0;i<ptr;i++) {
bluetooth.print(store[i]);
bluetooth.print(" ");
}
bluetooth.println();
while(Serial.available()>0) Serial.read();
}
void loop(){
Serial.println(data);
if(data=='1') {
start_time = millis();
digitalWrite(Relay,HIGH);
now_time = millis();
if(Serial.available()>0) Serial.read();
while(now_time-start_time<1000) {
now_time = millis();
if(Serial.available()>0) {
data = Serial.read();
if(data=='0') {
Serial.println("You input the OFF");
digitalWrite(Relay,LOW);
return ;
}
}
}
value = analogRead(cur_pin);
amp = abs(((value-511)*5/0.185)/1024);
Serial.print(amp);
Serial.println("A");
Serial.print("P : ");
Serial.println(220*amp);
bluetooth.print("P : ");
bluetooth.println(220*amp);
bluetooth.println(" ");
start_time = now_time;
if(ptr==SIZE) ptr = 0;
store[ptr++] = 220*amp;
bluetooth.print("S : ");
for(int i=0;i<ptr;i++) {
bluetooth.print(store[i]);
bluetooth.print(" ");
}
bluetooth.println();
while(Serial.available()>0) Serial.read();
}
if(Serial.available()>0) {
data = Serial.read();
if(data == '0') {
Serial.println("LOW");
digitalWrite(Relay, LOW);
}else if(data=='1') {
start_time = millis();
digitalWrite(Relay,HIGH);
now_time = millis();
if(Serial.available()>0) Serial.read();
while(now_time-start_time<1000) {
now_time = millis();
if(Serial.available()>0) {
data = Serial.read();
if(data=='0') {
Serial.println("You input the OFF");
digitalWrite(Relay,LOW);
return ;
}
}
now_time = millis();
}
value = analogRead(cur_pin);
amp = abs(((value-511)*5/0.185)/1024);
Serial.print(amp);
Serial.println("A");
Serial.print("P : ");
Serial.println(220*amp);
bluetooth.print("P : ");
bluetooth.println(220*amp);
bluetooth.println(" ");
start_time = now_time;
if(ptr==SIZE) ptr = 0;
store[ptr++] = 220*amp;
bluetooth.print("S : ");
for(int i=0;i<ptr;i++) {
bluetooth.print(store[i]);
bluetooth.print(" ");
}
bluetooth.println();
while(Serial.available()>0) Serial.read();
}
}
delay(100);
}