Étape 4: utilisation.
Amusez-vous avec ce. C’est vraiment amusant de voir ce que vous pouvez faire avec le code.J’allais utiliser pour déclencher des LEDs rouges intensément pour l’Halloween. (Je vais garder pour une autre fois.)
Puis, j’allais faire déclencher certaines source sonore effrayant comme celui-ci :
Vous pouvez l’utiliser comme un système d’alarme, mais il vous faudra mettre un morceau de papier autour de celle-ci pour éviter les déclenchements intempestifs... Si vous l’utiliser comme une alarme, je pense que vous ne souhaitez pas utiliser ce code sur le site de l’Arduino :
Lien : http://www.arduino.cc/playground/Code/PIRsense
/*
* //////////////////////////////////////////////////
* sortie de //making sens du capteur PIR de parallaxe
* //////////////////////////////////////////////////
*
* Broche de sortie commutateurs une LED selon l’état des capteurs.
* Détermine le début et la fin des séquences de mouvement continu.
*
* Kristian Gohlke / gmail krigoo (_) (_) com / http://krx.at
* 3. Septembre 2006
*
* kr1 (fente) 2006
* publié sous une licence creative commons "Attribution-NonCommercial-ShareAlike 2.0" licence
* http://creativecommons.org/licenses/by-nc-sa/2.0/de/
*
*
* Le capteur PIR de parallaxe est un module de détecteur de mouvement infrarouge numérique facile à utiliser.
* (http://www.parallax.com/detail.asp?product_id=555-28027)
*
* Broche de sortie du capteur va à haute si le mouvement est présent.
* Toutefois, même si le mouvement est présent il va à bas la de temps en temps,
* qui ne pourrait donner l’impression, aucun mouvement n’est présent.
* Ce programme aborde cette question en ignorant les phases de faible inférieurs à un moment donné,
* en supposant que mouvement continu est présent au cours de ces phases.
*
*/
/////////////////////////////
VARS
le temps de nous donner le capteur à étalonner (10 à 60 secondes selon la fiche technique)
int calibrationTime = 30 ;
le temps quand le capteur génère une impulsion faible
unsigned long int lowIn ;
la durée en millisecondes, que le capteur doit être faible
avant que nous supposons que tout mouvement a cessé
unsigned long int pause = 5000 ;
Boolean lockLow = true ;
Boolean takeLowTime ;
int pirPin = 3 ; la broche numérique connectée à la sortie du capteur PIR
int ledPin = 13 ;
/////////////////////////////
PROGRAMME D’INSTALLATION
void setup() {}
Serial.Begin(9600) ;
pinMode (pirPin, entrée) ;
pinMode (ledPin, sortie) ;
digitalWrite (pirPin, basse) ;
donner le capteur quelque temps à étalonner
Serial.Print ("calibrage capteur") ;
pour (int i = 0; i < calibrationTime; i ++) {}
Serial.Print(".") ;
Delay(1000) ;
}
Serial.println ("terminé") ;
Serial.println ("capteur actif") ;
Delay(50) ;
}
////////////////////////////
BOUCLE
void loop() {}
if(digitalRead(pirPin) == HIGH) {}
digitalWrite (ledPin, HIGH) ; le voyant lumineux visualise l’état de broche de sortie de capteurs
{if(lockLow)}
fait en sorte de que nous attendre pour une transition vers le bas avant n’importe quelle autre sortie est faite :
lockLow = false ;
Serial.println("---") ;
Serial.Print ("mouvement détecté à") ;
Serial.Print(Millis()/1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
takeLowTime = true ;
}
if(digitalRead(pirPin) == faible) {}
digitalWrite (ledPin, basse) ; le voyant lumineux visualise l’état de broche de sortie de capteurs
{if(takeLowTime)}
lowIn = millis() ; économiser le temps de la transition entre la haute et basse
takeLowTime = false ; Veillez à ce que cela se fait uniquement au début d’une phase de faible
}
Si le capteur est faible plus la pause donnée,
Nous partons du principe qu’aucun mouvement plus ne va se passer
Si (! lockLow & & millis() - lowIn > pause) {}
fait bien sûr ce bloc de code est exécuté uniquement après
une nouvelle séquence de mouvement a été détectée
lockLow = true ;
Serial.Print ("requête s’est terminée à ») ; sortie
Serial.Print((Millis() - pause) / 1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
}
}