Resumé
Ce n'est pas une vraie piste de marbre... ou si ?
Voilà votre marbre... Je n'en veux pas, alors reprenez-le... Non, c'est votre marbre, le voilà...
Cette discussion continue jusqu'à ce que vous éteigniez l'appareil.
Dans la boîte, vous pouvez installer deux moteurs pas à pas 28BYJ (incroyablement peu cher) ou la version légèrement plus petite 24BYJ.
Alimentation : Trois piles AA.
Assurez-vous que les deux bras sont alignés, sinon le marbre ne suivra pas la trajectoire.
Ce sketch Arduinmo le fait fonctionner :
// Mode de pas complet Nano.
//512 >> 360 degrés, 1,4 pas/degré.
//28BYJ Rouge+Orange Jaune Rose Bleu
//24BYJ Rouge+ Noir Jaune Marron Bleu
int M1A = 9 ; int M1B = 10 ; int M1C = 11 ; int M1D = 12 ;
int M2A = 2 ; int M2B = 3 ; int M2C = 4 ; int M2D = 5 ;
int t=3 ;
void setup()
{
pinMode(M1A, SORTIE); pinMode(M1B, SORTIE); pinMode(M1C, SORTIE); pinMode(M1D, SORTIE);
pinMode(M2A, SORTIE); pinMode(M2B, SORTIE); pinMode(M2C, SORTIE); pinMode(M2D, SORTIE);
)
void loop()
{
pour (int x=0 ; x<180 ; x++) {
// Moteur 1 en sens inverse des aiguilles d'une montre.
digitalWrite(M1A, LOW); digitalWrite(M1B, LOW); digitalWrite(M1C, HIGH); digitalWrite(M1D, HIGH); delay(t);
digitalWrite(M1A, LOW); digitalWrite(M1B, HIGH); digitalWrite(M1C, HIGH); digitalWrite(M1D, LOW); delay(t);
digitalWrite(M1A, HIGH); digitalWrite(M1B, HIGH); digitalWrite(M1C, LOW); digitalWrite(M1D, LOW); delay(t);
digitalWrite(M1A, HIGH); digitalWrite(M1B, LOW); digitalWrite(M1C, LOW); digitalWrite(M1D, HIGH); delay(t);
pour (int x=0 ; x<180 ; x++) {
// Moteur 1 en sens anti-horaire.
digitalWrite(M1A, HIGH); digitalWrite(M1B, LOW); digitalWrite(M1C, LOW); digitalWrite(M1D, HIGH); delay(t);
digitalWrite(M1A, HIGH); digitalWrite(M1B, HIGH); digitalWrite(M1C, LOW); digitalWrite(M1D, LOW); delay(t);
digitalWrite(M1A, LOW); digitalWrite(M1B, HIGH); digitalWrite(M1C, HIGH); digitalWrite(M1D, LOW); delay(t);
digitalWrite(M1A, LOW); digitalWrite(M1B, LOW); digitalWrite(M1C, HIGH); digitalWrite(M1D, HIGH); delay(t);
délai(500);
pour (int x=0 ; x<180 ; x++) {
// Moteur 2 sens anti-horaire.
digitalWrite(M2A, HIGH); digitalWrite(M2B, LOW); digitalWrite(M2C, LOW); digitalWrite(M2D, HIGH); delay(t);
digitalWrite(M2A, HIGH); digitalWrite(M2B, HIGH); digitalWrite(M2C, LOW); digitalWrite(M2D, LOW); delay(t);
digitalWrite(M2A, LOW); digitalWrite(M2B, HIGH); digitalWrite(M2C, HIGH); digitalWrite(M2D, LOW); delay(t);
digitalWrite(M2A, LOW); digitalWrite(M2B, LOW); digitalWrite(M2C, HIGH); digitalWrite(M2D, HIGH); delay(t);
pour (int x=0 ; x<180 ; x++) {
//Motor2 CW
digitalWrite(M2A, LOW); digitalWrite(M2B, LOW); digitalWrite(M2C, HIGH); digitalWrite(M2D, HIGH); delay(t);
digitalWrite(M2A, LOW); digitalWrite(M2B, HIGH); digitalWrite(M2C, HIGH); digitalWrite(M2D, LOW); delay(t);
digitalWrite(M2A, HIGH); digitalWrite(M2B, HIGH); digitalWrite(M2C, LOW); digitalWrite(M2D, LOW); delay(t);
digitalWrite(M2A, HIGH); digitalWrite(M2B, LOW); digitalWrite(M2C, LOW); digitalWrite(M2D, HIGH); delay(t);}
délai(500);
)
모델 소스
