Étape 3: codage
C’est le code que j’ai utilisé pour mon projet :
int soundDetectedPin = 10 ; Utiliser 10 Pin comme notre entrée
int soundDetectedVal = élevé ; C’est où nous enregistrons nos bAlarm booléenne Sound mesure = false ; unsigned long lastSoundDetectTime ; Noter le temps que nous avons mesuré un sonore CurrentTime long non signé ; unsigned long ElapsedTime ;
int soundAlarmTime = 50 ;
int isFlamePin = 7 ; Il s’agit de notre entrée pin int isFlame = élevé ; HAUTE SIGNIFIE SANS FLAMME
int soundCounter = 0 ;
int redPin = 6 ; int greenPin = 5 ; bluePin int = 3 ;
int mené = 13 ;
int temp5v = 2 ;
#define COMMON_ANODE
void setup() {pinMode (temp5v, sortie); pinMode (led, sortie); pinMode (isFlamePin, INPUT); pinMode (redPin, sortie); pinMode (greenPin, sortie); pinMode (bluePin, OUTPUT); pinMode (soundDetectedPin, entrée) ; Serial.Begin(9600) ; }
void loop() {digitalWrite (temp5v, HIGH); soundDetectedVal = digitalRead (soundDetectedPin); / / lecture de l’alarme sonore temps isFlame = digitalRead(isFlamePin) ;
if(isFlame == Low) {//if nous détectons flamme Serial.println("Lit") ; si (soundCounter == 1){setColor(255,0,0);} //set couleur rouge se (soundCounter == 2){setColor(0,255,0);} //set couleur verte se (soundCounter == 3){setColor(0,0,255);} //set couleur bleu se (soundCounter == 4){setColor(0,255,255);} couleur //set à aqua if (soundCounter == 5){setColor(255,255,255);} couleur //set à white-ish delay(50);} else {Serial.println ("af froid"); setColor(0,0,0);}
if(soundDetectedVal == Low) {/ / lastSoundDetectTime = millis(); / / / / if(!bAlarm) {/ / soundCounter ++; / / Serial.println(soundCounter); / / bAlarm = true; / /} / /} else {/ / if((millis()-lastSoundDetectTime) > soundAlarmTime & & bAlarm) {/ / bAlarm = false; / /} / /}
Si (soundDetectedVal == faible) / / si nous entendons un bruit {lastSoundDetectTime = millis(); / / enregistrer l’heure de l’alarme sonore / / ce qui suit est si vous ne faites défiler sur l’écran de sortie si (! bAlarm) {/ / Serial.println(ElapsedTime) ; soundCounter ++ ; Serial.println ("LOUD, LOUD") ; Serial.println(soundCounter) ; bAlarm = true ; }} else {si ((millis()-lastSoundDetectTime) > soundAlarmTime & & bAlarm) {Serial.println("quiet") ; digitalWrite (led, faible); bAlarm = false;}}
CurrentTime = millis() ; ElapsedTime = CurrentTime - StartTime ;
Remise à zéro de compteur if(soundCounter == 6) {soundCounter = 1;}
}
void setColor (int rouge, int vert, int bleu) {rouge COMMON_ANODE #ifdef = 255 - rouge ; vert = 255 - vert ; bleu = 255 - bleu ; #endif analogWrite (redPin, rouge); analogWrite (greenPin, vert); analogWrite (bluePin, bleu);}