Paso 7: Código de carga
Nosotros también imprimir algunas etiquetas de los botones para hacer un seguimiento de que es que. ¡ Recomendado!
Conectarse el LightBlue Bean en frijol cargador y cargar este bosquejo para asegurarse de que todos los botones funcionan bien. Si no está familiarizado con el programa de la haba, consulte nuestra Introducción Guía para OS X o la Guía para 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); }
Haga clic derecho sobre el grano y seleccione "Uso para la serie virtual" y abra al monitor de serie en el IDE de Arduino. Debe decir "Botón X presionado!" en el serial monitor al pulsar los botones.
Si los botones parecen conectarse correctamente, vamos a subir el sketch completo!
/* 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); }
El ventilador debe girar cada vez que la temperatura es de más de 25° C y permanecer en al menos 30 segundos o hasta que haya enfriado a su uno mismo normal.