Vidéo: EB_#10 Les micros PIC, les Programmateurs PIC et Environnements/Languages 2024
Pour créer du mouvement dans votre projet électronique, vous pouvez ajouter une très périphérique utile, appelé serv o, qui vous permet de contrôler le mouvement mécanique avec un programme BASIC Stamp. Un servo est un type spécial de moteur qui est conçu pour tourner dans une position particulière et maintenir cette position jusqu'à ce qu'on lui dise de tourner dans une position différente. Les servos Hobby sont fréquemment utilisés dans les véhicules radiocommandés, mais il existe de nombreux autres usages pour les servos.
Le kit d'activités BASIC Stamp est livré avec un servo que vous pouvez utiliser pour apprendre à écrire des programmes qui contrôlent les servos. Vous pouvez également acheter des servos directement chez Parallax ou dans la plupart des magasins de loisirs.
Le moyen le plus simple de contrôler un servo à partir d'un microcontrôleur BASIC Stamp est d'utiliser la commande PULSOUT. Cette commande envoie une impulsion de n'importe quelle durée que vous spécifiez à une broche d'E / S de votre choix. La syntaxe de cette commande est la suivante:
Broche PULSOUT, durée
Vous spécifiez la durée en unités de deux microsecondes. Une microseconde est un millionième de seconde. Il y a mille microsecondes dans une milliseconde. Ainsi, pour envoyer une impulsion de 1. 5 ms avec la commande PULSOUT, vous devez spécifier 750 comme durée, comme ceci:
PULSOUT 0, 750
Ici, une impulsion de 1. 5 ms est envoyée à la broche 0.
Voici les valeurs de durée PULSOUT que vous devez utiliser pour un servo de passe-temps typique pour différents angles.
Angle | Durée | Angle | Durée |
---|---|---|---|
0 | 250 | 95 | 778 |
5 | 278 | 100 | 806 |
10 | 306 | 105 | 833 |
15 | 333 | 110 | 861 |
20 | 361 | 115 > 889 | 25 |
389 | 120 | 917 | 30 |
417 | 125 | 944 | 35 |
444 | 130 | 972 | 40 |
472 | 135 | 1000 | 45 |
500 | 140 | 1028 | 50 |
528 | 145 | 1056 > 55 | 556 |
150 | 1083 | 60 | 583 |
155 | 1111 | 65 | 611 |
160 | 1139 | 70 | 639 |
165 | 1167 | 75 | 667 |
170 | 1194 | 80 | 694 |
175 | 1222 | 85 > 722 | 180 |
1250 | 90 | 750 | Par exemple, pour déplacer le servo sur la broche 0 à 75 °, utilisez cette commande: |
PULSOUT 0, 667 | Rappelez-vous Pour maintenir sa position, un servo a besoin d'un flux d'impulsions constant d'environ 20 ms. Ainsi, les commandes PULSOUT sont généralement contenues dans des boucles DO ou des boucles FOR-NEXT. Par exemple, voici un peu de code qui maintient le servo sur la broche 0 à 45 ° indéfiniment: |
DO PULSOUT 0, 500 PAUSE 20 LOOP
Voici un programme complet qui déplace le servo à 45 ° lorsque SW1 (un bouton sur la broche 14) est enfoncé et 135 ° lorsque SW2 (un bouton sur la broche 10) est enfoncé.
'Programme de servocommande' Doug Lowe '15 juillet 2011 "Ce programme déplace un servo sur l'un des deux lorsque vous appuyez sur SW1' et ramène le servo à la position centrale lorsque vous appuyez sur SW2. '{$ STAMP BS2}' { $ PBASIC 2. 5} Servo PIN 0 SW1 PIN 14 SW2 PIN 10 Position VAR Word Position = 500 DO IF SW1 = 1 PUIS Position = 500 ENDIF IF SW2 = 1 PUIS Position = 1000 ENDIF PULSOUT Servo, Position PAUSE 20 LOOP