Étape 3: Maintenant que cela fonctionne sur votre maquette...
Vous devriez probablement programmer la bs2, voici le code. La plupart de ce code s’inspire d’exemples dans les différents PDF disponible sur le site de parallaxe. Vous payez plus pour la BS2, mais la documentation est grande."{$STAMP BS2}
"{$PBASIC 2,5}
'
' -----( I/O Definitions )-------------------------------------------------
PIR 0' e/s broche capteurs PIR
LEDONE broche 15' i/o pour la LED verte
LEDTWO broche 14' i/o pour LED rouge
' -----( Variables )-------------------------------------------------------
contrer l’octet VAR ' compteur de voyage
x var mot ' définir une variable d’usage général
signe x.BIT15 VAR ' bit de signe de x
° c mot VAR ' définir une variable devant contenir les degrés Celsius
degF mot VAR "de tenir les degrés Fahrenheit
' -----( Initialization )--------------------------------------------------
DÉBOGUER claire DEBUG Screen des CLS
SEROUT 12 396,("! NB0W07: ", « Échauffement », CLS) ' dire la rose whats up
FOR compteur = 10 à 0
HAUTE LEDONE ' Flash LED
FAIBLE LEDTWO ' attendre 20 secondes pour le warm-up PIR
MAISON de DEBUG, "échauffement:", compteur DEC2
SEROUT 12 396,("! NB0W07 : Warming up : ", CLS)
PAUSE DE 1000
LEDONE FAIBLE
HAUTE LEDTWO
PAUSE 1 000' affichage contrer chaque seconde
PROCHAINE
LEDONE FAIBLE
LEDTWO FAIBLE
compteur = 0' clair Variable de compteur
DÉBOGUER la maison, « En attente »
SEROUT 12 396,("! NB0W07:Waiting... ", CLS)
HAUTE LEDTWO
HIGH 5' sélectionnez le DS1620
SHIFTOUT 7,6,LSBFIRST,(238) "commande « démarrer la conversion »
Basse 5' faire la commande
' -----( Program Code )----------------------------------------------------
Principal :
FAIRE
« Détecteur de mouvement
IF PIR = 1 THEN ' mouvement détecté ?
Compteur = compteur + 1' compteur de voyage de mise à jour
HAUTE LEDONE '
LEDTWO bas ' lumière LED rouge
Compteur de DEC3 DEBUG maison, « Déclenché... »,
SEROUT 12 396,("! NB0W07: ","déplacé... ",CLS)
A faire : Boucle jusqu’au PIR = 0' attente pour PIR To Clear
Compteur de DEC3 DEBUG maison, « Effacé... »,
SEROUT 12 396,("! NB0W07: ","effacé... ",CLS)
LEDONE FAIBLE
HAUTE LEDTWO ' éteindre la LED rouge
ENDIF
"Température
HIGH 5' sélectionnez le DS1620
SHIFTOUT 7,6,LSBFIRST,(170) ' envoyer la commande « obtenir les données »
SHIFTIN 7,6,LSBPRE,(x\9) ' obtenir les données, y compris le signe
Basse 5' mettre fin à la commande
x.BYTE1 = - x.BIT8 ' étendre le signe à 16 bits
° c = x * 5' convertir ' C * 10 (résolution 0,5 ' C)
degF = ° c + conver 2732 * 9/50-459' à F
DÉBOGUER ? degF, CR, CR ' Show sur debug
SEROUT 12 396,("! NB0W06:", DEC degF,CLS)
« Détecteur de porte de garage.
IF IN1 = 0 THEN
SEROUT 12 396,("! NB0W08: ", « Open », CLS)
D’AUTRE
SEROUT 12 396,("! NB0W08: ", « Fermé », CLS)
ENDIF
PAUSE DE 1000
BOUCLE