Paso 2: Programar el microcontrolador
//-=-=-=-=-=-=-=-=-=-
#define SENSE_PIN 2
#define PULSE_PIN 3
#define FAN_PIN 5
#define FAN_DELAY 180000
#define FAN_RUN_TIME 180000
detectState boolean volátil;
void setup() {}
pinMode (13, salida);
pinMode (PULSE_PIN, salida);
pinMode (SENSE_PIN, entrada);
pinMode (FAN_PIN, salida);
digitalWrite (SENSE_PIN, LOW);
}
void loop() {}
testBeam();
Delay(1000);
}
void testBeam() {}
/*
En despertar, pulso el emisor de IR escuchando baja interrupción en el fototransistor.
Si fue bajo durante el pulso, algo bloquea el rayo, para activar el ventilador.
*/
detectState = true;
attachInterrupt (0 y beamInterrupt, cambio);
digitalWrite (PULSE_PIN, alto);
Delay(200); MS
detachInterrupt(0);
digitalWrite (PULSE_PIN, bajo);
Si (detectState) {}
digitalWrite (13, HIGH);
Delay(FAN_DELAY);
digitalWrite (FAN_PIN, alto);
Delay(FAN_RUN_TIME);
digitalWrite (FAN_PIN, bajo);
digitalWrite (13, bajo);
}
Delay(20);
}
void beamInterrupt() {}
detectState = false;
}
//-=-=-=-=-=-=-=-=-=-=-
Si está utilizando un Arduino Uno, Mini u otra Arduino compatible con USB, necesitará simplemente enchufe en, seleccione la junta adecuada en las herramientas -> menú tabla y haga clic en el botón "Subir". Sólo debe tomar unos segundos. Si la tabla tiene encabezados programación de estilo de la serie, usted necesitará utilizar un adaptador serial FTDI en su lugar. Probablemente estás usando una placa basada en el Duemillanove. Si no estás seguro de qué seleccionar en herramientas -> tabla, el fabricante de la placa probablemente puede decirle.
Para fines de creación de prototipos, querrás cambiar los valores para FAN_DELAY y FAN_RUN_TIME sobre algo mucho más pequeño. Recuerde que estos valores son en milisegundos (una milésima de segundo). Cuando se rompe el rayo y marcha el ventilador, cambiar el programa a los valores anteriores o lo que mejor adapte a usted (y su gato)