Logiciels de C.A.O / Robotique...
Contrôle d'accès / Domotique...
Alimentations / Piles / Boîtiers
Circuits imprimés / Prototypage
Connectique / Cordons / Câbles
Electronique de loisir / Fusibles
Haut-parleurs / Buzzer / Micros
Jeux de lumières / Sono / Kits et
modules / Matériels de soudage
|
![]() Le programme "PROGMD22.BAS" vous montrera comment gérer le module de pilotage spécialisé "MD-22" au moyen d'une liaison I2C™ via un PICBASIC-3H. Commande d'un moteur "cc" - Lextronic Si il y a un domaine dans lequel les PICBASIC excellent, c'est sûrement celui de la robotique. Ainsi les PICBASIC disposent d'une multitude de fonctions "pensées" pour ce type d'application. Parmi celles-ci, vous disposerez d'une instruction capable de générer des signaux "PWM" en tache de fond. C'est à dire qu'au lieu de se torturer les méninges comme sur de nombreux produits concurrents pour écrire votre routine de génération de signaux "PWM" en essayant de l'intégrer tant bien que mal dans le déroulement de votre programme principale, vous n'aurez besoin que d'une seule instruction sur les PICBASIC, laquelle génèrera automatiquement pour vous en tache de fond un signal capable de piloter (avec une électronique de puissance associée) un moteur "CC". Avec les PICBASIC, tout est plus simple, plus rapide, plus professionnel ! ![]() Réalisez le montage ci-dessus en prenant garde à ne pas inverser le sens du transitor et de la diode... Utilisez également impérativement un moteur capable de fonctionner en +5V et ne consommant pas plus de 120 mA à plein régime. Le programme ci-dessous vous permettra de piloter la vitesse de rotation du moteur à partir de la position d'un potentiomètre relié sur l'entrée du convertisseur analogique/numérique de l'entrée "I/O 0" du "PICBASIC-3B". Cette valeur (pouvant être comprise entre 0 et 1023, car le convertisseur dispose d'une résolution de 10 bits) va être divisée par 4 afin d'obtenir une valeur comprise entre 0 et 255 (valeur autorisée par l'instruction PWM). La position du potentiomètre est ensuite lue en permanence afin d'actualiser en permanence la valeur du signal "PWM". Nous insistons une nouvelle fois sur le fait que le signa PWM est vraiment géré en tache de fond. Pour vous en assurer, modifiez la ligne 20 par "20 GOTO 20". Lors de l'excécution du programme, ce dernier va réaliser une "boucle" sans fin, pourtant le moteur ne s'arrête pas de tourner. DIM I AS INTEGER 10 I = ADIN(0) I = I/4 PWM 9,I 20 GOTO 10 Evolutions possibles... Cet exemple de programme vous permet de vous donner quelques bases et notions sur la façon dont vous pouvez piloter un moteur "CC". Sachant que le PICBASIC est capable (toujours avec la même simplicité) de gérer indépendamment 2 moteurs "CC" , il va de soit que la conception d'un petit robot mobile sera d'une simplicité enfantine (consultez la rubrique notes d'applications pour d'avantages d'informations et d'exemples). Commande d'un servomoteur - Lextronic Les PICBASIC offrent la possibilité de pouvoir piloter directement des servomoteurs en générant des impulsions de longueurs variables. A ce titre, n'importe quelle broche d'un PICBASIC pourra piloter un servomoteur. Par exemple, on reliera alors la broche "I/O 1" à l'entrée de commande d'un servomoteur ainsi que la broche "I/O 0" à l'entrée d'un potentiomètre (à l'aide d'un '"PICBASIC-3B"). Afin de placer le palonier du servomoteur en position médiane (0° - il faudra lui envoyer des impulsions de l'ordre de 1,5 ms). En se référant à la notice des PICBASIC, on en déduit que l'impulsion de l'instruction SERVO devra avoir pour valeur 1875 (1,5 / 0,0008). Il suffira alors de déduire à cette valeur, la valeur de la variable lue par le convertisseur analogique/numérique du port "I/O 0"). Dès lors, la position du servo réagira proportionnellement à la position de la résistance ajustable. L'instruction DELAY 15 s'explique de fait que les impulsions transmissent au servomoteur doivent être espacée de 15 ms env. DIM I AS INTEGER 10 I=ADIN(0) I=1875-I SERVO 1,I DELAY 15 GOTO 10 Commande d'un moteur pas-à-pas - Lextronic Les moteurs pas-à-pas sont très utilisés pour leur grande précision dans de nombreuses applications (imprimantes, scanners, lecteurs de disquettes, etc...). Il est très facile (en association avec une électronique de "puissance") de les piloter à l'aide des modules "PICBASIC". ![]() Les moteurs pas-à-pas les plus courants et les plus simples à gérer sont des modèles 4 phases qui nécessitent d'être alimentés selon des cycles pré-définis (voir ci-dessous). Grâce à l'instruction "BYTE OUT" et au schéma ci-après, il est très facile de recréer ses signaux. Le circuit intégré "ULN2803" servira d'interface de puissance. La vitesse de rotation du moteur sera fonction de la variable "I". Le sens de rotation du moteur pourra être changé en inversant simplement l'ordre d'exécution des instructions "BYTEOUT". ![]() DIM I AS BYTE 10 I = 50 BYTEOUT 1,&B1100 DELAY I BYTEOUT 1,&B0110 DELAY I BYTEOUT 1,&B0011 DELAY I BYTEOUT 1,&B1001 DELAY I GOTO 10 Commande d'un moteur "cc" - Lextronic La commande d'un moteur à courant continu est très simple en utilisant l'instruction "PWM". Cette instruction permet de générer en tâche de fond un signal cyclique dont la largeur des impulsions est modifiable et proportionnelle à la valeur de la variable "passée" dans l'instruction. ![]() Il en résulte que la valeur moyenne du signal généré peut être très facilement contrôlé par cette variable dont la valeur peut s'étendre de 1 à 255. Pour la valeur 255, le signal de sortie sera maximum (soit 5 V), pour une valeur de 128, on se retrouvera avec un signal dont la valeur moyenne sera de 50 % de la tension max. (soit 2,5 V), pour une valeur de 64, le signal de sortie sera de 25 % de la tension max. (soit 1,25 V) et ainsi de suite. L'exemple qui suit montre comment piloter un petit moteur en vous laissant la possibilité de pouvoir modifier sa vitesse de rotation à l'aide de 2 boutons-poussoirs tout en indiquant sa valeur sur un afficheur LCD à commande série. ![]() DIM I AS BYTE DIM J AS BYTE SET PICBUS HIGH LCDINIT I = 100 ' Vitesse initiale du moteur OUT 9,1 ' Démarre le moteur à pleine vitesse GOSUB 100 ' Pendant quelques millisecondes 10 PWM 9,I ' Génère le signal "PWM" IF KEYIN(0) = 0 THEN I=I+1 ' Test BP (+ Vite) IF KEYIN(1) = 0 THEN I=I-1 ' Test BP (- vite) LOCATE 0,0 PRINT DEC(I) ' Affiche la vitesse GOTO 10 100 FOR J=0 TO 100 |
||||||||