Stap 3: Nu dat het werkt op je breadboard...
U moet waarschijnlijk de bs2 programma, hier is de code. De meeste van deze code is nauw gebaseerd op voorbeelden in de verschillende PDF beschikbaar op de site van parallax. U betaalt meer voor de BS2, maar de documentatie is geweldig.' {$STAMP BS2}
' {$PBASIC 2.5}
'
' -----( I/O Definitions )-------------------------------------------------
PIR PIN 0' i/o Pin voor PIR Sensor
LEDONE PIN 15' i/o Pin voor groene LED
LEDTWO PIN 14' i/o Pin voor rode LED
' -----( Variables )-------------------------------------------------------
teller VAR Byte ' reis teller
x var Word ' een algemene doel-variabele definiëren
teken VAR x.BIT15 ' teken-bit voor x
degC VAR Word ' Definieer een variabele om graden Celsius
degF VAR Word ' te houden graden Fahrenheit
' -----( Initialization )--------------------------------------------------
CLS duidelijk DEBUG scherm DEBUG
SEROUT 12,396,("! NB0W07: ","Warming Up", CLS) ' vertellen de roze whats up
FOR counter = 10-0
HOGE LEDONE ' Flash de LEDS
LAGE LEDTWO ' wacht 20 seconden voor PIR warming-up
DEBUG huis, "Warming-up:", DEC2 teller
SEROUT 12,396,("! NB0W07: Warming up: ", CLS)
PAUZE 1000
LAGE LEDONE
HOGE LEDTWO
PAUZE 1000' Display teller per seconde
VOLGENDE
LAGE LEDONE
LAGE LEDTWO
Counter = 0' duidelijk teller variabele
DEBUG thuis, "Waiting"
SEROUT 12,396,("! NB0W07:Waiting... ", CLS)
HOGE LEDTWO
HOGE 5' Selecteer de DS1620
SHIFTOUT 7,6,LSBFIRST,(238) ' opdracht 'start convertions'
LAGE 5' doen de opdracht
' -----( Program Code )----------------------------------------------------
Hoofdpodium:
DOEN
' Bewegingsmelder
Als PIR = 1 THEN ' bewegingsdetectie?
Counter = counter + 1' Update reis teller
HOGE LEDONE '
LAGE LEDTWO ' rode LED licht
DEBUG huis, "Struikelde...", DEC3 teller
SEROUT 12,396,("! NB0W07: ","Three... ",CLS)
: Lus tot PIR = 0' wachten voor PIR wissen
DEBUG huis, "Gewist...", DEC3 teller
SEROUT 12,396,("! NB0W07: ","gewist... ",CLS)
LAGE LEDONE
HOGE LEDTWO ' rode LED uitschakelen
ENDIF
' Temperatuur
HOGE 5' Selecteer de DS1620
SHIFTOUT 7,6,LSBFIRST,(170) ' verzenden van de opdracht "gegevens ophalen"
SHIFTIN 7,6,LSBPRE,(x\9) ' krijgen van de gegevens, met inbegrip van teken
LAGE 5' beëindigen van de opdracht
x.BYTE1 = - x.BIT8 ' uitbreiden van het teken tot 16 bits
degC = x * 5' omzetten ' C * 10 (resolutie 0,5 ' C)
degF = degC + 2732 * 9/50-459' conver tot F
DEBUG? degF, CR, CR ' Toon op foutopsporing
SEROUT 12,396,("! NB0W06:", dec degF,CLS)
' Garage deur detector.
ALS IN1 = 0 THEN
SEROUT 12,396,("! NB0W08: ","Open", CLS)
ANDERS
SEROUT 12,396,("! NB0W08: ","Gesloten", CLS)
ENDIF
PAUZE 1000
LOOP