User manual
14 19
3.2. Statuts LED
Les LED fonctionnent de la même façon que sur la carte mère du robot. Dans tous les 
cas il n’y a que 4 LED de disponible et les appellations seront différentes car ces LED 
sont connectées à un registre à glissement externe, également utilisé pour l’écran LC. 
Ce registre à glissement est aussi désigné comme « External Port ».
Le RP6-M32 dispose d’une fonction « setLEDs » :
Exemple : 
Voici une autre alternative possible :
3.3. Touches
Contrairement au RP6, 5 touches du RP6-M32 ont été connectées à un canal ADC, ce 
qui a pour avantage de n’utiliser qu’une broche pour les 5. L’inconvénient est, par contre, 
que ce circuit simplifié utilise 5 résistances identiques (cf. plan du circuit sur le CD) ne 
permettant pas d’appuyer sur plus d’une touche à la fois. Cela suffit amplement pour les 
touches de commande !
Cette fonction détermine quelle touche est pressée. L’ADC est alors évaluée et comparée 
avec  des  valeurs  seuil  prédéfinies.  Ces  valeurs  seuil  peuvent  être  adaptées  dans  la 
Library afin que cela fonctionne correctement avec le RP6-M32. La valeur ADC mesurée 
peut  dévier  en  raison  de  la  tolérance  de  fabrication  habituelle  de  la  résistance. Les 
valeurs seuil se trouvent dans la fonction getPressedKeyNumber.
Cette fonction vérifie lorsqu’une touche est pressée et restitue une fois le numéro de la 
touche  –  contrairement  au  getPressedKeyNumber,  où  les  numéros  des  touches  sont 
restitués  tant  que  la  touche  est  pressée. Cette fonction  est  très  utile  pour l’évaluation 
d’une valeur de touche dans la boucle principale sans interruption du flux du programme.
Il en va de même pour cette fonction :
L’EEPROM  nécessite  5ms  pour  écrire  les  données,  temps  pendant  lequel  vous  ne 
pouvez pas accéder  à l’EEPROM.  Afin  d’évaluer le  statut  actuel,  vous pouvez  utiliser 
cette fonction : 
avec par exemple 
vous  pouvez  vérifier  si  l’EEPROM  n’est  plus  occupé  par  l’écriture  de  données.  Les 
précédentes  fonctions  ci-dessus  le  font également,  donc  vous n’avez besoin  de cette 
fonctionnalité  que  si  vous  avez  besoin  d’effectuer  d’autres  choses  dans  ce  laps  de 
temps.
3.8. ADC
Les canaux ADC peuvent être lus avec la fonction suivante, similaire à celle du RP6Lib : 
Il n’y a cependant pas de variante automatique permettant de lire séquentiellement les 
canaux ADC en arrière plan pour le RP6-M32. 
Bien évidemment, les canaux sont intitulés différemment que ceux du RP6Lib :
3.9. Ports I/O
Le RP6 CONTROL fournit le système avec 14 ports I/O disponibles et nous allons vous 
décrire brièvement comment accéder de manière générale aux ports I/O de l’AVR. 
Le ATMEGA32 possède 4 ports I/O. Chacun de ses ports va jusque 8 bit et est contrôlé 
par  3  registres :  un  registre  contrôle la « direction »  des  pins  I/O  (DDRx),  c’est-à-dire 
savoir si un pin est utilisé comme entrée ou sortie ; un registre pour écrire (PORTx) et un 
registre pour lire (PINx).
Si vous souhaitez utiliser un pin I/O comme sortie, par exemple pour allumer une LED, 
vous devez d’abord positionner le bit correspondant sur 1 dans le registre DDRx. 










