Laser Spirograph använder arduino
Om du har några frågor om komponenter eller tillverkning, lämna dem i kommentarerna och jag svarar gärna.
Uppdatering 2013-10-12:
Jag arbetar för närvarande på en uppdaterad version av detta och planerar att ha det gjort sen januari 2014 (jag kommer att skriva en fullt kompatibel för det). På att planera att bygga jag hittade min gamla arduino kod som sprang denna spirograph, det är mycket grundläggande, men jag kan vara användbar för dem som arbetar på liknande projekt:
#include
AF_DCMotor motor1 (1, MOTOR12_64KHZ); skapa motor #1, 64KHz pwm
AF_DCMotor motor2 (2, MOTOR12_64KHZ).
AF_DCMotor motor3 (3, MOTOR34_1KHZ).
AF_DCMotor motor4 (4, MOTOR34_1KHZ).
int PotPin1 = 5; Analog ingång från potentiometrar
int PotPin2 = 4;
int PotPin3 = 3;
int PotPin4 = 2;
int frekvens1 = 0;
int Rate2 = 0;
int Rate3 = 0;
int Rate4 = 0;
void setup() {
Serial.BEGIN(9600); Ställ in seriell kommunikation på 9600 bps
Serial.println("Spirograph!");
motor1.Run(forward); Ange alla fans att köra framåt. De kan inte köras baklänges
motor2.Run(forward);
motor3.Run(forward);
motor4.Run(forward);
}
void loop() {
Läs och karta AI till kurs #
Frekvens1 = analogRead(PotPin1);
Delay(15);
om (frekvens1! = 0) {
Frekvens1 = karta (frekvens1, 1, 1023, 20, 255);
}
Rate2 = analogRead(PotPin2);
Delay(15);
om (Rate2! = 0) {
Rate2 = karta (Rate2, 0, 1023, 20, 255);
}
Rate3 = analogRead(PotPin3);
Delay(15);
om (Rate3! = 0) {
Rate3 = karta (Rate3, 0, 1023, 60, 255);
}
Rate4 = analogRead(PotPin4);
Delay(15);
om (Rate4! = 0) {
Rate4 = karta (Rate4, 0, 1023, 60, 255);
}
utgång (frekvens1, Rate2, Rate3, Rate4);
om (frekvens1 == 255 & & Rate2 == 255 & & Rate3 == 255 & & Rate4 == 255) {
för (int en = 0; en < 255; en += 10) {
utgång (180, 100 + en, 250, 0);
Delay(500);
}
utgång (100,0,0
för (int b = 0; b < 155; b + = 10) {
utgång (180, 0, 0, 100 + b);
Delay(500);
}
}
}
{Ogiltig utdata (int m1, int m2, int m3, int m4)
motor1.setSpeed(M1);
motor2.setSpeed(m2);
motor3.setSpeed(m3);
motor4.setSpeed(M4);
Serial.Print ("Motor Speeds\t");
Serial.Print("\tM#1:");
Serial.Print(M1);
Serial.Print("\tM#2:");
Serial.Print(m2);
Serial.Print("\tM#3:");
Serial.Print(m3);
Serial.Print("\tM#4:");
Serial.println(M4);
}