hello,
Sorry for the delay,
my project is solar panel cleaning system which has a forward and reverse travelling mechanism and some replay operations. The point where i cant understand is how to manage codes when same "if" conditions occurred in several times in the code flow. (ex. limit1 will be HIGH two times in the cycle.)
Hear is the codes i compiled. Thanks and hope your kind help.
int reverse=2;
int limit2=3;
int limit1=4;
int brush=5;
int water=6;
int power=7;
int start=8;
int forward=9;
int buttonState=0;
int buttonState1=0;
int buttonState2=0;
void setup() {
pinMode(power, OUTPUT);
pinMode(start, INPUT);
pinMode(water, OUTPUT);
pinMode(brush, OUTPUT);
pinMode(limit1, INPUT);
pinMode(limit2, INPUT);
pinMode(forward, OUTPUT);
pinMode(reverse, OUTPUT);
Serial.begin(9600);
}
void loop() {
buttonState=digitalRead(start);
Serial.println(buttonState);
if(buttonState==HIGH){
digitalWrite(power,HIGH);
Serial.println("Power ON"); }
delay(1000);
digitalWrite(water,HIGH);
Serial.println("Water ON");
delay(1000);
digitalWrite(brush,HIGH);
Serial.println("Brush ON");
delay(1000);
buttonState1=digitalRead(limit1);
Serial.println(buttonState1);
if(buttonState1==HIGH){
digitalWrite(forward,HIGH);
Serial.println("Forward");}
delay(1000);
buttonState2=digitalRead(limit2);
Serial.println(buttonState2);
if(buttonState2==HIGH){
digitalWrite(forward,LOW);
delay(1000);
digitalWrite(reverse,HIGH);
Serial.println("Reverse");}
delay(1000);
if((buttonState2==LOW) && (buttonState1==HIGH)){ //till this point it is working well, after that it
// goes to previous if conditions
// if(buttonState1==HIGH){
//digitalWrite(forward,HIGH);
// Serial.println("Forward");}
digitalWrite(reverse,LOW);
Serial.println("Cleaning completed");}
delay(5000);
digitalWrite(brush,LOW);
Serial.println("Brush OFF");
digitalWrite(water,LOW);
Serial.println("Water OFF");
digitalWrite(power,LOW);
Serial.println("Power OFF");
}