Étape 7: Code d’Upload
Nous également imprimé quelques étiquettes pour les boutons de garder une trace de qui est qui. Recommandé !
Connectez-vous à la LightBlue Bean en haricot Loader et télécharger cette esquisse pour s’assurer que tous les boutons fonctionnent très bien. Si vous n’êtes pas familier avec la programmation de la fève, consultez notre guide pour OS X de démarrage ou le guide pour 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("Button 1 has been pressed!"); } else if(!digitalRead(BUTTON4)){ Serial.println("Button 2 has been pressed!"); } else if(!digitalRead(BUTTON5)){ Serial.println("Button 3 has been pressed!"); } Bean.sleep(300); }
Faites un clic droit sur la fève et choisissez « Utiliser pour série virtuel » et ouvrez le moniteur série dans votre IDE Arduino. Il devrait dire « Touche X enfoncée! » dans le moniteur de la série lorsque vous appuyez sur les boutons.
Si les boutons semblent être câblé correctement, nous allons télécharger le croquis complet !
/* Sketch for automatic fan using the LightBlue Bean Get the full tutorial at Hackster.io. */ #define BUTTON_ON 3 #define BUTTON_OFF 5 #define BUTTON_AUTO 4 #define POWER_SWITCH_PIN 2 bool autoMode = true; 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() { // If the ON button is pressed and fan is turned off if(!digitalRead(BUTTON_ON) && !fanIsOn){ digitalWrite(POWER_SWITCH_PIN, HIGH); Bean.setLed(255,0,0); delay(100); Bean.setLed(0,0,0); fanIsOn = true; autoMode = false; } // If the OFF button is pressed and the fan is turned on else if(!digitalRead(BUTTON_OFF) && fanIsOn){ // Turn off the fan digitalWrite(POWER_SWITCH_PIN, LOW); Bean.setLed(255,0,0); delay(100); Bean.setLed(0,0,0); fanIsOn = false; autoMode = false; } // If the auto button is pressed else if(!digitalRead(BUTTON_AUTO)){ Bean.setLed(255,0,0); delay(100); Bean.setLed(0,0,0); autoMode = true; } if(autoMode){ // If the temperature is over the threshold but the fan is off if(Bean.getTemperature() > tempThreshold && !fanIsOn){ // Turn on the fan digitalWrite(POWER_SWITCH_PIN, HIGH); fanIsOn = true; // Leave it on for 30 seconds delay(30000); } // If the temperature is under the threshold and the fan is on else if(Bean.getTemperature() <= tempThreshold && fanIsOn){ // Turn off the fan digitalWrite(POWER_SWITCH_PIN, LOW); fanIsOn = false; } } Bean.sleep(500); }
Le ventilateur doit tourner sur chaque fois que la température est supérieure à 25° C et rester allumé pendant au moins 30 secondes ou jusqu'à ce que vous avez vous-même normal.