🛠 Bouton et LED sur les GPIO de la Tian : les bases côté SAMD21
Objectifs
Commander une sortie et lire une entrée sur les broches d'E/S de la Tian pilotées par le SAMD21 : pull-up interne, logique actif-bas, et découverte de la particularité du brochage — les entrées analogiques A6 à A11 partagent les broches numériques 4, 6, 8, 9, 10 et 12, ce qui peut créer des conflits de fonction si on ne lit pas le schéma.
Matériel
- 1 Arduino Tian + câble micro-USB
- 1 breadboard, fils de connexion
- 1 bouton poussoir, 1 LED, 1 résistance 330 Ω
- Câblage : bouton entre une broche numérique (par ex. D2) et GND — la pull-up interne évite toute résistance externe ; LED + 330 Ω vers GND depuis une autre broche (par ex. D13).
- >
Code complet
// Bouton sur D2 (vers GND), LED sur D13.
const uint8_t BTN = 2;
const uint8_t LED = 13;
void setup {
pinMode(BTN, INPUT_PULLUP); // repos = HIGH, appuyé = LOW
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop {
bool appuye = (digitalRead(BTN) == LOW); // logique inversée
digitalWrite(LED, appuye ? HIGH : LOW);
if (appuye) Serial.println(F("bouton appuyé"));
delay(20);
}
Vérification attendue
LED éteinte au repos, allumée à l'appui ; le Moniteur série affiche un message franc pendant l'appui. Touchez le fil de D2 sans le bouton : l'entrée flotte et l'état devient aléatoire — la pull-up interne est bien ce qui stabilise le montage.
Erreurs fréquentes
- Utiliser D4, D6, D8, D9, D10 ou D12 comme entrée analogique ET numérique simultanément : A6–A11 sont physiquement sur ces broches (c'est documenté dans la fiche officielle de la Tian) ; une fonction écrase l'autre.
- Inverser la logique actif-bas : ici appuyé == LOW ; tester == HIGH donne l'impression d'un bouton mort.
- Oublier la résistance de la LED : on dépasse le courant admissible par broche, la LED ou le régulateur trinquent.
- Câbler sur les picots du port USB host ou Ethernet en croyant que tout est GPIO : seuls les picots E/S du bord sont utilisables, reportez-vous au schéma officiel.
- Le rebond mécanique du bouton : invisible en allumant une LED, critique dès qu'on compte les appuis — ajoutez une fenêtre de 30 ms avec millis.
Autres tutoriels pour cette carte
- Découvrir l'Arduino Tian : un microcontrôleur et un vrai Linux sur la même carte
- Lire un capteur avec l'ADC 12 bits du SAMD21
- Le Bridge : faire exécuter des commandes Linux depuis le croquis
- Configurer le WiFi et piloter Linino en SSH
- Télémétrie : pousser une mesure du capteur vers le réseau
- GPIO duos : commander les broches de l'Arduino depuis Linux
Exemples de code pour cette carte
clignotant-rest.inoArduinoconsole-bridge.inoArduinovaleurs-partagees.inoArduinoprocess-shell.inoArduinoserveur-json.inoArduinolecture-fichier.inoArduino