Étape 8: Adafruit à la rescousse!!!
Avant de continuer, vous devez envisager un condensateur sur la carte de contrôleur de servo à dissocier ou stabiliser la source de courant de soudage. Il est également conseillé d’utiliser des sources d’alimentation séparées pour les servos et l’Arduino ou découpler/stabiliser la puissance fournie à l’Arduino. Le découplage est une façon élégante de dire que vous devez ajouter un condensateur entre la source de tension (VCC) et la masse (GND). La taille du condensateur dépend de votre source d’énergie, comment bien il peut suivre les courants de montée subite et l’élément que vous êtes le découplage. Pour plus d’informations, consulter le tout-puissant Google. Enfin, si vous utilisez électrolytique caps (métal peut caps) Assurez-vous de regarder le PCB pour obtenir votre polarité correcte.
Une petite mise à jour sur le signal de servo :
La fréquence est de 50Hz jusqu'à 1 seconde / 50 = 20 périodes de milliseconde (ms)
1ms base pulse est le signal faible, 0 degré ou entièrement arrière pour un servo de Rotation continue (CR)
1.5ms pulse est le signal moyen, 90 degrés ou Centre pour un servo de CR
2ms pulse est le signal élevé, 180 degrés ou complet avant pour un servo de CR
La carte contrôleur de servo a 12 bits de résolution par période pour créer le signal de servo. Comment nous utilisons ces 12 bits est simple parce que 2 ^ 12 = 4096. Maintenant, nous pouvons appliquer les rapports simples ou stoichemetry pour déterminer la valeur associée de combien de temps, nous voulons notre signal de rester haut ot rapport cyclique. N’oubliez pas que l’Arduino n’aime pas des calculs alors essaient d’utiliser math entier à virgule flottante ou vous s’enliser votre programme.
Signal de servo de 4096
Durée totale : 20ms = 4096
Signal faible : 1ms = 4096/20 = 205
Milieu de signal : 1,5 ms = 205 * 1,5 = 308
Signal élevé : 2ms = 205 * 2 = 410
Instruction du logiciel :
Ces valeurs doivent être stockés sous forme de constantes au début de votre programme pour faciliter le montage par la suite. Alors maintenant, comment allons-nous utiliser cette gamme pour sortie via le jury de servo ?
Tout d’abord, vous devez inclure le fichier de bibliothèque pour le Conseil d’administration.
#include < Adafruit_PWMServoDriver.h >
Deuxièmement, déclarer le nom donné à la Commission de servo et lier les deux avec l’adresse de la Commission. Adresse par défaut est 0 x 40.
Adafruit_PWMServoDriver servo=Adafruit_PWMServoDriver(0x40) ;
En troisième lieu, dans la boucle de programme d’installation, commencer la connexion Conseil de servo.
servo.Begin() ;
Quatrièmement, définissez le freqeuncy des membres du servo dans la boucle de réglage.
servo.setPWMFreq(freq) ;
Cinquièmement, écrire la valeur dans le jury de servo dans la boucle principale du programme.
servo.setPWM (canal, dessus, au loin) ;
servo.setPWM(2,0,ch3) ;
Instruction de matériel :
Tout d’abord, j’ai soudé sur les réglettes à broches inclus, bornier et un chapeau électrolytique 470uF conçu au 10V. Vous pouvez aller avec un bouchon plus gros et même une appréciation pour 6V.
Deuxièmement, je n’a pas changé l’adresse par défaut de la carte et n’est nécessaire que si vous voulez guirlande plusieurs planches ensemble.
Troisièmement, j’ai utilisé peu liquide de ruban électrique sur la partie inférieure des réglettes à broches étant donné que je vais faire un robot brut pour les tests.
Quatrièmement, pour raccorder le Bus I2C, vous devrez fournir 5V et GND de l’Arduino aux broches VCC et GND. Puis, connectez A5 SCL et A4 à SDA. Voir l’image que j’ai créé avec Fritzing !
Qui sont les bases et s’il vous plaît consultez le tutoriel de Adafruit pour plus d’informations. Ensuite, je montrerai comment j’ai implémenté le jury de servo avec une logique permettant de contrôler les deux servos de rotation continue.