🛠 Bouton et LED sur les GPIO de la Tian : les bases côté SAMD21
Objetivos
Controlar una salida y leer una entrada en los pines de E/S de la Tian controlados por el SAMD21: pull-up interna, lógica activa a nivel bajo y descubrimiento de la particularidad del cableado — las entradas analógicas A6 a A11 comparten los pines digitales 4, 6, 8, 9, 10 y 12, lo que puede crear conflictos de función si no se consulta el esquema.
Material
- 1 Arduino Tian + cable micro-USB
- 1 protoboard, cables de conexión
- 1 botón pulsador, 1 LED, 1 resistencia de 330 Ω
- Cableado: botón entre un pin digital (por ejemplo, D2) y GND — la pull-up interna evita cualquier resistencia externa; LED + 330 Ω hacia GND desde otro pin (por ejemplo, D13).
- >
Código completo
// 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);
}
Verificación esperada
LED apagada en reposo, encendida al pulsar; el Monitor serie muestra un mensaje en español mientras se mantiene pulsado. Toque el cable de D2 sin el botón: la entrada queda flotante y el estado se vuelve aleatorio — la pull-up interna es precisamente lo que estabiliza el montaje.
Errores frecuentes
- Usar D4, D6, D8, D9, D10 o D12 como entrada analógica Y digital simultáneamente: A6–A11 están físicamente en estos pines (está documentado en la ficha oficial de la Tian); una función anula la otra.
- Invertir la lógica activa a nivel bajo: aquí pulsado == LOW; probar == HIGH da la impresión de un botón muerto.
- Olvidar la resistencia del LED: se supera la corriente admisible por pin, y el LED o el regulador se dañan.
- Conectar en los pines del puerto USB host o Ethernet creyendo que todo es GPIO: solo son utilizables los pines de E/S del borde, consulte el esquema oficial.
- El rebote mecánico del botón: invisible al encender un LED, crítico en cuanto se cuentan las pulsaciones — añada una ventana de 30 ms con millis.
Otros tutoriales para esta placa
- 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
Ejemplos de código para esta placa
clignotant-rest.inoArduinoconsole-bridge.inoArduinovaleurs-partagees.inoArduinoprocess-shell.inoArduinoserveur-json.inoArduinolecture-fichier.inoArduino