294 lines
12 KiB
Markdown
294 lines
12 KiB
Markdown
# 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.
|
||
|
||

|
||
|
||
> **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
|
||
|
||

|
||
|
||
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) |
|
||
|
||

|
||
|
||
> 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
|
||
```
|