Chargement de la figure…
La carte sur laquelle la plupart des gens apprennent : un ATmega328P sur support, des broches 5 V difficiles à abîmer et un câble USB qui fait tout.
Chaque leçon fait tourner votre propre code sur la carte. Réussissez ses vérifications pour la valider.
Montez la carte dans le bon ordre, puis mettez-la sous tension et vérifiez-la, comme sur l'établi.
0 étapes sur 26Retirez le câble USB et l'adaptateur. Ne montez ni ne réparez jamais une carte sous tension.
Chaque panne se produit vraiment dans la simulation. Déclenchez-en une, regardez la figure, puis lisez pourquoi.
L'Uno R3 (A000066) fait tourner un ATmega328P à 16 MHz, en logique 5 V. La puce est posée sur un support DIP-28 : si vous la grillez, elle se remplace en une minute. Une deuxième puce, l'ATmega16U2, sert de pont USB-série : elle apparaît comme un port série sur votre ordinateur et réinitialise le 328P au début de chaque téléversement. Vous disposez de 14 broches numériques (dont 6 en PWM, marquées ~), de 6 entrées analogiques, de 32 KB de flash (32 256 octets libres pour votre sketch après le bootloader Optiboot), de 2 KB de RAM et de 1 KB d'EEPROM. Alimentez-la par l'USB, par la prise jack en 7-12 V ou par VIN ; la carte passe d'elle-même sur le jack quand VIN dépasse environ 6,6 V.
| Connecteur | Broche | Nom | Fonctions | Niveau | Courant max | Remarques |
|---|---|---|---|---|---|---|
| IOL | 1 | D0 | RX, PCINT16 | 5 VTolère le 5 V | 40 mA | RX. Aussi reliée au 16U2 par une résistance de 1 kΩ : tout ce qui est branché sur D0 peut bloquer les téléversements. |
| IOL | 2 | D1 | TX, PCINT17 | 5 VTolère le 5 V | 40 mA | TX. Serial.print() envoie ses octets par ici, et le 16U2 les transmet à l'USB. |
| IOL | 3 | D2 | INT0, PCINT18 | 5 VTolère le 5 V | 40 mA | Interruption externe 0 : attachInterrupt() ne fonctionne que sur D2 et D3. |
| IOL | 4 | ~D3 | PWM 490 Hz (OC2B), INT1, PCINT19 | 5 VTolère le 5 V | 40 mA | PWM à 490 Hz et interruption externe 1. tone() emprunte le même timer, donc le PWM s'arrête ici pendant qu'une note joue. |
| IOL | 5 | D4 | T0, XCK, PCINT20 | 5 VTolère le 5 V | 40 mA | |
| IOL | 6 | ~D5 | PWM 977 Hz (OC0B), T1, PCINT21 | 5 VTolère le 5 V | 40 mA | |
| IOL | 7 | ~D6 | PWM 977 Hz (OC0A), AIN0, PCINT22 | 5 VTolère le 5 V | 40 mA | |
| IOL | 8 | D7 | AIN1, PCINT23 | 5 VTolère le 5 V | 40 mA | La dernière broche du connecteur de gauche ; vient ensuite l'écart qui fait qu'un shield Uno ne s'enfiche que dans un sens. |
| IOH | 1 | D8 | ICP1, CLKO, PCINT0 | 5 VTolère le 5 V | 40 mA | |
| IOH | 2 | ~D9 | PWM 490 Hz (OC1A), PCINT1 | 5 VTolère le 5 V | 40 mA | PWM à 490 Hz. La bibliothèque Servo prend ce timer pour elle, donc analogWrite() sur D9 et D10 ne marche plus dès qu'un servo est attaché. |
| IOH | 3 | ~D10 | PWM 490 Hz (OC1B), SPI SS, PCINT2 | 5 VTolère le 5 V | 40 mA | PWM, et SS du SPI. Elle doit rester une sortie tant que l'Uno est le maître SPI. |
| IOH | 4 | ~D11 | PWM 490 Hz (OC2A), SPI MOSI, PCINT3 | 5 VTolère le 5 V | 40 mA | |
| IOH | 5 | D12 | SPI MISO, PCINT4 | 5 VTolère le 5 V | 40 mA | |
| IOH | 6 | D13 | SPI SCK, LED_BUILTIN, PCINT5 | 5 VTolère le 5 V | 40 mA | Broche de la LED intégrée (LED_BUILTIN). La LED L y est reliée par un tampon, elle ne charge donc pas la broche. |
| IOH | 7 | GND | – | – | – | |
| IOH | 8 | AREF | ADC reference | 5 V | – | Référence pour analogRead(). N'y touchez pas, sauf si vous appelez d'abord analogReference(EXTERNAL). |
| IOH | 9 | SDA | I2C SDA, A4 | 5 VTolère le 5 V | 40 mA | Données I²C. Le même fil que A4 : utilisez l'un ou l'autre. |
| IOH | 10 | SCL | I2C SCL, A5 | 5 VTolère le 5 V | 40 mA | Horloge I²C. Le même fil que A5. |
| POWER | 1 | NC | – | – | – | Non connectée : gardée libre pour les futurs shields. |
| POWER | 2 | IOREF | I/O voltage for shields | 5 V | – | Indique à un shield la tension des E/S de la carte : 5 V sur l'Uno. |
| POWER | 3 | RESET | Active-low reset | 5 V | – | Tirez-la à GND pour réinitialiser le 328P, comme avec le bouton RESET. |
| POWER | 4 | 3V3 | 3.3 V out | 3,3 V | 150 mA | Sortie 3,3 V, 150 mA au maximum. |
| POWER | 5 | 5V | 5 V out | 5 V | – | Sortie 5 V de la carte. Vous pouvez aussi y injecter un 5 V propre, mais rien ne protège la carte si vous vous trompez. |
| POWER | 6 | GND | – | – | – | |
| POWER | 7 | GND | – | – | – | |
| POWER | 8 | VIN | Supply in (after the jack diode) | 8,3 V | – | La tension du jack après D1, ou une entrée 7-12 V qui contourne la protection de D1. |
| AD | 1 | A0 | ADC0, D14, PCINT8 | 5 VTolère le 5 V | 40 mA | Entrée analogique 0. Comme A1-A5, elle fonctionne aussi en broche numérique (D14). |
| AD | 2 | A1 | ADC1, D15, PCINT9 | 5 VTolère le 5 V | 40 mA | |
| AD | 3 | A2 | ADC2, D16, PCINT10 | 5 VTolère le 5 V | 40 mA | |
| AD | 4 | A3 | ADC3, D17, PCINT11 | 5 VTolère le 5 V | 40 mA | |
| AD | 5 | A4 | ADC4, D18, I2C SDA, PCINT12 | 5 VTolère le 5 V | 40 mA | Entrée analogique 4 et SDA de l'I²C : la même broche que SDA sur le connecteur du haut. |
| AD | 6 | A5 | ADC5, D19, I2C SCL, PCINT13 | 5 VTolère le 5 V | 40 mA | Entrée analogique 5 et SCL de l'I²C : la même broche que SCL sur le connecteur du haut. |
| ICSP | 1 | MISO | SPI MISO = D12 | 5 V | – | |
| ICSP | 2 | 5V | – | 5 V | – | |
| ICSP | 3 | SCK | SPI SCK = D13 | 5 V | – | |
| ICSP | 4 | MOSI | SPI MOSI = D11 | 5 V | – | |
| ICSP | 5 | RESET | – | 5 V | – | La ligne de reset du 328P, pour un programmateur in-circuit. |
| ICSP | 6 | GND | – | – | – | |
| ICSP1 | 1 | MISO2 | 16U2 PB3 | 5 V | – | |
| ICSP1 | 2 | 5V | – | 5 V | – | |
| ICSP1 | 3 | SCK2 | 16U2 PB1 | 5 V | – | |
| ICSP1 | 4 | MOSI2 | 16U2 PB2 | 5 V | – | |
| ICSP1 | 5 | RESET2 | 16U2 reset | 5 V | – | Le reset du 16U2. Le relier brièvement à GND (broche 6) met le 16U2 dans son bootloader DFU. |
| ICSP1 | 6 | GND | – | – | – |
Les capteurs et actionneurs que pilote cette carte, avec les vrais branchements.
Anode (patte longue) vers la broche, cathode vers GND, avec une résistance de 220 Ω à 1 kΩ en série.
| Broche du composant | Broche de la carte |
|---|---|
| A | D13Couleur du fil : orange |
| K | GNDCouleur du fil : noir |
Jamais sans la résistance : la broche essaierait de faire passer plus de 100 mA dans la LED.
Entre D2 et GND avec pinMode(2, INPUT_PULLUP) : lit LOW tant qu'il est enfoncé. Avec un pull-down externe vers GND et le bouton relié au 5 V, il lit au contraire HIGH tant qu'il est enfoncé.
| Broche du composant | Broche de la carte |
|---|---|
| 1 | D2Couleur du fil : bleu |
| 3 | GNDCouleur du fil : noir |
Les extrémités à GND et à 5V, la patte du milieu (le curseur) à A0. analogRead(A0) va alors de 0 à 1023 quand vous le tournez.
| Broche du composant | Broche de la carte |
|---|---|
| 1 | GNDCouleur du fil : noir |
| 2 | A0Couleur du fil : vert |
| 3 | 5VCouleur du fil : rouge |
Du 5V vers A0, avec une résistance de 10 kΩ de A0 vers GND. Plus de lumière, moins de résistance, une lecture plus haute.
| Broche du composant | Broche de la carte |
|---|---|
| 1 | 5VCouleur du fil : rouge |
| 2 | A0Couleur du fil : vert |
+ sur une broche, − sur GND. tone(pin, frequency) joue une note ; un piézo ne consomme que quelques mA, aucune résistance n'est donc nécessaire.
| Broche du composant | Broche de la carte |
|---|---|
| POS | D8Couleur du fil : orange |
| NEG | GNDCouleur du fil : noir |
Face plate vers vous : patte gauche au 5V, patte du milieu à A0, patte droite à GND. Degrés C = (volts − 0,5) × 100.
| Broche du composant | Broche de la carte |
|---|---|
| VS | 5VCouleur du fil : rouge |
| VOUT | A0Couleur du fil : vert |
| GND | GNDCouleur du fil : noir |
Marron à GND, rouge au 5V, orange sur une broche (D9). Ensuite Servo.attach(9) puis write(0..180).
| Broche du composant | Broche de la carte |
|---|---|
| GND | GNDCouleur du fil : marron |
| VCC | 5VCouleur du fil : rouge |
| SIG | D9Couleur du fil : orange |
Un servo en mouvement peut tirer 250 mA, et un servo bloqué 700 mA. Dès qu'il y a plus d'un servo, il leur faut une alimentation 5 V à part, masses reliées.
Base sur une broche PWM à travers une résistance de 1 kΩ, émetteur à GND, la charge entre le 5 V (ou sa propre alimentation) et le collecteur.
| Broche du composant | Broche de la carte |
|---|---|
| B | D6Couleur du fil : orange |
| E | GNDCouleur du fil : noir |
Un moteur ou un ventilateur a besoin d'une diode 1N4007 en parallèle, bague vers le + de l'alimentation, sinon le couper envoie une pointe de tension dans le transistor.
VCC au 5V, GND à GND, TRIG à D9, ECHO à D10. Une impulsion de 10 µs sur TRIG lance un ping ; la durée de l'impulsion sur ECHO correspond à l'aller-retour.
| Broche du composant | Broche de la carte |
|---|---|
| VCC | 5VCouleur du fil : rouge |
| TRIG | D9Couleur du fil : jaune |
| ECHO | D10Couleur du fil : vert |
| GND | GNDCouleur du fil : noir |
GND, VCC au 3V3, SCL à SCL, SDA à SDA. L'écran répond à l'adresse I²C 0x3C.
| Broche du composant | Broche de la carte |
|---|---|
| GND | GNDCouleur du fil : noir |
| VCC | 3V3Couleur du fil : orange |
| SCL | SCLCouleur du fil : bleu |
| SDA | SDACouleur du fil : violet |
Vérifiez votre module : beaucoup de cartes SSD1306 n'acceptent que 3,3 V. Celles qui ont un régulateur intégré acceptent aussi le 5 V.
IN1-IN4 à D8-D11, − à GND, + au 5V ; la fiche à 5 fils du moteur pas à pas va dans la prise blanche.
| Broche du composant | Broche de la carte |
|---|---|
| IN1 | D8Couleur du fil : orange |
| IN2 | D9Couleur du fil : jaune |
| IN3 | D10Couleur du fil : vert |
| IN4 | D11Couleur du fil : violet |
| GND | GNDCouleur du fil : noir |
| VCC | 5VCouleur du fil : rouge |
Le moteur pas à pas tire jusqu'à 160 mA avec deux bobines alimentées. Ça passe sur l'USB pour un petit moteur ; pour plus gros, donnez-lui sa propre alimentation.
AOUT à A0, VCC au 5V, GND à GND. La valeur lue baisse à mesure que la terre devient plus humide.
| Broche du composant | Broche de la carte |
|---|---|
| AOUT | A0Couleur du fil : jaune |
| VCC | 5VCouleur du fil : rouge |
| GND | GNDCouleur du fil : noir |
GND à GND, R à D4, Y à D3, G à D2. Le module a ses propres résistances, les broches le pilotent donc directement.
| Broche du composant | Broche de la carte |
|---|---|
| GND | GNDCouleur du fil : noir |
| R | D4Couleur du fil : orange |
| Y | D3Couleur du fil : jaune |
| G | D2Couleur du fil : vert |
Une patte au 5V, l'autre à A0, avec un pull-down de 10 kΩ de A0 vers GND. Appuyez plus fort, la valeur monte.
| Broche du composant | Broche de la carte |
|---|---|
| 1 | 5VCouleur du fil : rouge |
| 2 | A0Couleur du fil : vert |
VCC, GND, SCL à SCL, SDA à SDA. Il répond à l'adresse 0x68 (0x69 avec AD0 à l'état haut).
| Broche du composant | Broche de la carte |
|---|---|
| VCC | 5VCouleur du fil : rouge |
| GND | GNDCouleur du fil : noir |
| SCL | SCLCouleur du fil : bleu |
| SDA | SDACouleur du fil : violet |
Prenez un module avec régulateur (le GY-521 courant en a un) ; la puce seule n'accepte que 3,3 V.
VCC au 5V pour sa logique, GND, SCL et SDA. Il pilote jusqu'à 16 servos à l'adresse 0x40.
| Broche du composant | Broche de la carte |
|---|---|
| VCC | 5VCouleur du fil : rouge |
| GND | GNDCouleur du fil : noir |
| SCL | SCLCouleur du fil : bleu |
| SDA | SDACouleur du fil : violet |
Alimentez les servos par la borne V+ de la carte, depuis leur propre alimentation 5-6 V, jamais par la broche 5V de l'Uno.