Recherche

Cart
Panier d'achat
0 article(s) / 0.00 €

Outils de développements Starter-kits (8 à 32 bits) Modules PICBASIC


Interface série 8 entrées
- 02/03/2003   -  Lextronic

Les PICBASIC offrent la possibilité de pouvoir communiquer au travers d'un port RS-232. A ce titre, nous allons les utiliser pour réaliser une interface permettant à un PC de connaître l'état de 8 entrées "tout-ou-rien" du PICBASIC. Ainsi cette application vous permettra de récupérer les états de 8 entrées tout-ou-rien du PICBASIC via le port série d'un PC et de les afficher sur l'écran de votre PC. Pour ce faire, il vous faudra réaliser le montage ci-dessous et relier la platine "PB Study Board" à votre PC sur un port série de libre grâce au câble male/femelle "CW014". Les ports "I/O8" à "I/O15" seront raccordés aux boutons-poussoirs de la platine, tandis que le port "I/O16" sera relié à l'entrée "TX" (afin de pouvoir envoyer des données séries du PC).
   
Le programme ci-dessous va envoyer en continu l'état logique des entrées (I/O8 à I/O15) au PC via le port série de ce dernier. Ces informations seront expédiée par la broche (I/O16) du PICBASIC. Pour commencer l'émission des données (voir ligne 10), il vous faudra en premier lieu appuyer sur le premier bouton de la platine (K1). Afin de pouvoir afficher les valeurs sur l'écran du PC, il vous faudra préalablement disposer d'un émulateur de terminal série (vous pouvez par exemple utiliser "Hyper Terminal™", livré avec Windows™. Exécutez donc ce dernier en sélectionnant le numéro du port sur lequel vous avez connecté la platine "PnP Board3". Configurez également "Hyper Terminal™" avec un débit de communication de 9600 bds, 8 bits, 1 stop , aucune parité et aucun contrôle de flux (ce dernier paramètre st important). Plutôt que de renvoyer un octet correspondant au "reflet" des 8 entrées (ce qui ne sera pas très explicite à l'écran), le programme va envoyer l'état successif des 8 entrées ("0" si la touche relative à l'entrée est sollicitée et "1" si la touche relative à l'entrée n'est pas sollicitée). On se retournera alors avec 8 chiffres à l'écran (correspondant ainsi à la représentation binaire de ces entrées). Un caractère "13" est envoyé en fin de chaîne afin que le curseur revienne en début de ligne afin que le PC ré-écrive les chiffres les uns par dessus les autres. Pour récupérer l'état de chaque bit de l'octet correspondant aux 8 entrées, on mémorise dans la variable     k=1.0   l'état de l'octet de poids faible (auxquels on ajoute la valeur &h30 afin d'envoyer la représentation du chiffre "0" (&h30), si l'octet = 0 ou "1" (&h31) si l'octet = "1". Il suffit ensuite d'effectuer une successivement une rotation des bits de l'octet des entrées   i=i>>1  afin de connaître l'état de toutes les entrées.
    
       dim i as byte, J as byte, k as byte
10   i=in(8)
      if i=1 then goto 10   
20   i=bytein(1)
       for j=1 to 8
          k=i.0
          k=k+&h30
          serout 16,103,0,1,[k]
          i=i>>1
       next
       serout 16,103,0,1,[13]
       goto 20   
 
       
Evolutions possibles...
Cet exemple de programme vous permet de vous donner quelques bases et notions sur la façon dont vous pouvez concevoir une interface série. L'état des entrées pourront également être traités au sein de n'importe quelle application capable de gérer une liaison série: Delphi™, langage "C", langage "pascal", Visual Basic™, Windev™, Profilab Expert™... Il conviendra dans ce cas d'envoyer directement un seul octet et de faire le traitement de séparation des "bits" au niveau du PC. Pensez à protéger les entrées du PICBASIC devant recevoir les capteurs tout-ou-rien. Ne connectez jamais de grand fils tels quels sur le PICBASIC - utilisez des dispositifs de protection (optocoupleurs, montage écréteur à diode zener, etc...). 
   
 
 

Interface série 8 sorties - 02/03/2003   -  Lextronic
Cette application vous permettra de piloter les 8 Leds de la platine "PB Study Board" à partir de commandes en provenance du clavier de votre PC. Pour ce faire, il vous faudra réaliser le montage ci-dessous et relier la platine "PnP Board3" à votre PC sur un port série de libre grâce au câble male/femelle "CW014". Les ports "I/O8" à "I/O15" seront raccordés aux Leds de la platine, tandis que le port "I/O17" sera relié à l'entrée "RX" (afin de pouvoir réceptionner les ordres séries du PC avec des niveaux logiques 0/5 V).
 
Le programme très simple ci-dessous est en attente permanent d'un octet sur le port série (I/O 17) du PICBASIC. Si au bout de 5 sec. aucun caractère n'est détecté, le programme retourne en attente en ligne 10. Afin de pouvoir envoyer des ordres à la platine, il vous faudra préalablement disposer d'un émulateur de terminal série (vous pouvez par exemple utiliser "Hyper Terminal™", livré avec Windows™. Exécutez donc ce dernier en sélectionnant le numéro du port sur lequel vous avez connecté la platine "PB Study Board". configurez également "Hyper Terminal™" avec un débit de communication de 9600 bds, 8 bits, 1 stop , aucune parité et aucun contrôle de flux (ce dernier paramètre st important). Le programme est fait de telle sorte que vous puissiez commander ("marche / arrêt) les 8 sorties Leds de la platine "PB Study Board" à l'aide des touches "1" à "8" du clavier numérique de PC. Les touches "0" et "9" permettant respectivement d'éteindre toutes les Leds ou d'allumer toutes les Leds en même temps. Cette possibilité est rendu possible en enlevant la valeur décimale 41 du code retourné par le PC, dès lors en tapant sur la touche 1, la variable I sera égale à la valeur décimale "8" (correspondant au port capable de piloter la Led 1), en tapant la touche 2, la variable I prendra alors la valeur "9" (correspondant au port capable de piloter la Led 2), et ainsi de suite... Un test sera effectué pour vérifier que la valeur de l'octet reçu reste dans les ports attribués à la commande des Leds (ainsi toutes les autres touches seront tout simplement ignorées).
    
       DIM I AS BYTE
       BYTEOUT 1,0
10  SERIN 17,103,0,5000,10,[I]
      I=I-41
      IF I>7 AND I<16 THEN
         TOGGLE I
      END IF
      IF I=7 THEN BYTEOUT 1,0                      ' éteind toutes les Leds en même temps
      IF I=16 THEN BYTEOUT 1,255                 ' Allume toutes les Leds en même temps
      GOTO 10                                       
 
   
Evolutions possibles...
Cet exemple de programme vous permet de vous donner quelques bases et notions sur la façon dont vous pouvez concevoir une interface série. Les ordres issus de votre PC pourront également être générés au sein de n'importe quelle application capable de gérer une liaison série: Delphi™, langage "C", langage "pascal", Visual Basic™, Windev™, Profilab Expert™... Vous pourrez dès lors définir vous même les codes séries reconnus ou non par la carte PICBASIC. Vous pourrez également utiliser plus que 8 sorties (passez sur un PICBASIC-3H si nécessaire). Les Leds pourront être remplacées par des relais (en utilisant un montage à transistor pour les piloter). 
    
  
 

Interface série 4 entrées / 4 sorties - 02/03/2003   -  Lextronic
Cette application vous permettra de piloter les 4 Leds de la platine "PB Study Board" à partir de commandes en provenance du clavier de votre PC. Vous pourrez également conaître l'état logique de 4 entrées du PICBASIC à partir du PC. Pour ce faire, il vous faudra réaliser le montage ci-dessous et relier la platine "PB Study Board" à votre PC sur un port série de libre grâce au câble male/femelle "CW014". Les ports "I/O12" à "I/O15" seront raccordés aux Leds de la platine, tandis que les ports "I/O8 à I/O11" seront raccordés aux boutons-poussoirs de la "PB Study Board". Enfin les ports "I/O16" et "I/O17" seront respectivement raccordés aux broches "TX" et "RX" (afin de pouvoir envoyer et réceptionner des données séries vers/depuis le PC avec des niveaux logiques 0/5 V).
 
Le programme ci-dessous est en attente permanent d'un octet sur le port série (I/O 17) du PICBASIC. Si au bout de 5 sec. aucun caractère n'est détecté, le programme retourne en attente en ligne 10. Afin de pouvoir envoyer des ordres à la platine, il vous faudra préalablement disposer d'un émulateur de terminal série (vous pouvez par exemple utiliser "Hyper Terminal™", livré avec Windows™. Exécutez donc ce dernier en sélectionnant le numéro du port sur lequel vous avez connecté la platine "PB Study Board". configurez également "Hyper Terminal™" avec un débit de communication de 9600 bds, 8 bits, 1 stop , aucune parité et aucun contrôle de flux (ce dernier paramètre st important). Le programme est fait de telle sorte que vous puissiez commander ("marche / arrêt) les 4 premières Leds de la platine "PB Study Board" à l'aide des touches "1" à "4" du clavier numérique de PC. Les touches "0" et "9" permettant respectivement d'éteindre toutes les Leds ou d'allumer toutes les Leds en même temps. Cette possibilité est rendu possible en enlevant la valeur décimale 37 du code retourné par le PC, dès lors en tapant sur la touche 1, la variable I sera égale à la valeur décimale "12" (correspondant au port capable de piloter la Led 1), en tapant la touche 2, la variable I prendra alors la valeur "13" (correspondant au port capable de piloter la Led 2), et ainsi de suite... Un test sera effectué pour vérifier que la valeur de l'octet reçu reste dans les ports attribués à la commande des Leds (ainsi toutes les autres touches seront tout simplement ignorées). Toutefois si vous sollicitez la touche "7" du clavier du PC, dans ce cas le PICBASIC va retourner un à un l'état logique ("0" ou "1") des 4 ports "I/O8" à "I/O11" reliés aux boutons-poussoirs de la platine "PB Study Board" afin de les afficher sur l'écran d'Hyper terminal™ du PC (un caractère "13" est envoyé en fin de chaîne afin que le curseur revienne en début de ligne pour re-écrire par dessus les même chiffres lors de l'interrogation suivante). On notera toutefois que si l'état des poussoirs changent, vous ne verrez pas évoluer ces derniers en temps réel à l'écran du PC (vous ne connaissez l'état des poussoirs de la carte "PnP Board" que sur "interrogation" via la touche "7" du clavier du PC).
          
       DIM I AS BYTE,J AS BYTE, K AS BYTE
10  SERIN 17,103,0,5000,10,[I]
      I=I-37
      IF I>11 AND I<16 THEN
        TOGGLE I
      END IF
      IF I=11 THEN BYTEOUT 1,0 ' éteind toutes les Leds en même temps
      IF I=20 THEN BYTEOUT 1,255 ' Allume toutes les Leds en même temps
      IF I=18 THEN ' Demande de lecture des 4 entrées
         I=IN(8)+&H30        
         SEROUT 16,103,0,1,[I]
         I=IN(9)+&H30        
         SEROUT 16,103,0,1,[I]
         I=IN(10)+&H30        
         SEROUT 16,103,0,1,[I]
         I=IN(11)+&H30        
         SEROUT 16,103,0,1,[I]
         SEROUT 16,103,0,1,[13]
      END IF
      GOTO 10 
 
   
Evolutions possibles...
Cet exemple de programme vous permet de vous donner quelques bases et notions sur la façon dont vous pouvez concevoir une interface "entrées/sorties" séries. Les ordres issus et recus vers/par le PC pourront également être générés au sein de n'importe quelle application capable de gérer une liaison série: Delphi™, langage "C", langage "pascal", Visual Basic™, Windev™, Profilab Expert™... Vous pourrez dès lors définir vous même les codes séries reconnus ou non par la carte PICBASIC. Vous pourrez également utiliser plus que 4 entrées et 4 sorties (passez sur un PICBASIC-3H si nécessaire). Les Leds pourront être remplacées par des relais (en utilisant un montage à transistor pour les piloter). En ce qui concerne les entrées, ne connectez jamais de grand fils tels quel sur le PICBASIC - utilisez des dispositifs de protection (optocoupleurs, montage écréteur à diode zener, etc...).