Stap 8: PROJECT 2: precieze motorische controle
Nu willen we de knoppen naar de Furby cam slechts een enkele cam stap vooruit of achteruit.
Daarna, zult willen wij ook een indicator wanneer de cam naar haar "thuis" positie gaat.
Om dit te doen moeten we de LED-encoder. Als u terug naar de pinout van de PCB harken, zult u onthouden
- GEAR rotatie, die de perforaties in de Furby cam als het detecteert beweegt
- GEAR-LED die brandt de LED schijnt door de cam
- CAM thuis die wordt geactiveerd wanneer de cam in de "thuis" positie is
Wat we doen is de LED verlichting, en kijken naar de rotatie sensor.
In het overzicht:
- Eerst wij definiëren deze nieuwe pinnen en stellen hen in startup()
- We vertellen de startup() om naar te kijken:
- de knop(pen) pinnen (vooruit gaan en gaan keren)
- en pin van de sensor (GEAR rotatie)
- .. .en uitgevoerd "encoder" wanneer om het even welk wijzigt
- Vervolgens nodig hebben we om te schrijven encoder() waarin read_button en read_sensor
- read_button - de interrupt was van een van de knoppen
- MOTOR FORWARD of REVERSE-MOTOR
- afrit encoder()
- read_cam_sensor - de interrupt was van de cam verplaatsen
- CAM-HOME - leest zijn "thuis"? Als we zijn, onze bekende positie herstellen. Als dat niet het geval is, blijven geteld vanaf de laatst bekende positie.
- zo ja, welke richting we gingen? (MOTOR FORWARD of REVERSE-MOTOR)
- daaruit berekenen de nieuwe positie
- Stop de motor! Stel zowel MOTOR vooruit en REVERSE-MOTOR uitgeschakeld.