Etape 12 : Direction et autres extrémités lâches.
Sortie dans les moteurs s’effectue en définissant un signal de pulse width modulé (PWM) sur les entrées de contrôleur de moteur. Dans le land de l’Arduino, cela se fait avec analogWrite(). Toutefois, la valeur par défaut fréquence PWM Arduino est beaucoup trop faible pour la commande de moteur, alors j’ai ajouté quelques manipulation de Registre direct pour le forcer à être 15,625 kHz. Puisque les contrôleurs sont réversibles, j’utilise une petite forêt de fi des déclarations de comprendre ce qu’il faut mettre sur les broches DIR et d’inverser la commande de sortie ou non.
Une partie très importante de bon contrôle logiciel d’écriture gère des types de données. Vous pouvez voir dans le code que j’ai souvent explicitement catalogué pour vous assurer que je reçois exactement le type de données que je veux à chaque étape du calcul. Rien n’est pire que d’avoir votre freak contrôleur sortir parce qu’une variable a débordé. Pour cette raison, j’ai même limitant à chaque étape pour s’assurer que les variables restent dans les secteurs appropriés. Par exemple, analogWrite() prend une valeur entière comprise entre 0 et 255, donc je limite les sorties de cette gamme à chaque étape du calcul.