Garage Monitor 3k (3 / 8 steg)
Steg 3: Nu att det fungerar på din skärbräda...
Du bör förmodligen programmera bs2, här är koden. De flesta av denna kod är nära baserad på exempel i olika PDF-filen tillgänglig på webbplatsen parallax. Du betala mer för BS2, men dokumentationen är stor."{$STAMP BS2}
"{$PBASIC 2.5}
'
' -----( I/O Definitions )-------------------------------------------------
PIR PIN 0' i/o Pin för PIR-Sensor
LEDONE PIN 15' i/o Pin för grön LED
LEDTWO PIN 14' i/o Pin för röd LED
' -----( Variables )-------------------------------------------------------
motverka VAR Byte ' resa Counter
x var ordet "definiera en generell variabel
tecknet VAR x.BIT15 ' teckenbiten x
degC VAR ordet "definiera en variabel för att hålla grader Celsius
degF VAR ordet "att hålla grader Fahrenheit
' -----( Initialization )--------------------------------------------------
DEBUG CLS klart rätta skärmen
SEROUT 12,396,("! NB0W07: ","Värmer upp", CLS) ' berätta den rosa whats upp
FÖR counter = 10 till 0
HÖG LEDONE "Flash Lysdioderna
LÅG LEDTWO "vänta 20 sekunder för PIR uppvärmning
DEBUG hem, "värmer upp:", DEC2 counter
SEROUT 12,396,("! NB0W07: uppvärmningen upp: ", CLS)
PAUSA 1000
LÅG LEDONE
HÖG LEDTWO
Pausa 1000' Display motverka varje sekund
NÄSTA
LÅG LEDONE
LÅG LEDTWO
räknare = 0' tydlig variabel
FELSÖKA hem, "Waiting"
SEROUT 12,396,("! NB0W07:Waiting... ", CLS)
HÖG LEDTWO
HIGH 5' Välj DS1620
SHIFTOUT 7,6,LSBFIRST,(238) ""starta konverteringar"kommandot
LÅGA 5' gör kommandot
' -----( Program Code )----------------------------------------------------
Main:
GÖRA
"Rörelsedetektor
OM PIR = 1 då "rörelse upptäckts?
räknare = räknare + 1' uppdatering resa Counter
HÖG LEDONE "
LÅG LEDTWO "ljus röd LED
DEBUG hem, "TRIPPADE...", DEC3 counter
SEROUT 12,396,("! NB0W07: ","trippade... ",CLS)
GÖR: LOOP tills PIR = 0' vänta för PIR till Clear
DEBUG hem, "Avmarkerad...", DEC3 counter
SEROUT 12,396,("! NB0W07: ","avmarkerad... ",CLS)
LÅG LEDONE
HÖG LEDTWO "stänga av röd LED
ENDIF
"Temperatur
HIGH 5' Välj DS1620
SHIFTOUT 7,6,LSBFIRST,(170) ' Skicka kommandot "Hämta data"
AT 7,6,LSBPRE,(x\9) ' Hämta data, inklusive tecken
LÅGA 5' avsluta kommandot
x.BYTE1 = - x.BIT8 "förlänga tecknet till 16 bitar
degC = x * 5' konvertera till ' C * 10 (upplösning 0,5 ' C)
degF = degC + 2732 * 9/50-459' Konver till F
FELSÖKA? degF, CR, CR ' Visa på debug
SEROUT 12,396,("! NB0W06:", dec degF,CLS)
"Garage dörr detektor.
OM IN1 = 0 DÅ
SEROUT 12,396,("! NB0W08: ","Öppna", CLS)
ANNAT
SEROUT 12,396,("! NB0W08: ","Stängd", CLS)
ENDIF
PAUSA 1000
LOOP