Étape 5: Code source
Ce code effectue une boucle la « luminosité vers le haut » et « luminosité vers le bas » des voyants, recherchant les mouvement en haut et en bas du cycle. Si un mouvement est détecté, il appelle la fonction de « freakout », provoquant le clignotant et le rire. C’est tout !
/*
C’est le code source pour le mouvement sensible
citrouille hantée construite pour Radio Shack.
Code d’origine par Daniel Gentleman, thoughtfix.com
*/Mettre en place le brochage
Lavanant int = 3 ; Broche 3 de PWM
rightEye int = 5 ; Goupille PWM 5
int redBlink1 = 9 ;
int redBlink2 = 10 ;
int whiteBlink = 13 ;
int laughBox = 12 ; transistor à module vocal
int pirSensor = 7 ; capteurs infrarouges passifs
int pirState = 0 ; État initial de IRMise en place des modes de broche
void setup() {}
pinMode (Lavanant, sortie) ;
pinMode (rightEye, sortie) ;
pinMode (redBlink1, sortie) ;
pinMode (redBlink2, sortie) ;
pinMode (whiteBlink, sortie) ;
pinMode (laughBox, sortie) ;
pinMode (pirSensor, entrée) ;
}
void loop () {}
fondu du min au max par incréments de 5 points :
pour (int fadeValue = 0; fadeValue < = 255 ; fadeValue += 5) {}
définit la valeur (gamme de 0 à 255) :
analogWrite (Lavanant, fadeValue) ;
analogWrite (rightEye, fadeValue) ;
Attendez 30 millisecondes
Delay(30) ;
}
pirState = digitalRead(pirSensor) ; lire l’état de la valeur de pirsensor :
Si (pirState == HIGH) {/ / si un mouvement est détecté
Freakout() ; Appeler la routine freakout
}
fondu de max min par incréments de 5 points :
pour (int fadeValue = 255 ; fadeValue > = 0; fadeValue-=5) {}
définit la valeur (gamme de 0 à 255) :
analogWrite (Lavanant, fadeValue) ;
analogWrite (rightEye, fadeValue) ;
Attendez 30 millisecondes Voir l’effet de gradation
Delay(30) ;
}
pirState = digitalRead(pirSensor) ; Idem que ci-dessus
Si (pirState == HIGH) {}
Freakout() ;
}
}
void freakout() {}
digitalWrite (laughBox, HIGH) ; Envoyez sur initial pour toutes les broches
digitalWrite (Lavanant, HIGH) ;
digitalWrite (rightEye, haute) ;
digitalWrite (redBlink1, HIGH) ;
digitalWrite (redBlink2, HIGH) ;
digitalWrite (whiteBlink, HIGH) ;
Delay(250) ;
digitalWrite (laughBox, basse) ; désactiver le bouton de rire
pour (int i = 1; j’ai < = 40; i ++) {/ / commence à clignoter mayhem
digitalWrite (Lavanant, HIGH) ;
digitalWrite (rightEye, haute) ;
digitalWrite (redBlink1, basse) ;
digitalWrite (redBlink2, basse) ;
digitalWrite (whiteBlink, basse) ;
Delay(50) ;
digitalWrite (Lavanant, faible) ;
digitalWrite (rightEye, faible) ;
digitalWrite (redBlink1, HIGH) ;
digitalWrite (redBlink2, HIGH) ;
digitalWrite (whiteBlink, HIGH) ;
Delay(50) ;
} / / Finition clignotant mayhem, tout éteindre
digitalWrite (redBlink1, basse) ;
digitalWrite (redBlink2, basse) ;
digitalWrite (whiteBlink, basse) ;
}