Stap 9: Arduino Code
Pinnenint dir = 2;
int macht = 3;
int captor = 4;
Reed switch rietschakelaar
int captorVal = 0;
Analoge pin te lezen scherm naar beneden
int screenDown = 0;
int screenDownVal = 0;
Analoge pin te lezen scherm
int screenUp = 1;
int screenUpVal = 0;
String screenState; Projector scherm staat
String blindState; Blind staat
Boolean drukke = false;
VOID Setup {}
initialiseren van de pinnen
pinMode (macht, uitvoer);
pinMode (dir, OUTPUT);
pinMode (captor, INPUT);
Lees reed switch waarde tijdens setup
delay(100);
captorVal = digitalRead(captor);
delay(100);
De blindState instellen op setup
Als (captorVal == LOW) {}
blindState = "omhoog";
} else {}
blindState = "down";
}
Logger
Serial.begin(9600);
}
void loop {}
Projector scherm waarden lezen
screenDownVal = analogRead(screenDown);
screenUpVal = analogRead(screenUp);
Als (screenUpVal > 1000 & & screenDownVal > 1000) {}
Serial.println ("Screen module is OFF!");
screenState = "off";
} else if (screenUpVal < 200 & & screenDownVal < 200) {}
screenState = "stop";
} else if (screenUpVal > 1000 & & screenDownVal < 200) {}
screenState = "omhoog";
} else if (screenDownVal > 1000 & & screenUpVal < 200) {}
screenState = "down";
}
refreshBlindMotor(screenState);
delay(100);
}
ongeldig refreshBlindMotor() {}
Serial.println(blindState);
Scherm gaat omhoog en blind is naar beneden (en blind is niet druk)
Als (screenState == "up" & & blindState == "down" & & drukke == false) {}
De blind!
drukke = true;
blindUp();
Scherm naar beneden en blind is (en blind is niet druk)
} else if (screenState == "down" & & blindState == "up" & & drukke == false) {}
ONDERAAN de blind!
drukke = true;
blindDown();
} else if (screenState == "stop") {}
TODO: stop de blind?
}
}
ongeldig blindUp() {}
Motor op + omhoog
digitalWrite (kracht, hoge);
digitalWrite (dir, hoge);
Terwijl reed switch rietschakelaar niet betrokken
captorVal = digitalRead(captor);
terwijl (captorVal == HIGH) {}
captorVal = digitalRead(captor);
Serial.println ("Waiting for the blind te bereiken de ver omhoog positie...");
delay(100);
}
We kregen uit de while lus,
We kunnen de blinde stoppen
halt();
blindState = "omhoog";
drukke = false;
Serial.println ("Blind is UP!");
}
ongeldig blindDown() {}
ON motor + omlaag
digitalWrite (kracht, hoge);
digitalWrite (dir, laag);
Tijd is neemt voor de blind naar beneden
delay(18000);
Stop de blind
halt();
blindState = "down";
drukke = false;
Serial.println ("Blind is ingedrukt!");
}
ongeldig halt() {}
Gesneden macht aan blind motor
digitalWrite (kracht, LOW);
Serial.println ("Blind is gestopt!");
}