Arduino Nano - Interface SPI ILI9341 ILI9488 ST7789 Écran TFT LCD Tactile
Ce guide vous accompagne étape par étape dans l'utilisation d'un écran TFT SPI sur l'Arduino Nano. Le Nano intègre le même ATmega328P que l'Uno dans un format compact adapté aux breadboards — il possède les mêmes broches SPI matérielles, donc le câblage TFT est identique à l'Uno. La principale limitation à garder à l'esprit est la SRAM de 2 Ko : évitez les grands bitmaps en mémoire et utilisez PROGMEM pour les données d'image.
Voici ce que vous allez parcourir :
- Câblage d'un écran TFT SPI à l'Arduino Nano.
- Dessin de formes, lignes et zones remplies.
- Affichage de texte et de nombres à plusieurs tailles.
- Dessin d'images bitmap depuis la mémoire programme (PROGMEM).
- Dessin d'images bitmap chargées depuis une carte SD.
- Rendu de texte avec une police externe personnalisée.
- Lecture des coordonnées tactiles brutes depuis un contrôleur XPT2046.
- Dessin à l'écran par glissement tactile.
- Création de boutons tactiles interactifs.
- Calibration de l'écran tactile.
- Utilisation d'un bus SPI secondaire ou personnalisé pour l'affichage.
Ce guide couvre les écrans TFT LCD SPI tactiles et non tactiles. Il fonctionne avec les panneaux de 1,3, 1,54, 2,2, 2,4, 2,8, 3,2 et 3,5 pouces pilotés par les puces ILI9341, ILI9488 ou ST7789.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Qu'est-ce que l'Écran TFT SPI ?
Un module d'écran TFT SPI est un panneau LCD couleur piloté par une puce contrôleur via un bus SPI à 4 fils. La bibliothèque DIYables_TFT_SPI prend en charge trois puces pilotes populaires :
- ILI9341 — couleur RGB565 16 bits, jusqu'à 40 MHz SPI.
- ILI9488 — couleur RGB666 18 bits sur SPI, jusqu'à 24 MHz.
- ST7789 — couleur RGB565 16 bits, jusqu'à 40 MHz SPI.
Recommandation : Si vous n'avez pas encore acheté d'écran, nous recommandons le pilote ST7789. Il est largement disponible, fonctionne à pleine vitesse SPI 40 MHz et est le choix le plus simple pour les nouveaux projets.
Tout le dessin est fait via l'API Adafruit GFX, qui fournit des formes, du texte, des polices et une sortie bitmap.
Brochage
La plupart des modules d'écran TFT LCD SPI ont les broches suivantes :
Broches d'affichage :
| Pin | Function |
|---|---|
| VCC | Power supply |
| GND | Ground |
| CS | Chip Select — pulled low to select the display on the SPI bus |
| DC / RS | Data / Command select — high for pixel data, low for commands |
| RST | Hardware reset — optional; tie to 3.3V if unused |
| MOSI / SDI / SDA | SPI data in (MCU → display) |
| SCK / CLK | SPI clock |
| MISO / SDO | SPI data out (display → MCU) — optional for display-only use |
| LED / BL / BLK | Backlight power — connect to 3.3V or a PWM pin for dimming |
Broches de la carte SD (si votre application a besoin d'accéder à la carte SD) :
| Pin | Function |
|---|---|
| SD_CS / TF_CS | SD card Chip Select |
| MOSI / SDI | MOSI — data from MCU to SD card |
| SCK / CLK | SCK — SPI clock |
| MISO / SDO | MISO — data from SD card to MCU |
Pour les écrans TFT qui prennent en charge le tactile, il y a des broches tactiles supplémentaires (si votre application utilise la fonction tactile et si l'écran la prend en charge) :
| Pin | Function |
|---|---|
| T_CS | Touch controller Chip Select |
| T_CLK | SCK — SPI clock |
| T_DIN | MOSI — data from MCU to touch controller |
| T_DO | MISO — data from touch controller to MCU |
| T_IRQ | Touch interrupt — optional; signals when the screen is being touched |
Remarque : Certains modules d'affichage non tactiles exposent également les broches T_CS, T_CLK, T_DIN, T_DO et T_IRQ. Celles-ci sont non fonctionnelles sur ces cartes — le circuit intégré du contrôleur tactile n'est pas monté. Elles apparaissent parce que le PCB réutilise la même conception que la version tactile pour réduire les variantes de fabrication.

Schéma de Câblage
⚠ Important — incompatibilité de tension : L'Arduino Nano est une carte 5V. Ses broches GPIO délivrent une logique 5V, mais les écrans TFT SPI fonctionnent à 3,3V. Connecter les lignes de signal (MOSI, SCK, CS, DC, RST et T_CS si vous utilisez le tactile) directement du Nano à l'écran endommagera l'écran. Vous devez utiliser un Convertisseur de Niveau 5V vers 3,3V sur chaque ligne de signal piloté par le MCU entre le Nano et l'écran. La ligne MISO (écran → MCU) n'a pas besoin de convertisseur de niveau. Un seul module 4 canaux suffit pour le câblage sans tactile ; le câblage avec tactile nécessite 6 canaux au total (ajouter T_CS), donc utilisez deux modules 4 canaux ou un module 8 canaux. Connectez le VCC du TFT à la broche 3,3V du Nano.
Sans Tactile
Connectez MOSI à D11, SCK à D13, MISO à D12 sur le Nano. CS, DC et RST peuvent être n'importe quel GPIO disponible — D10, D9, D8 sont utilisés dans les exemples.
Affichage :
| TFT Pin | Arduino Nano Pin | Description |
|---|---|---|
| VCC | 3.3V | Power supply (3.3V only — the display runs at 3.3V) |
| GND | GND | Ground |
| CS | D10 | Chip Select |
| DC / RS | D9 | Data / Command select |
| RST | D8 | Reset (optional) |
| MOSI / SDI | D11 | Hardware SPI MOSI |
| SCK | D13 | Hardware SPI clock |
| MISO / SDO | D12 | Hardware SPI MISO (optional) |
| LED / BL | 3.3V | Backlight power |
Carte SD (si votre application a besoin d'accéder à la carte SD) :
| SD Pin | Arduino Nano Pin | Description |
|---|---|---|
| SD_CS / TF_CS | any free GPIO | SD card Chip Select |
| MOSI / SDI | D11 | Shared with display MOSI (D11) |
| SCK / CLK | D13 | Shared with display SCK (D13) |
| MISO / SDO | D12 | Shared with display MISO (D12) |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Avec Tactile
Connectez le contrôleur tactile XPT2046 au bus SPI de l'Arduino Nano, partageant D11, D13 et D12 avec l'affichage.
Affichage :
| TFT Pin | Arduino Nano Pin | Description |
|---|---|---|
| VCC | 3.3V | Power supply (3.3V only — the display runs at 3.3V) |
| GND | GND | Ground |
| CS | D10 | Chip Select |
| DC / RS | D9 | Data / Command select |
| RST | D8 | Reset (optional) |
| MOSI / SDI | D11 | Hardware SPI MOSI |
| SCK | D13 | Hardware SPI clock |
| MISO / SDO | D12 | Hardware SPI MISO (optional) |
| LED / BL | 3.3V | Backlight power |
Contrôleur tactile (si votre application utilise la fonction tactile et si l'écran la prend en charge) :
| Touch Pin | Arduino Nano Pin | Description |
|---|---|---|
| T_CS | any free GPIO | Touch Chip Select |
| T_IRQ | any free GPIO | Touch interrupt (optional) |
| T_DIN | D11 | Shared with display MOSI (D11) |
| T_CLK | D13 | Shared with display SCK (D13) |
| T_DO | D12 | Shared with display MISO (D12) |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Voir Comment alimenter un Arduino Nano..
Si votre MCU dispose de deux interfaces SPI matérielles ou plus, vous pouvez assigner chaque périphérique (affichage, carte SD, contrôleur tactile) à son propre bus SPI dédié. Si votre MCU n'a qu'une seule interface SPI matérielle, les trois périphériques partagent les mêmes trois lignes de données (MOSI, SCK, MISO) — sur le Nano ce sont D11, D13 et D12. Chaque périphérique a sa propre broche CS, donc un seul est actif à la fois. La bibliothèque DIYables_TFT_SPI gère à la fois l'affichage et le contrôleur tactile XPT2046 via une seule API — aucune bibliothèque SPI séparée n'est nécessaire pour le côté tactile.
Configuration de la Bibliothèque
- Branchez l'Arduino Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE. Réglez la carte sur Arduino Nano et sélectionnez le port correspondant.
- Allez au panneau Bibliothèques à gauche.
- Tapez "DIYables_TFT_SPI" dans la zone de recherche. Cherchez la bibliothèque de DIYables.
- Cliquez sur Installer. Lorsqu'on vous le demande, installez toutes les dépendances.
- Search for DIYables TFT SPI created by DIYables.io and click the Install button.
Remarque : Si votre Nano utilise un ancien bootloader, sélectionnez ATmega328P (Old Bootloader) sous Processeur dans le menu Outils.
Code de Base
Chaque sketch construit avec la bibliothèque DIYables_TFT_SPI commence par cette base :
Passez les dimensions physiques en pixels du panneau au constructeur. Une mauvaise taille entraîne un découpage ou un décalage de l'image.
Code Arduino Nano - Dessiner des Formes
L'exemple DrawShapes dessine des cercles, des triangles, des rectangles, des rectangles arrondis et des lignes en utilisant les primitives Adafruit GFX.
Suivez les Étapes
- Câblez le module TFT au Nano en utilisant le tableau ci-dessus.
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- L'écran affiche une grille répétée de formes colorées.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| begin() | Initialize the display controller. | TFT_display.begin(); |
| setRotation(r) | Rotate 0-3. 1=landscape. | TFT_display.setRotation(1); |
| fillScreen(color) | Paint the whole screen. | TFT_display.fillScreen(WHITE); |
| colorRGB(r,g,b) | Make a 16-bit color value. | colorRGB(0,255,0) |
| fillCircle(x,y,r,color) | Solid circle. | TFT_display.fillCircle(60,60,30,RED); |
| drawRect(x,y,w,h,color) | Rectangle outline. | TFT_display.drawRect(10,10,80,50,BLUE); |
| fillTriangle(x0,y0,x1,y1,x2,y2,color) | Filled triangle. | TFT_display.fillTriangle(60,10,10,110,110,110,GREEN); |
Code Arduino Nano - Afficher du Texte et des Nombres
L'exemple ShowTextAndNumber affiche des chaînes et des valeurs numériques à l'écran en utilisant le moteur de texte GFX intégré.
Suivez les Étapes
- Câblez et téléversez comme ci-dessus.
- L'écran affiche plusieurs lignes de texte et de chiffres.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| setTextColor(color) | Sets the foreground color for all following text. | TFT_display.setTextColor(WHITE); |
| setTextSize(size) | Scales text by a pixel factor. Size 1 = 6×8 px. Keep size small to fit the Nano's tiny screen. | TFT_display.setTextSize(1); |
| setCursor(x, y) | Positions the text cursor at (x, y). | TFT_display.setCursor(0, 10); |
| print(value) | Prints a string or number at the cursor. Keep strings short to save SRAM. | TFT_display.print("Nano!"); |
| println(value) | Prints and wraps to the next line. | TFT_display.println(42); |
Code Arduino Nano - Afficher une Image
L'exemple DrawImage affiche un bitmap couleur RGB565 à l'écran. Le Nano n'a que 2 Ko de SRAM, donc les données de pixels doivent résider dans la mémoire flash du programme en utilisant le mot-clé PROGMEM. Le fichier compagnon bitmap.h contient un tableau const uint16_t déclaré PROGMEM. La bibliothèque lit directement depuis la flash au moment du dessin, laissant la SRAM intacte.
Placez bitmap.h dans le même dossier de sketch avant la compilation.
Suivez les Étapes
- Copiez bitmap.h dans le même dossier que le sketch.
- Câblez l'écran TFT au Nano en utilisant le tableau de broches ci-dessus (D11, D13, D12 pour SPI).
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- L'écran rend l'image bitmap PROGMEM.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| drawRGBBitmap(x,y,bitmap,w,h) | Draws an RGB565 bitmap from a PROGMEM array. Position (x, y) is the top-left corner. | TFT_display.drawRGBBitmap(0, 0, myImage, 240, 320); |
| fillScreen(color) | Clears the screen to a solid color before drawing. | TFT_display.fillScreen(BLACK); |
Code Arduino Nano - Afficher une Image depuis Carte SD
L'exemple DrawImageSDcard lit un fichier d'image brut RGB565 depuis une carte SD et le diffuse vers l'écran par petits morceaux. Parce que les données sont diffusées plutôt que chargées dans un tampon complet, même le Nano peut afficher de grandes images sans manquer de SRAM.
Câblez le module SD aux mêmes broches SPI que l'écran (D11/D13/D12) et connectez sa ligne CS à une broche séparée définie comme SD_CS_PIN.
Suivez les Étapes
- Câblez le module de carte SD au Nano. Partagez le bus SPI : MOSI→D11, SCK→D13, MISO→D12. Connectez SD CS à la broche définie comme SD_CS_PIN.
- Copiez une image binaire brute RGB565 à la racine de la carte SD. La largeur et la hauteur de l'image doivent correspondre à votre panneau.
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- L'image est lue depuis la carte et affichée à l'écran.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| startWrite() | Opens a direct SPI transaction, holding the display CS asserted. | TFT_display.startWrite(); |
| setAddrWindow(x0,y0,x1,y1) | Defines the rectangular region to receive pixel data. | TFT_display.setAddrWindow(0, 0, 239, 319); |
| pushColors(buf, len) | Sends a buffer of RGB565 pixel values to the display. Keep the buffer small to stay within the Nano's SRAM budget. | TFT_display.pushColors(buf, 256); |
| endWrite() | Closes the SPI transaction and releases CS. | TFT_display.endWrite(); |
Code Arduino Nano - Utiliser une Police Externe
L'exemple UseExternalFont remplace la police bitmap 5×7 intégrée par une police personnalisée compatible Adafruit GFX plus nette. Sélectionnez la police en passant un pointeur vers sa structure à setFont(). Appelez setFont(NULL) pour revenir à la police intégrée à tout moment.
Suivez les Étapes
- Câblez l'écran TFT au Nano en utilisant le tableau de broches ci-dessus.
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- L'écran rend le texte avec la police personnalisée.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| setFont(&FontName) | Activates a custom GFX-compatible font. Passing NULL restores the built-in 5×7 font. | TFT_display.setFont(&FreeSans12pt7b); |
| setCursor(x, y) | Moves the text cursor to the given pixel position. | TFT_display.setCursor(10, 40); |
| setTextColor(color) | Sets the foreground color for printed text. | TFT_display.setTextColor(WHITE); |
| print(text) | Prints a string using the active font at the current cursor. | TFT_display.print("Nano!"); |
Code Arduino Nano - Obtenir un Point Tactile
L'exemple TouchGetPoint lit les valeurs ADC brutes depuis un contrôleur tactile XPT2046 et les affiche dans le Moniteur Série. Parcourez cet exemple en premier pour voir la plage de coordonnées brutes que votre panneau produit — ces extrêmes sont ce que vous utiliserez lors de la calibration.
Câblage : partagez le bus SPI (D11/D13/D12) entre le XPT2046 et l'écran. Connectez T_CS à D7 et T_IRQ à D6.
Suivez les Étapes
- Câblez le XPT2046 au Nano. Partagez D11 (MOSI), D13 (SCK), D12 (MISO) avec l'écran. T_CS→D7, T_IRQ→D6.
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- Ouvrez le Moniteur Série à 9600 bauds. Appuyez sur différentes parties de l'écran pour voir les valeurs brutes X, Y et Z.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| initTouchSPI(cs, irq) | Starts up the XPT2046 on the shared SPI bus. Pass -1 for irq if the interrupt pin is not wired. | TFT_display.initTouchSPI(7, 6); |
| readTouchRaw(x, y, z) | Returns raw ADC coordinate values with no calibration applied. Returns true when the screen is touched. | TFT_display.readTouchRaw(x, y, z); |
Code Arduino Nano - Dessin Tactile
L'exemple TouchDraw crée une application de dessin au doigt sur le Nano. Chaque point que le doigt touche produit un petit cercle rempli à la coordonnée d'écran calibrée correspondante, et le glissement construit un trait continu.
Suivez les Étapes
- Câblez le XPT2046 au Nano comme décrit dans la section Touch Get Point.
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- Faites glisser un doigt sur l'écran pour dessiner. Levez et appuyez à nouveau pour commencer un nouveau trait.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| initTouchSPI(cs, irq) | Starts the XPT2046 on the shared SPI bus. | TFT_display.initTouchSPI(7, 6); |
| setTouchCalibration(minX,maxX,minY,maxY) | Maps raw ADC readings to screen pixel coordinates. Get these numbers from the TouchCalibration example. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| setTouchInvertX(invert) / setTouchInvertY(invert) | Flips the touch axis when X or Y is mirrored on your specific panel or batch. Call BEFORE setTouchCalibration(). | TFT_display.setTouchInvertY(true); |
| getTouch(x, y) | Returns calibrated touch coordinates in pixels. Returns true while the screen is pressed. | if (TFT_display.getTouch(x, y)) { ... } |
| fillCircle(x, y, r, color) | Draws a small dot at the touch position. | TFT_display.fillCircle(x, y, 3, RED); |
Code Arduino Nano - Bouton Tactile
L'exemple TouchButton dessine des boutons rectangulaires à l'écran et écoute les appuis dans la zone de chaque bouton. Lorsqu'un bouton est appuyé, il se met en surbrillance et déclenche son action. C'est la base d'un menu piloté par le tactile sur le Nano.
T_IRQ est optionnel. Passez -1 comme argument irq si vous préférez ne pas connecter la broche d'interruption.
Suivez les Étapes
- Connectez T_CS à D7. T_IRQ peut être laissé non connecté.
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- Appuyez sur les boutons à l'écran. Chacun devrait changer de couleur lorsqu'il est appuyé.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| initTouchSPI(cs, irq) | Starts the XPT2046. Passing -1 for irq disables the interrupt pin and uses polling instead. | TFT_display.initTouchSPI(7, -1); |
| setTouchCalibration(minX,maxX,minY,maxY) | Applies calibration so getTouch() returns accurate pixel positions. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| setTouchInvertX(invert) / setTouchInvertY(invert) | Flips the touch axis when X or Y is mirrored on your specific panel or batch. Call BEFORE setTouchCalibration(). | TFT_display.setTouchInvertY(true); |
| getTouch(x, y) | Gets the calibrated touch position. Returns true when the screen is being touched. | if (TFT_display.getTouch(x, y)) { ... } |
| fillRect(x, y, w, h, color) | Draws the button background as a solid rectangle. | TFT_display.fillRect(10, 10, 120, 60, BLUE); |
Code Arduino Nano - Calibration Tactile
L'exemple TouchCalibration vous guide pour trouver la plage ADC brute pour votre panneau XPT2046. Touchez chaque coin de l'écran dans l'ordre et enregistrez les valeurs X et Y minimales et maximales depuis le Moniteur Série. Collez ces quatre nombres dans setTouchCalibration() dans tous vos autres sketches tactiles.
Suivez les Étapes
- Câblez le XPT2046 au Nano comme décrit dans la section Touch Get Point.
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- Ouvrez le Moniteur Série à 9600 bauds. Touchez chaque coin lorsqu'on vous le demande.
- Notez les quatre valeurs affichées et utilisez-les dans setTouchCalibration() dans vos autres sketches tactiles.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| initTouchSPI(cs, irq) | Initializes the XPT2046 controller. | TFT_display.initTouchSPI(7, 6); |
| readTouchRaw(x, y, z) | Reads raw ADC values used to establish the calibration range. | TFT_display.readTouchRaw(x, y, z); |
| setTouchCalibration(minX,maxX,minY,maxY) | Stores the four calibration constants so getTouch() maps raw values to pixel coordinates. | TFT_display.setTouchCalibration(200, 3800, 300, 3700); |
| setTouchInvertX(invert) / setTouchInvertY(invert) | Flips the touch axis when X or Y is mirrored on your specific panel or batch. Call BEFORE running calibration so the stored values match your panel. | TFT_display.setTouchInvertY(true); |
Code Arduino Nano - SPI Personnalisé
L'exemple CustomSPI montre comment fournir un pointeur SPIClass explicite au constructeur de l'écran. Sur le Nano, il n'y a qu'un seul bus SPI matériel (D11/D13/D12). Passer &SPI explicitement vous permet de contrôler précisément les paramètres SPI — par exemple, réduire la vitesse d'horloge lorsque vous utilisez de longs fils vers l'écran.
Suivez les Étapes
- Câblez l'écran TFT au Nano comme indiqué dans le schéma de câblage.
- Connectez le Nano à votre ordinateur avec un câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez la carte et le port, collez le code et cliquez sur Téléverser.
- L'écran démarre sur le bus SPI explicitement configuré et affiche un motif de barres de couleur.
Aperçu des Méthodes
| Method | Explanation | Call Example |
|---|---|---|
| DIYables_ILI9341_SPI(w,h,cs,dc,rst,spi) | Constructor that takes an explicit SPIClass pointer. Omit the last argument to default to &SPI. | DIYables_ILI9341_SPI tft(240, 320, 10, 9, 8, &SPI); |
| begin() | Initializes the display on the configured SPI bus. | TFT_display.begin(); |
Dépannage
- Écran noir - Vérifiez CS (D10), DC (D9), MOSI (D11) et SCK (D13). Une broche CS flottante est la cause la plus courante.
- Mauvaises couleurs ou pixels parasites - Confirmez que vous avez le bon constructeur de pilote décommenté.
- Débordement de SRAM - Le Nano a 2 Ko de SRAM. Stockez les bitmaps en PROGMEM en utilisant le mot-clé PROGMEM et l'exemple DrawImage.
- Le téléversement échoue avec "not in sync" - Essayez de sélectionner ATmega328P (Old Bootloader) dans le menu Processeur.
Compatibilité des Plateformes
La bibliothèque utilise uniquement les API Arduino standard (SPI, digitalWrite, millis) et fonctionne sur toutes les plateformes compatibles Arduino.