Modifications

Sauter à la navigation Sauter à la recherche
1 106 octets ajoutés ,  30 janvier 2014 à 21:27
aucun résumé de modification
Ligne 3 : Ligne 3 :  
== Intro ==
 
== Intro ==
   −
{{bloc-etroit|text=Le [http://mchobby.be/PrestaShop/product.php?id_product=253 Shield LCD RGB pour Pi d'Adafruit] (aussi appelé ''RGB LCD plate'' et [http://mchobby.be/PrestaShop/product.php?id_product=253 disponible chez MCHobby]) est un chouette carte équipé d'un afficheur, de 5 boutons et s'installe sur le GPIO du Raspberry Pi. L'afficheur RGB dispose d'un rétro-éclairage RGB – qui, comme vous pouvez le deviner, permet de combiner plusieurs couleurs de base rouge, vert et bleu pour le rétro-éclairage. }}
+
{{bloc-etroit|text=Le {{pl|253|Shield LCD RGB pour Pi d'Adafruit}} (aussi appelé ''RGB LCD plate'' et {{pl|253|disponible chez MCHobby}}) est un chouette carte équipé d'un afficheur, de 5 boutons et s'installe sur le GPIO du Raspberry Pi. L'afficheur RGB dispose d'un rétro-éclairage RGB – qui, comme vous pouvez le deviner, permet de combiner plusieurs couleurs de base rouge, vert et bleu pour le rétro-éclairage. }}
    
{{ADFImage|RASP-LCD-RGB-Intro-02.jpg|480px}}
 
{{ADFImage|RASP-LCD-RGB-Intro-02.jpg|480px}}
Ligne 84 : Ligne 84 :     
== Configurer ==
 
== Configurer ==
 +
 +
<small>Note de MCHobby:<br/>Comme il y a une base (AF_BASE) définie pour permettre l'association et l'identification du MCP23017 à l'adresse 0x20 sur le bus I2C, lcdInit sera capable d'adresser l'afficheur par l'intermédiaire du MCP23017.
 +
En effet, a titre d'exemple, AF_RS contient la valeur de base + un numéro de broche du MCP23017... ce qui indique à lcdInit qu'il y a un intermédiaire de communication entre l'afficheur et le Raspberry Pi. Cet intermédiaire peut être facilement retrouvé car il est déclaré avec mcp23017Setup... qui est dans notre cas un mcp23017 (donc un circuit-intégré pour bus I2C) à l'adresse 0x20 (sur le bus I2C) :-)</small>
 +
 +
Revenons donc au code de Gordon:
    
  <nowiki>  mcp23017Setup (AF_BASE, 0x20) ;
 
  <nowiki>  mcp23017Setup (AF_BASE, 0x20) ;
 
   lcd = lcdInit (2, 16, 4, AF_RS, AF_E, AF_DB4,AF_DB5,AF_DB6,AF_DB7, 0,0,0,0) ;</nowiki>
 
   lcd = lcdInit (2, 16, 4, AF_RS, AF_E, AF_DB4,AF_DB5,AF_DB6,AF_DB7, 0,0,0,0) ;</nowiki>
   −
That’s enough to get the display going, but we really need to turn the backlight on and put the button pins into input mode with the internal pull-ups enabled the buttons short to 0v.
+
Voila, c'est suffisant pour commander l'afficheur. Mais, bien entendu, nous voulons aussi commander le rétro-éclairage et placer les broches des boutons en mode INPUT (entrée) en activant les résistances Pull-Up du MCP23017 la pression sur un bouton ramène le potentiel de la broche à 0v.
   −
Please do see the program source to see how the backlight is setup and the buttons read, but there is nothing special to reading them – e.g. I modified the code that waits for the Enter key to be pressed in the original to wait for the “Select” button on the display:
+
Référez vous au code source du programme pour voir comment est commandé le rétro-éclairage et la saisie de l'état des boutons... mais il n'y a pas grand chose de transcendantal à lire – Par exemple, Gordon a modifier le code pour attendre qu'un bouton "SELECT" soit pressé alors que le programme original attendait que vous frappiez la touche "Entrée".
    
  <nowiki>static void waitForEnter (void)
 
  <nowiki>static void waitForEnter (void)
Ligne 96 : Ligne 101 :  
   printf ("Press SELECT to continue: ") ; fflush (stdout) ;
 
   printf ("Press SELECT to continue: ") ; fflush (stdout) ;
   −
   while (digitalRead (AF_SELECT) == HIGH)      // Wait for push
+
   while (digitalRead (AF_SELECT) == HIGH)      // Attendre la pression du bouton SELECT
 
     delay (1) ;
 
     delay (1) ;
   −
   while (digitalRead (AF_SELECT) == LOW)        // Wait for release
+
   while (digitalRead (AF_SELECT) == LOW)        // Attendre que le bouton soit relaché
 
     delay (1) ;
 
     delay (1) ;
   Ligne 105 : Ligne 110 :  
}</nowiki>
 
}</nowiki>
   −
(it could probably be done better and with some debouncing, but for this little demo, that’s more than sufficient – demonstrating that a simple digitalRead() function call is all you need to read the button via wiringPi which has the mcp23017 registered with it).
+
Note: Cette fonction peut être mieux réalisée en introduisant du [http://arduino103.blogspot.be/2011/12/boutons-contacts-et-deparatisage.html déparasitage logiciel]... mais pour cette démo c'est plus que suffisant. Ce code démontre qu'une simple fonction digitalRead() est tout ce dont vous avez besoin pour lire l'état d'un bouton raccordé sur un MCP23017. PiWiring à enregistré les informations nécessaire permettant d'accéder au bouton en toute transparence.
   −
The demo program uses the up/down buttons to cycle through the LED colours – from Off to Red, Green, Yellow, Blue, Purple, Cyan and finally White.
+
Le programme de démonstration utilise les boutons haut/bas (''up/down'') pour changer la couleur dans l'ordre suivant: éteint à rouge, vert, jaune, bleu, pourpre, cyan et blanc pour terminer.
    
[[Fichier:Pi-WiringPi-Exemple-ShieldRgb-01.jpg|480px]]<br /><small>Source: [http://wirinPi.com wiringPi.com]</small>
 
[[Fichier:Pi-WiringPi-Exemple-ShieldRgb-01.jpg|480px]]<br /><small>Source: [http://wirinPi.com wiringPi.com]</small>
    
{{Pi-WiringPi-TRAILER}}
 
{{Pi-WiringPi-TRAILER}}
29 836

modifications

Menu de navigation