Stap 5: Elektronica en programmering
En dan opeens het Bureau is vol van alle soorten elektronica en gereedschap...
Terwijl de cookie gewoon op het mechanisme van de cassette (spanning beperkt door een potentiometer draait) moet de beglazing neerlegging systeem wat meer controle. Gelukkig, het gebruik van het mechanisme van de laser van een CD-speler betekent dat we alleen maar sommige zeer fundamentele Arduino controle hoeven.
Omdat het mechanisme een gelijkstroommotor gebruikt, heeft het geen idee waar het is. Maar om dit te verhelpen, de end-point sensor kan worden gebruikt. De manier waarop het programma werkt is als volgt:
- Controleer de fader en de potentiometer voor de huidige instellingen
- Verplaatsen naar huis tot huis is bereikt met de ingestelde snelheid
- Controleer de instellingen opnieuw
- Verder weg van huis met de ingestelde snelheid en tijd
Een beetje slimme ding wij zetten, is dat we de CD-motor heb verbonden met pin 5 en 6. Nu wanneer we maken het draaien een manier willen, we maken van pin 5 lage en pin 6 hoog en vice versa. Door het gebruik van analogWrite, krijgen wij heel precieze controle. Met een aantal meer werk alles kon worden meer vloeiende en nauwkeurige, maar hey, laten we gewoon trekken sommige spiralen op sommige cookies ok?
Hier is de volledige code van Arduino:
<p>int slideDistance = 500;<br>int minSlideDistance = 200; int maxSlideDistance = 1200; int slideSpeed = 200; int minSlideSpeed = 100; int maxSlideSpeed = 255;</p><p>void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT);</p><p> pinMode(8, INPUT_PULLUP);</p><p>}</p><p>void loop() { readSensors(); while (digitalRead(8) == 1) { digitalWrite(5, LOW); analogWrite(6, slideSpeed); } readSensors(); digitalWrite(6, LOW); analogWrite(5, slideSpeed); delay(slideDistance);</p><p>}</p><p>void readSensors() { slideSpeed = map(analogRead(A0), 0, 1023, maxSlideSpeed, minSlideSpeed); slideDistance = map(analogRead(A1), 0, 1023, minSlideDistance, maxSlideDistance); }</p>