Si usted tiene alguna pregunta acerca de los componentes o fabricación, dejarlas en los comentarios y con gusto responderé.
10 / 12-actualización 2013:
Yo actualmente estoy trabajando en una versión actualizada de este y planea a finales de enero de 2014 (escribiré un completo ible para él). En el proceso de planificación que construyen encontré mi viejo código de arduino que funcionó este espirógrafo, es muy básico, pero podría ser útil para aquellos que trabajan en proyectos similares:
#include
AF_DCMotor motor1 (1, MOTOR12_64KHZ); crear motor #1 pwm de 64KHz
AF_DCMotor motor2 (2, MOTOR12_64KHZ);
AF_DCMotor motor3 (3, MOTOR34_1KHZ);
AF_DCMotor motor4 (4, MOTOR34_1KHZ);
int PotPin1 = 5; Entrada analógica de potenciómetros
int PotPin2 = 4;
int PotPin3 = 3;
int PotPin4 = 2;
int Rate1 = 0;
int Rate2 = 0;
int Rate3 = 0;
int Rate4 = 0;
void setup() {}
Serial.Begin(9600); configurar la comunicación Serial a 9600 bps
Serial.println("spirograph!");
motor1.Run(Forward); Conjunto de todos los aficionados a correr hacia adelante. No se ejecuta al revés
motor2.Run(Forward);
motor3.Run(Forward);
motor4.Run(Forward);
}
void loop() {}
Lectura y mapa AI a velocidad #
Rate1 = analogRead(PotPin1);
Delay(15);
Si (Rate1! = 0) {}
Rate1 = mapa (Rate1, 1, 1023, 20, 255);
}
Rate2 = analogRead(PotPin2);
Delay(15);
Si (Rate2! = 0) {}
Rate2 = mapa (Rate2, 0, 1023, 20, 255);
}
Rate3 = analogRead(PotPin3);
Delay(15);
Si (Rate3! = 0) {}
Rate3 = mapa (Rate3, 0, 1023, 60, 255);
}
Rate4 = analogRead(PotPin4);
Delay(15);
Si (Rate4! = 0) {}
Rate4 = mapa (Rate4, 0, 1023, 60, 255);
}
salida (Rate1 Rate2, Rate3, Rate4);
Si (Rate1 == 255 & & Rate2 == 255 & & Rate3 == 255 & & Rate4 == 255) {}
para (int a = 0; un < 255; un += 10) {}
salida (180, 100, 250, 0);
Delay(500);
}
salida (100,0,0
para (int b = 0; b < 155; += b 10) {}
salida (180, 0, 0, 100 + b);
Delay(500);
}
}
}
salida nula (int m1, m2 int, int m3, m4 int) {}
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);
}