Cookie CNC Spirograph från papperskorgen (5 / 7 steg)
Steg 5: Elektronik och programmering
Och sedan skrivbordet är plötsligt fullt av alla typer av elektronik och verktyg...
Medan kakan bara snurrar på kassett mekanism (spänning begränsad av en potentiometer) behöver glaset insättning systemet lite mer kontroll. Lyckligtvis, med hjälp av mekanismen från lasern av en CD-spelare innebär att vi bara behöver några mycket grundläggande Arduino kontroll.
Eftersom mekanismen använder en DC-motor, har det ingen aning om var det är. Men för att råda bot på detta slutpunkten sensorn kan användas. Hur programmet fungerar är följande:
- Kontrollera-fader och potentiometer för den aktuella inställningen
- Gå mot hem tills hem nås med den inställda hastigheten
- Kontrollera inställningarna igen
- Flytta hemifrån med den inställda hastigheten och tiden
En liten smart sak vi lagt i, är att vi har ansluten CD motorn till stift 5 och 6. Nu när vi vill göra det snurra ett sätt, vi göra stift 5 lågt och pin 6 högt och vice versa. Genom att använda analogWrite, får vi en exakt kontroll. Med några mer arbete allt kunde bli mer smidig och exakt, men hey, låt oss bara dra några spiraler på några kakor ok?
Här är den fullständiga Arduino koden:
< 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();
medan (digitalRead(8) == 1) {
digitalWrite (5, låg).
analogWrite (6, slideSpeed);
}
readSensors();
digitalWrite (6, låg).
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 >