Bygga en katt skräp låda fläkt med Arduino (2 / 5 steg)
Steg 2: Programmera mikrokontroller
//-=-=-=-=-=-=-=-=-=-
#define SENSE_PIN 2
#define PULSE_PIN 3
#define FAN_PIN 5
#define FAN_DELAY 180000
#define FAN_RUN_TIME 180000
flyktiga boolean detectState;
void setup() {
pinMode (13, OUTPUT);
pinMode (PULSE_PIN, OUTPUT);
pinMode (SENSE_PIN, indata);
pinMode (FAN_PIN, OUTPUT);
digitalWrite (SENSE_PIN, låg);
}
void loop() {
testBeam();
Delay(1000);
}
void testBeam() {
/*
På Väckning, pulse IR-sändare medan du lyssnar en låg avbrott på fototransistor.
Om det var låg under pulsen, något blockerat balken, så aktivera fläkten.
*/
detectState = sant;
attachInterrupt (0, & beamInterrupt, ändra);
digitalWrite (PULSE_PIN, hög);
Delay(200); MS
detachInterrupt(0);
digitalWrite (PULSE_PIN, låg);
om (detectState) {
digitalWrite 13, hög.
Delay(FAN_DELAY);
digitalWrite (FAN_PIN, hög);
Delay(FAN_RUN_TIME);
digitalWrite (FAN_PIN, låg);
digitalWrite 13, låg.
}
Delay(20);
}
void beamInterrupt() {
detectState = false;
}
//-=-=-=-=-=-=-=-=-=-=-
Om du använder en Arduino Uno, Mini eller andra USB-kompatibla Arduino, du behöver bara koppla in den, Välj lämplig styrelsen i Verktyg -> styrelsen menyn, och klicka på knappen "Ladda upp". Det tar bara några sekunder. Om din styrelse har följetong-stil programmering rubriker, måste du använda ett FTDI seriekort istället. Du använder förmodligen en styrelsen baserat på Duemillanove. Om inte du vet vad man ska välja i Verktyg -> styrelsen, tillverkaren av din styrelse kan nog berätta.
För prototyper ska du ändra värdena för FAN_DELAY och FAN_RUN_TIME ovan till något mycket mindre. Kom ihåg att dessa värden är i millisekunder (en tusendel av en sekund). När du kan bryta strålen och startar fläkten, ändra programmet till ovanstående värden eller vad passar du (och din katt.)