# Maquette 3 × 3 : matrice de LED RGB multiplexée Workshop « Vitrine pixels » : on fabrique un petit écran de **9 pixels** de couleur, soudé sur une plaque à pastilles et piloté par un Arduino. C'est la maquette d'apprentissage avant la grande matrice 7 × 39. ![Implantation sur plaque à pastilles](schemas/implantation_plaque.svg) > **Le principe à retenir** : on n'allume jamais les 9 LED en même temps. > On allume **une ligne à la fois**, très vite (environ 333 fois par seconde), > et l'œil voit une image fixe. C'est le **multiplexage**. Tout est expliqué > en détail dans les commentaires de [`matrice_3x3.ino`](matrice_3x3.ino). --- ## Sommaire 1. [Le matériel](#1-le-matériel) 2. [Reconnaître les composants](#2-reconnaître-les-composants) 3. [Le schéma électrique](#3-le-schéma-électrique) 4. [Le montage sur plaque à pastilles](#4-le-montage-sur-plaque-à-pastilles) 5. [Souder, étape par étape](#5-souder-étape-par-étape) 6. [Relier à l'Arduino](#6-relier-à-larduino) 7. [Téléverser le programme et tester](#7-téléverser-le-programme-et-tester) 8. [Ça ne marche pas ?](#8-ça-ne-marche-pas-) 9. [Le fichier Fritzing](#9-le-fichier-fritzing) --- ## 1. Le matériel | Quoi | Combien | Remarque | |---|---|---| | Arduino Uno + câble USB | 1 | | | LED RGB 5 mm **à cathode commune** | 9 | 4 pattes ; vérifier « common cathode » à l'achat | | Transistor **BC337** (NPN) | 3 | ou 2N2222 / S8050 : **attention, pattes dans un autre ordre** (voir 2) | | Résistance **220 Ω** | 3 | pour le rouge | | Résistance **150 Ω** | 6 | pour le vert et le bleu | | Résistance **1 kΩ** | 3 | pour les bases des transistors | | Plaque à pastilles (pas 2,54 mm) | 1 | au moins **32 × 34 trous** | | Fil nu étamé (ou chutes de pattes de résistances) | ~1 m | pour les liaisons côté soudures | | Fil isolé fin (monobrin) | ~50 cm | pour les 3 lignes de cathodes | | Fils souples avec embout mâle (« Dupont ») | 13 | vers l'Arduino : 9 rouges/verts/bleus, 3 jaunes, 1 noir | | Fer à souder, étain, pince coupante, pince plate | | | --- ## 2. Reconnaître les composants ### La LED RGB à cathode commune Elle contient 3 petites LED (rouge, verte, bleue) qui partagent la même patte « moins » : la **cathode commune**, qui est **la patte la plus longue**. ``` ___ / \ Ordre des pattes le plus courant : | | |_____| R K G B | | | | │ │ │ └ bleu | | | | │ │ └──── vert R K | | │ └──────── cathode (la plus longue) G B └──────────── rouge (souvent côté du méplat) ``` > ⚠️ L'ordre peut changer selon le fabricant. **Testez une LED avant de > souder** : cathode au GND de l'Arduino, et chaque autre patte, l'une après > l'autre, au 5V **à travers une résistance de 220 Ω** (jamais sans résistance !). ### Le transistor BC337 C'est un **interrupteur électronique** : quand un petit courant entre par la **base (B)**, il laisse passer un gros courant entre le **collecteur (C)** et l'**émetteur (E)**. Ici, chaque transistor allume ou éteint une ligne de LED. Face plate vers vous, pattes vers le bas, de gauche à droite : **C – B – E**. > ⚠️ Le **2N2222** et le **S8050** ont l'ordre inverse : **E – B – C**. > Si vous les utilisez, tournez-les d'un demi-tour (face plate vers le haut > de la plaque). ### Les résistances Elles freinent le courant pour protéger les LED et l'Arduino. On lit leur valeur avec les anneaux de couleur : | Valeur | Anneaux | Rôle | |---|---|---| | 220 Ω | rouge – rouge – marron | LED rouges | | 150 Ω | marron – vert – marron | LED vertes et bleues | | 1 kΩ | marron – noir – rouge | bases des transistors | Une résistance n'a pas de sens : on peut la souder dans les deux sens. --- ## 3. Le schéma électrique ![Schéma électrique](schemas/schema_electrique.svg) Comment le lire : - **À gauche, l'Arduino**. Ses broches **D2 à D10** envoient la couleur, ses broches **D11 à D13** choisissent la ligne allumée. - **Les 9 lignes verticales** : chaque broche D2 à D10 passe par une résistance, puis rejoint **les anodes d'une même couleur dans une même colonne** de la matrice. Par exemple, D2 alimente le rouge des 3 LED de la colonne de gauche. - **Les 3 lignes horizontales** relient **les cathodes d'une même ligne** de LED, puis vont au **collecteur** d'un transistor. - **À droite, les transistors** : leur base est commandée par D11, D12 ou D13 (à travers 1 kΩ), et leur émetteur est relié au **GND** (la masse). Un pixel s'allume quand **sa ligne est active** (transistor passant) **et** que **sa colonne envoie de la couleur**. C'est le croisement des deux qui choisit le pixel. | Broche Arduino | Rôle | |---|---| | D2, D3, D4 | rouge, vert, bleu de la **colonne 0** (gauche) | | D5, D6, D7 | rouge, vert, bleu de la **colonne 1** (milieu) | | D8, D9, D10 | rouge, vert, bleu de la **colonne 2** (droite) | | D11, D12, D13 | **lignes** 0 (haut), 1, 2 (bas), par les transistors T0, T1, T2 | | GND | masse : émetteurs des 3 transistors | --- ## 4. Le montage sur plaque à pastilles Le plan en haut de cette page montre la plaque **des deux côtés** : - **À gauche, côté composants** : ce qu'on voit quand la plaque est posée devant soi, composants vers le haut. - **À droite, côté soudures** : la plaque **retournée**. ⚠️ C'est une image **en miroir** : ce qui était à gauche se retrouve à droite. Les numéros de colonnes aident à s'y retrouver. Les trous sont repérés par **colonne** (de 1 à 32, de gauche à droite côté composants) et **ligne** (de 1 à 34, de haut en bas). ### L'idée du câblage - **Les colonnes de couleur** (anodes) sont des **fils nus verticaux**, côté soudures. Comme les 3 LED d'une colonne sont alignées, leurs pattes R tombent dans la même colonne de trous : un fil nu droit les relie toutes, puis rejoint la résistance. - **Les lignes de cathodes** croisent les colonnes : on ne peut pas les faire en fil nu du même côté (ça ferait un court-circuit !). On les fait donc en **fil isolé, côté composants**, qui passe **par-dessus**. - Chaque fil isolé arrive dans **le trou juste à côté** de la patte à relier ; on fait la liaison côté soudures avec une goutte d'étain ou un bout de fil nu. ### Où va chaque composant | Composant | Trous (colonne, ligne) | |---|---| | Résistances 220 Ω (rouge) | col. 3, 9, 15 : lignes 3 → 7 | | Résistances 150 Ω (vert) | col. 5, 11, 17 : lignes 3 → 7 | | Résistances 150 Ω (bleu) | col. 6, 12, 18 : lignes 8 → 12 | | LED de la ligne 0 (haut) | ligne 19 ; colonnes 3-6, 9-12, 15-18 (pattes R K G B) | | LED de la ligne 1 | ligne 25 ; mêmes colonnes | | LED de la ligne 2 (bas) | ligne 31 ; mêmes colonnes | | Transistors T0, T1, T2 | lignes 20, 26, 32 ; colonnes 22 (C), 23 (B), 24 (E) | | Résistances 1 kΩ (bases) | lignes 21, 27, 33 ; colonnes 23 → 27 | > **Pourquoi des LED espacées de 6 trous (15 mm) ?** Pour laisser de la place > aux fils et aux doigts. La matrice finale aura un pas de 10 mm. Pour tester > la diffusion de la lumière à 10 mm, on peut refaire une version au pas de > 4 trous (10,16 mm), mais le câblage est beaucoup plus serré. --- ## 5. Souder, étape par étape **On soude des composants les plus bas aux plus hauts** : la plaque reste stable quand on la retourne. 1. **Les fils nus** (côté soudures) : les 9 colonnes de couleur, le bus de masse (colonne 31) et les petits ponts. Suivez le plan de droite. 2. **Les 12 résistances**, couchées à plat contre la plaque (le long des colonnes pour les 9 résistances de couleur, le long des lignes pour les 1 kΩ). Vérifiez les couleurs : 220 Ω pour le rouge, 150 Ω pour le vert et le bleu, 1 kΩ pour les bases. 3. **Les 3 transistors**, face plate vers le bas de la plaque. Ne chauffez pas plus de 3 secondes par patte. 4. **Les 9 LED** : patte la plus longue (K) en 2e position. **Testez chaque LED avant** (voir partie 2). 5. **Les 3 fils isolés** des cathodes (côté composants). 6. **Les 13 fils vers l'Arduino** (voir partie 6). Conseils de soudure : - Le fer chauffe **la pastille et la patte en même temps**, puis on apporte l'étain. Une bonne soudure est brillante et en forme de petit volcan. - Après chaque étape, **vérifiez qu'aucune goutte d'étain ne relie deux pastilles voisines** par erreur, surtout entre les colonnes de couleur voisines (G et B ne sont qu'à un trou d'écart !). - Coupez les pattes qui dépassent **après** avoir soudé. Gardez les chutes : elles font d'excellents fils nus. --- ## 6. Relier à l'Arduino | Fil | Trou sur la plaque (col., ligne) | Broche Arduino | |---|---|---| | 🔴 rouge colonne 0 | 3, 2 | D2 | | 🟢 vert colonne 0 | 5, 2 | D3 | | 🔵 bleu colonne 0 | 6, 2 | D4 | | 🔴 rouge colonne 1 | 9, 2 | D5 | | 🟢 vert colonne 1 | 11, 2 | D6 | | 🔵 bleu colonne 1 | 12, 2 | D7 | | 🔴 rouge colonne 2 | 15, 2 | D8 | | 🟢 vert colonne 2 | 17, 2 | D9 | | 🔵 bleu colonne 2 | 18, 2 | D10 | | 🟡 ligne 0 | 28, 21 | D11 | | 🟡 ligne 1 | 29, 27 | D12 | | 🟡 ligne 2 | 30, 33 | D13 | | ⚫ masse | 31, 18 | GND (à côté de D13) | ![Vue Fritzing de la plaque reliée à l'Arduino](schemas/plaque_fritzing.png) > Pas besoin d'alimentation externe : 9 LED à 15 mA, une seule ligne à la fois, > c'est au maximum ~135 mA. Le port USB suffit. --- ## 7. Téléverser le programme et tester 1. Installez l'**IDE Arduino** et la bibliothèque **TimerOne** (Outils → Gérer les bibliothèques… → « TimerOne » → Installer). 2. Ouvrez [`matrice_3x3.ino`](matrice_3x3.ino). 3. Outils → Type de carte → **Arduino Uno** ; Outils → Port → le bon port. 4. **Téléverser**. La première animation, `animTestPixels`, allume **chaque pixel l'un après l'autre**, en rouge, puis en vert, puis en bleu, de gauche à droite et de haut en bas. C'est le test de câblage : notez tout pixel qui ne s'allume pas, ou pas au bon endroit, ou pas dans la bonne couleur. Ensuite, les animations s'enchaînent : aplats de couleur, chenille, damier, balayages, scintillement. Pour créer les vôtres, lisez les parties 5 et 6 du programme. --- ## 8. Ça ne marche pas ? | Symptôme | Cause probable | Solution | |---|---|---| | **Rien ne s'allume** | Fil de masse (GND) absent | Vérifier le fil noir et le bus de masse (col. 31) | | | Transistors à l'envers | Vérifier C-B-E (BC337) ou E-B-C (2N2222) | | **Une ligne entière reste éteinte** | Transistor mal soudé ou à l'envers | Vérifier T0, T1 ou T2 et sa résistance de base | | | Fil isolé de cathode mal soudé | Vérifier le pont entre la patte K et le fil | | **Une couleur manque sur toute une colonne** | Résistance ou fil nu de colonne mal soudé | Suivre la colonne côté soudures | | | Mauvais fil sur l'Arduino | Comparer avec le tableau de la partie 6 | | **Un seul pixel ne marche pas** | LED mal soudée, ou grillée | Ressouder, ou tester la LED seule | | **Couleurs mélangées** (rouge à la place du bleu…) | Ordre des pattes de la LED différent | Tester la LED (partie 2) ; corriger dans le code (`pinsCouleur`) | | **Deux couleurs s'allument ensemble** | Pont d'étain entre deux colonnes voisines | Chauffer et retirer l'étain en trop (tresse à dessouder) | | **Légers reflets sur des pixels éteints** (« fantômes ») | Normal si très faible | Le code éteint déjà les lignes avant de changer les couleurs | | **L'image clignote** | `DUREE_LIGNE_US` trop grand | Revenir à 1000 dans le code | | **La petite LED « L » de l'Arduino scintille** | Normal : elle est sur la broche 13 (ligne 2) | Rien à faire | --- ## 9. Le fichier Fritzing [`matrice_3x3.fzz`](matrice_3x3.fzz) s'ouvre avec [Fritzing](https://fritzing.org) (version 1.0 ou plus récente). Il contient : - la vue **Schéma** : le même circuit que la partie 3, avec les symboles de Fritzing ([aperçu](schemas/schema_fritzing.png)) ; - la vue **Platine d'essai** : la plaque à pastilles reliée à l'Arduino. Les fils gris sont les liaisons en fil nu (côté soudures), les fils noirs sur la plaque sont les fils isolés des cathodes. La vue **Circuit imprimé** n'est pas utilisée (pièces non placées). Les scripts du dossier [`outils/`](outils/) régénèrent le fichier Fritzing, le plan d'implantation et le schéma électrique si on modifie le montage : ```bash python3 outils/gen_fzz.py matrice_3x3.fzz ``` ```bash python3 outils/render_plaque.py schemas/implantation_plaque.svg ``` ```bash python3 outils/schema_electrique.py schemas/schema_electrique.svg ```