hjälp med basic stamp kod
Postat: 4 januari 2009, 19:53:02
Hej! Håller på med en automatisk toalettspolare.
Jag har en ir detektor som känner av pulser från en ir diod. Dessa ska detektera om en person sätter sig ner, och när personen reser sig upp ska ett servo trycka på spolknappen i en viss tid för sedan återgå till viloläge.
Hittils ser min kod ut såhär. Men servot vill inte som jag vill..
Så om nån har tid och lust att ta en titt så är det fritt fram =)
Jag har en ir detektor som känner av pulser från en ir diod. Dessa ska detektera om en person sätter sig ner, och när personen reser sig upp ska ett servo trycka på spolknappen i en viss tid för sedan återgå till viloläge.
Hittils ser min kod ut såhär. Men servot vill inte som jag vill..

Kod: Markera allt
' {$STAMP BS2} ' Stamp directive.
' {$PBASIC 2.5} ' PBASIC directive.
' -----[ Variables ]----------------------------------------------------------
irDetectSitt VAR BIT
counter VAR WORD
' -----[ Main Routine ]-------------------------------------------------------
DO
FREQOUT 8, 1, 38500 ' Pulsa ut IR ljus från IR diod
irDetectSitt = IN9 '
IF (irDetectSitt = 0) THEN ' Någon sätter sig
GOSUB Flush_Toilet ' Gå till spolrutin
ELSE ' Ingen sitter
GOSUB Blink_Led ' Blinka led
ENDIF '
LOOP
' -----[ Subroutines ]--------------------------------------------------------
Flush_Toilet:
PAUSE 2000 ' Vänta och kolla om nån rest sig upp
IF (irDetectSitt = 1) THEN 'Någon reser sig upp
FOR counter = 1 TO 150 'Servo trycker på spolknappen
PULSOUT 4, 1000
PAUSE 20
NEXT
PAUSE 5000 'Servo ser till att tillräckligt mkt vatten spolar
FOR counter = 1 TO 150 'Servo tillbaka till viloläge
PULSOUT 4, 500
PAUSE 20
NEXT
ENDIF
RETURN 'Tillbaka till vänteläge
Blink_Led: ' Ingen sitter
HIGH 0
PAUSE 25
LOW 0
PAUSE 1500
RETURN