Projets électroniques: comment programmer un servo en PBASIC

Pour créer un mouvement dans votre projet de l'électronique, vous pouvez ajouter un dispositif très utile, appelé servo, 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 à une position particulière et maintenez cette position jusqu'à ce que dit de tourner à une position différente. Loisir servos sont fréquemment utilisés dans les véhicules radio-commandés, mais il ya beaucoup d'autres utilisations pour servos.

Le kit d'activités de BASIC Stamp est livré avec un servo que vous pouvez utiliser pour apprendre à écrire des programmes qui contrôlent servos. Vous pouvez également acheter directement à partir de servos Parallax ou de la plupart des magasins de bricolage.

image0.jpg

La meilleure façon de contrôler un servomoteur à partir d'un microcontrôleur BASIC Stamp est d'utiliser la Pulsout commande. Cette commande envoie une impulsion de quelque durée que vous spécifiez à une broche d'E / S de votre choix. La syntaxe de cette commande est la suivante:

Broches Pulsout, la durée

Vous spécifiez la durée en unités de deux microsecondes. Une microseconde est un millionième de seconde. Il ya mille microsecondes à une milliseconde. Ainsi, pour envoyer une impulsion de 1,5 ms avec le Pulsout commande, vous devez spécifier 750 comme la durée, comme ceci:




Pulsout 0750

Ici, une impulsion de 1,5 ms est envoyé à la broche 0.

Voici les Pulsout durée valeurs que vous devez utiliser pour un servo typique de passe pour différents angles.

AngleDuréeAngleDurée
025095778
5278100806
10306105833
15333110861
20361115889
25389120917
30417125944
35444130972
404721351000
455001401,028
505281451056
555561501,083
605831551,111
656111601139
706391651,167
756671701,194
806941751,222
857221801,250
90750

Par exemple, pour déplacer le servo sur la broche 0 à 75 # 176-, utilisez cette commande:

Pulsout 0667

Rappelez-vous que pour maintenir sa position, un servo besoin d'un flux constant d'impulsions environ 20 ms d'intervalle. Ainsi, Pulsout les commandes sont généralement contenues dans les deux FAIRE boucles ou FOR-NEXT boucles. Par exemple, voici un morceau de code qui maintient le servo sur la broche 0 à 45 # 176- indéfiniment:

DOPULSOUT 0,500PAUSE 20LOOP

Voici le programme complet qui se déplace le servo à 45 # 176- quand SW1 (un bouton-poussoir sur la broche 14) est pressé et # 135 176- lorsque SW2 (un bouton-poussoir sur la broche 10) est pressé.

«Programme de contrôle Servo Doug Lowe '15 Juillet, 2011' 'Ce programme se déplace un servo à l'un des deux quand SW1 est pressé» et renvoie le servo en position centrale lorsque SW2 est pressé. {$ STAMP BS2} {$ PBASIC 2.5} Servo PIN 0SW1 PIN 14SW2 PIN 10Position VAR WordPosition = 500DOIF SW1 = 1 = 500ENDIFIF THENPosition SW2 = 1 = 1000ENDIFPULSOUT THENPosition Servo, PositionPAUSE 20LOOP

» » » » Projets électroniques: comment programmer un servo en PBASIC