Automatisk desktop fan (7 / 7 steg)
Steg 7: Ladda upp koden
Vi också skrivas ut några etiketter för knappar att hålla reda på vilket en är där. Rekommenderas!
Ansluta till LightBlue Bean i Bean Loader och ladda upp denna skiss se till att alla knappar fungerar okej. Om inte du är bekant med hur man programmerar böna, kolla in våra starthjälp för OS X eller guide för Windows.
#define BUTTON3 3
#define BUTTON4 4
#define BUTTON5 5
void setup() {
pinMode (BUTTON3, INPUT_PULLUP);
pinMode (BUTTON4, INPUT_PULLUP);
pinMode (BUTTON5, INPUT_PULLUP);
Serial.BEGIN();
}
void loop() {
IF(!digitalRead(BUTTON3)) {
Serial.println ("knappen 1 har tryckt!");
}
annat if(!digitalRead(BUTTON4)) {
Serial.println ("knappen 2 har tryckt!");
}
annat if(!digitalRead(BUTTON5)) {
Serial.println ("knapp 3 har tryckt!");
}
Bean.Sleep(300);
}
Högerklicka på bönan och väljer "Använd för virtual serial" och öppna den seriella monitorn i din Arduino IDE. Det ska stå "Knappen X tryckte!" i följetong monitor när du trycker på knapparna.
Om knapparna verkar kopplas korrekt, låt oss ladda upp hela skissen!
/*
Skiss för automatisk fläkt med LightBlue Bean
Få full tutorial på Hackster.io.
*/
#define BUTTON_ON 3
#define BUTTON_OFF 5
#define BUTTON_AUTO 4
#define POWER_SWITCH_PIN 2
bool autoMode = sant;
bool fanIsOn = false;
int tempThreshold = 25;
void setup() {
pinMode (BUTTON_ON, INPUT_PULLUP);
pinMode (BUTTON_OFF, INPUT_PULLUP);
pinMode (BUTTON_AUTO, INPUT_PULLUP);
pinMode (POWER_SWITCH_PIN, OUTPUT);
Serial.BEGIN();
}
void loop() {
Om knappen på trycks och fläkten är avstängd
IF(!digitalRead(BUTTON_ON) & &! fanIsOn) {
digitalWrite (POWER_SWITCH_PIN, hög);
Bean.setLed(255,0,0);
Delay(100);
Bean.setLed(0,0,0);
fanIsOn = sant;
autoMode = false;
}
Om OFF knappen trycks och fläkten slås på
annat if(!digitalRead(BUTTON_OFF) & & fanIsOn) {
Stänga av fläkten
digitalWrite (POWER_SWITCH_PIN, låg);
Bean.setLed(255,0,0);
Delay(100);
Bean.setLed(0,0,0);
fanIsOn = false;
autoMode = false;
}
Om du trycker på auto-knappen
annat if(!digitalRead(BUTTON_AUTO)) {
Bean.setLed(255,0,0);
Delay(100);
Bean.setLed(0,0,0);
autoMode = sant;
}
IF(autoMode) {
Om temperaturen är över tröskeln men fläkten är avstängd
IF(Bean.getTemperature() > tempThreshold & &! fanIsOn) {
Slå på fläkten
digitalWrite (POWER_SWITCH_PIN, hög);
fanIsOn = sant;
Lämna den på 30 sekunder
Delay(30000);
}
Om temperaturen är under tröskeln och fläkten är på
annat if(Bean.getTemperature() < = tempThreshold & & fanIsOn) {
Stänga av fläkten
digitalWrite (POWER_SWITCH_PIN, låg);
fanIsOn = false;
}
}
Bean.Sleep(500);
}
Fläkten ska nu slå på när temperaturen är över 25° C, och bo i minst 30 sekunder eller tills du har svalnat till din normala själv.