User manual
16 17
3.6. Écran LC
L’écran LC est idéal pour donner les valeurs du capteur et les messages de notifications, 
lorsque le robot n’est pas relié à un ordinateur. La sortie de l’écran LC fonctionne exacte-
ment  comme  sur  une  interface  séquentielle  –  mais  il  y  a  bien  évidemment  quelques 
particularités.  Regardez  au  maximum  les  programmes d’exemples, vous comprendrez 
plus facilement comment vous pouvez utiliser l’écran LC. 
Cette fonction doit toujours être appelée au démarrage du programme, afin d’initialiser le 
LCD. 
Cette fonction (et write4BitLCDData) ne nécessite rien de particulier – nous ne faisons 
que décrire ici pour vous expliquer rapidement comment est commandé l’écran. 
Le LCD doit fonctionner en mode 4 Bit, impliquant  l’utilisation  de  4 lignes de données 
et de 2 circuits de commande (Enable (EN) et Register Select (RS), Read/Write (R/W) 
est relié en permanence à la masse, le LCD ne servant qu’à l’écriture. La lecture n’est 
pas possible  et  pas  nécessaire).  Les  4  lignes de  données  sont branchées  au registre 
de glissement comme les LED, afin de garder des ports libres. De façon analogue à la 
fonction setLED, setLCDD  fixe les lignes de données  du  LCD. Toutefois, cette  fonction 
fixe également le signal Enable, afin que le LCD prenne en charge les données. 
Les bytes à transmettre sont partagé afin de transférer les ordres et les données 8 bit 
au LCD. La fonction write4BitLCDData prend en charge ce processus : les données 8 bit 
sont partagées en 4 « Nibbles » puis transférées.
Cette fonction appelle write4BitLCDData et fixe les lignes RS sur low afin d’émettre une 
commande au LCD. 
Envoie au LCD la commande d’effacer son contenu. 
Efface une plage particulière de l’écran. Les paramètres sont : ligne, position de départ 
de la ligne et longueur de la plage à effacer. 
Exemple : 
Fixe le curseur texte à une position précise sur l’écran. Le paramètre « line » est 0 pour 
la ligne  supérieur  et  1  pour  la  ligne  inférieure.  Le paramètre  « pos »  doit être  compris 
entre 0 et 15 pour les LCD 2 x 16.
Envoie un  caractère  à  l’écran  -  cela  fonctionne  de  la  même  manière  que  la  fonction 
writeChar pour les interfaces séquentielles. Vous devez vous assurer que le curseur de 
l’écran se trouve à la bonne position. Sinon le module n’affichera pas votre message !
Exemple :
De  la  même  manière  que  pour  la  fonction  des  interfaces  séquentielles,  writeStringLCD 
envoie une cha
îne de caractères terminée par zéro du SRAM au LCD. Vous ne devez utiliser 
cette fonction que si le texte est r
éellement dans la RAM et non pas prédéfini. Le macro : 
Convient  mieux,  puisque  du  texte  va  directement  être  lu  depuis la mémoire,  sans  un 
détour par la mémoire vive. 
Grâce à cette fonction, vous pouvez afficher un texte d’une longueur précise sur le LCD. 
Les paramètres sont identiques dans la mesure où il s’agit de la même fonction pour les 
interfaces séquentielles. 
Afin de simplifier l’émission du texte sur le LCD, vous pouvez écrire sur les deux lignes 
du LCD avec cette fonction et un appel. 
Exemple 
Qui  est  déjà  une  fonction  connue  pour  les  interfaces  séquentielles  pour  afficher  les 
calculs dans les formats BIN, OCT, DEC ou HEX sur le LCD. 
Le writeIntegerLenghtLCD est identique, jusqu’au nom, à une fonction connue pour les 
interfaces séquentielles. 
3.7. Bus SPI et EEPROM SPI
Sur  le  bus  SPI  (=Serial  Peripheral  Interface)  sont  reliés  l’EEPROM  et  le  registre  à 
glissement 8 Bit. Un socle pour un autre AT25256 compatible EEPROM (par exemple ST 
M 95256 avec un bo
îtier DIP à 8 pôles) peut être soudé. Vous pourriez contrôler d’autres 
IC  SPI,  mont
és  en  cascade  sur  la  carte  mère  avec  le  registre  à  glissement  –  nous 
vous conseillons  cependant  de  pr
éférer l’usage  de  bus I²C  et  de  limiter  ces  méthodes 
alternatives pour des utilisations pr
écises, dans lesquelles un bus I²C ne peut être utilisé !
Nous avons prévu le système avec les fonctions spécifiques pour accéder à l’EEPROM 
et le registre à glissement. Ainsi, nous vous déconseillons d’utiliser directement le bus 
SPI pour votre programme. Mais si vous avez besoin d’accéder au bus SPI, les fonctions 
suivantes vous seront utiles.
Transfère un byte de données sur un bus SPI. 










