Etape 31 : Code à l’aide de commutateurs
Étant donné que ce contrôleur est juste un tas de commutateurs, nous pouvons jeter tout le code qui avait à voir avec le potentiameters qui se trouvaient dans les manettes de pouce. Cela signifie que nous n’aurons pas la maîtrise de la vitesse.
Voici le contrôleur en action :
Voici le code pour exécuter le jeu de grue à l’aide du contrôleur de Leap Frog. Il utilise seulement les 6 boutons poussoirs pour contrôler le moteur pas à pas et les deux moteurs à courant continu.
Arduino Code / / /
Vitesses
int Delay_X = 1000 ; l’étape de retard : microsecondes (retard = vitesse lente
int Speed_S = 255 ; Vitesse de broche 0-255
int Speed_C = 255 ; Clow vitesse 0-255
AXES MOTEUR PAS À PAS
Sorties
int Step_X = 13 ;
int Dir_X = 12 ;
int Enable_X = 8 ;
Entrées
int gauche = 16 ;
int droite = 17 ;
variables
int val_Left = faible ;
int val_Right = faible ;
BROCHES BROCHE
Sorties
int Dir_A = 4 ;
int Speed_A = 5 ;
Entrées
int = jusqu'à 14 ;
int bas = 15 ;
variables
int val_Up = faible ;
int val_Down = faible ;
PINS DE GRIFFE
Sorties
int Dir_B = 7 ;
int Speed_B = 6 ;
Entrées
int Open = 18 ;
int Close = 19 ;
variables
int val_Open = faible ;
int val_Close = faible ;
annuler le programme d’installation () {}
Configuration des broches de stepper
pinMode (Step_X, sortie) ;
pinMode (Dir_X, sortie) ;
pinMode (Enable_X, sortie) ;
pinMode (entrée, gauche) ;
pinMode (entrée, droit) ;
pins de moteur A installation DC - pour broche
pinMode (Dir_A, sortie) ;
pinMode (Speed_A, sortie) ;
pinMode (vers le haut, entrée) ;
pinMode (vers le bas, entrée) ;
configurer les épingles du moteur B DC - griffe
pinMode (Dir_B, sortie) ;
pinMode (Speed_B, sortie) ;
pinMode (entrée, Open) ;
pinMode (entrée, clôture) ;
}
void loop() {}
LECTURE DE STEPPER ET CONTRÔLE / /
val_Left = digitalRead(Left) ;
val_Right = digitalRead(Right) ;
Si (val_Left == HIGH) {}
digitalWrite(Enable_X,HIGH) ; Enable
digitalWrite (Dir_X, élevé) ; Jeu de direction
digitalWrite(Step_X,HIGH) ;
delayMicroseconds(2) ;
digitalWrite(Step_X,LOW) ;
delayMicroseconds(Delay_X) ;
}
Si (val_Right == HIGH) {}
digitalWrite(Enable_X,HIGH) ; Enable
digitalWrite (Dir_X, basse) ; Définir la direction (sens inverse)
digitalWrite(Step_X,HIGH) ;
delayMicroseconds(2) ;
digitalWrite(Step_X,LOW) ;
delayMicroseconds(Delay_X) ;
}
Si ((val_Left == LOW) & & (val_Right == faible)) {}
digitalWrite (Enable_X, basse) ; stepper hors
}
AXE DE LECTURE ET CONTRÔLE / /
val_Up = digitalRead(Up) ;
val_Down = digitalRead(Down) ;
Si (val_Up == HIGH) {}
digitalWrite (Dir_A, élevé) ;
analogWrite (Speed_A, Speed_S) ;
}
Si (val_Down == HIGH) {}
digitalWrite (Dir_A, basse) ;
analogWrite (Speed_A, Speed_S) ;
}
Si ((val_Up ==LOW) & & (val_Down == faible)) {}
analogWrite (Speed_A, 0) ;
}
LECTURE DE GRIFFE ET CONTRÔLE / /
val_Open = digitalRead(Open) ;
val_Close = digitalRead(Close) ;
Si (val_Open == HIGH) {}
digitalWrite (Dir_B, élevé) ;
analogWrite (Speed_B, Speed_C) ;
}
Si (val_Close == HIGH) {}
digitalWrite (Dir_B, basse) ;
analogWrite (Speed_B, Speed_C) ;
}
Si ((val_Open ==LOW) & & (val_Close == faible)) {}
analogWrite (Speed_B, 0) ;
}
}