🛠 Faire clignoter la LED embarquée et lire la batterie
Objetivos
Familiarizarse con la Arduino MKR GSM 1400 sin utilizar el módulo celular: hacer parpadear el LED integrado (pin D6, LED_BUILTIN) y leer el voltaje de la batería LiPo a través del canal analógico ADC_BATTERY (canal 32, ADC de 12 bits). Este tutorial valida el puerto USB, el bootloader SAM-BA y la consola serie antes de cualquier manipulación GSM, donde los problemas de alimentación son frecuentes.
Material
- Tarjeta Arduino MKR GSM 1400 (ATSAMD21G18A, Cortex-M0+ 48 MHz)
- Batería LiPo de 3,7 V de al menos 1500 mAh en los pads de la batería (Arduino la declara obligatoria en cuanto se solicita el módulo de radio; aquí se recomienda para adquirir el hábito correcto)
- Cable micro-USB de datos (no un simple cable de carga)
- Arduino IDE con el core «Arduino SAMD Boards» y la tarjeta «Arduino MKR GSM 1400» seleccionada
Código completo
// LED embarquee D6 + lecture brute de la batterie (module GSM inutilise)
void setup {
pinMode(LED_BUILTIN, OUTPUT); // LED_BUILTIN = broche 6 (variant.h du core)
Serial.begin(9600); // Sur SAMD21, Serial == SerialUSB (CDC)
}
void loop {
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); // bascule a chaque tour
int raw = analogRead(ADC_BATTERY); // canal 32, ADC 12 bits
Serial.print("VBAT raw: ");
Serial.println(raw);
delay(500);
}
Verificación esperada
Tras hacer doble clic en el botón RST y luego subir el código (herramienta bossac), el LED integrado parpadea aproximadamente cada 500 ms y la consola USB (9600 baudios) muestra un valor bruto que sigue la carga de la batería. Sin batería, la lectura cambia o cae a un valor fijo: esto es normal, el sensor de voltaje (ADC_BATTERY) depende de la alimentación real a bordo.
Errores frecuentes
- Tarjeta incorrecta seleccionada en el IDE: debe ser «Arduino MKR GSM 1400», no «MKR WiFi 1010» ni «Zero».
- Cable USB solo de carga: el puerto nunca aparece; probar con otro cable y otro puerto.
- Confundir el valor bruto con los voltios: el divisor VBAT antes del ADC no está documentado de forma fiable. >
- El LED Power permanece encendido con batería: comportamiento conocido y no resuelto (ArduinoCore-samd #515), sin gravedad.
Serialmudo: ¿está bien alimentada la tarjeta? ¿Está abierto el monitor serie DESPUÉS de la subida, en el puerto correcto?
Otros tutoriales para esta placa
Ejemplos de código para esta placa
gsm-connexion.inoArduinoenvoi-sms.inoArduinohttp-get.inoArduinohttp-post-capteur.inoArduinoheure-gsm.inoArduinoappels.inoArduino