🛠 Configurer les E/S du M5Stamp Timer Power 2

M5Stamp Timer Power 2 (PY32L020) · intermediaire · Apprenez à piloter les GPIO, PWM et ADC du module PY32L020 pour interagir avec des capteurs ou affichages.

Objectifs

Ce tutoriel vous guide dans l'exploitation des 5 broches IO programmables du M5Stamp Timer Power 2 (SKU S021). Contrairement aux cartes classiques, ce module utilise le microcontrôleur PY32L020 pour gérer l'énergie tout en offrant des interfaces flexibles. Nous allons configurer un GPIO en sortie pour commander une LED (ou un relais) et utiliser le PWM pour moduler un signal, illustrant ainsi la polyvalence des E/S sans compromettre la faible consommation (6.72uA en arrêt).

Matériel nécessaire

Étapes

  1. Connexion physique : Reliez le VBUS (5V) et le GND du module à votre source. Pour tester une sortie, connectez la broche IO sélectionnée (par exemple IO0) à l'anode de la LED via la résistance, et la cathode au GND.
  1. Configuration logicielle : Ouvrez votre IDE. Assurez-vous que la carte est reconnue comme un dispositif PY32L020. Incluez les bibliothèques nécessaires pour la gestion des broches spécifiques à ce module.
#include <Arduino.h>

// Définition des broches selon le schéma du module
#define LED_PIN 0 // IO0 programmable
#define PWM_PIN 1 // IO1 pour PWM

void setup() {
  pinMode(LED_PIN, OUTPUT);
  pinMode(PWM_PIN, OUTPUT);
  // Initialisation série pour le débogage si nécessaire
  Serial.begin(115200);
}
  1. Programmer la boucle principale : Dans loop(), nous alternerons l'état du GPIO et varierons le rapport cyclique du PWM. Notez que le module gère l'alimentation interne (3V3_DCDC_OUT) pour les périphériques connectés si nécessaire.
void loop() {
  // Activation simple du GPIO
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);

  // Modulation PWM (analogique) sur IO1
  for(int i = 0; i <= 255; i++) {
    analogWrite(PWM_PIN, i);
    delay(5);
  }
  for(int i = 255; i >= 0; i--) {
    analogWrite(PWM_PIN, i);
    delay(5);
  }
}
  1. Gestion de l'alimentation : Pour optimiser la consommation, assurez-vous que les broches non utilisées sont mises en état haute impédance (INPUT_FLOATING) ou en entrée pull-down si elles ne sont pas actives, afin d'éviter les courants de fuite qui augmenteraient la consommation au-delà des 12.27uA en veille.

Vérification

Observez le clignotement de la LED et la variation progressive de sa luminosité (si connectée au pin PWM). Utilisez un multimètre pour vérifier que la tension en sortie correspond aux niveaux logiques attendus (0V ou ~3.3V). Vérifiez également que la consommation du module reste faible lorsque les E/S sont inactives.

Pour aller plus loin

Explorez l'interface I2C (adresse 0x6E) du module pour lire l'état de la batterie ou configurer les seuils de charge via le M5PM1. Vous pouvez aussi tester les interruptions externes (IRQ) sur les IO pour réveiller le module depuis le mode arrêt, crucial pour les applications sur batterie.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels