🛠 Console série : afficher les capteurs embarqués
Objetivos
Utilizar el puerto serie USB nativo del ATmega32u4 para espiar los sensores integrados de la Esplora: potenciómetro lineal (deslizador), sensor de luz, temperatura, joystick y acelerómetro de 3 ejes. Comprenderá que Serial aquí NO es la UART de los pines 0/1, sino el puerto virtual CDC creado por el propio microcontrolador, y que el acelerómetro es el único sensor conectado directamente al ADC (A5/A11/A6), mientras que los demás pasan por el multiplexor.
Material
- Arduino Esplora + cable micro-USB.
- Arduino IDE con la biblioteca Esplora.
- Ninguna conexión externa.
Código completo
/* Affiche tous les capteurs de l'Esplora sur le moniteur série.
Serial = port USB CDC natif de l'ATmega32u4 (pas les broches 0/1). */
#include <Esplora.h>
void setup {
Serial.begin(9600);
Serial.println("Esplora — lecture des capteurs embarques");
}
void loop {
int slider = Esplora.readSlider; // 0..1023
int light = Esplora.readLightSensor; // 0..1023
int tempC = Esplora.readTemperature(DEGREES_C); // entier en degres C
int sound = Esplora.readMicrophone; // 0..1023
int joyX = Esplora.readJoystickX; // -512..511
int joyY = Esplora.readJoystickY;
int ax = Esplora.readAccelerometer(X_AXIS); // offsets zero-g 320/330/310
int ay = Esplora.readAccelerometer(Y_AXIS);
int az = Esplora.readAccelerometer(Z_AXIS);
Serial.print("slider="); Serial.print(slider);
Serial.print(" lum="); Serial.print(light);
Serial.print(" T="); Serial.print(tempC); Serial.print("C");
Serial.print(" son="); Serial.print(sound);
Serial.print(" joy=("); Serial.print(joyX);
Serial.print(","); Serial.print(joyY); Serial.print(")");
Serial.print(" acc=("); Serial.print(ax);
Serial.print(","); Serial.print(ay);
Serial.print(","); Serial.print(az); Serial.println(")");
delay(250);
}
Verificación esperada
Abra el monitor serie a 9600 baudios. Deslice el potenciómetro: el valor « slider » sigue de 0 a 1023. Tape el sensor de luz con la mano: « lum » cae. Apriete la placa entre sus dedos: « T » sube lentamente (la conversión de la biblioteca es entera, no con una precisión de ~0,5 °C). Incline la placa: los ejes X/Y del acelerómetro varían alrededor de los offsets en vacío codificados como 320/330/310 en la biblioteca.
Errores frecuentes
- No se muestran datos: la Esplora ya está abierta en otro programa (trazador serie de otra pestaña); ciérrelo y reinicie la placa.
- Esperar la UART en los pines 0/1: en placas con USB nativo como la Esplora,
Seriales el USB CDC; la verdadera UART de hardware esSerial1, no accesible en pines estándar. - Temperatura cruda: la fórmula interna
(raw*500/1024)-50es una aproximación no calibrada — no la compare con un termómetro médico. - Deriva del acelerómetro: los offsets de cero están codificados fijos por eje; para un proyecto preciso, registre sus propios valores en posición plana y résteles.
- Descartar « no funciona » demasiado rápido: el monitor debe estar abierto DESPUÉS del arranque; de lo contrario, perderá la cabecera, pero las mediciones llegan igualmente de forma continua.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
joystick-couleur.inoArduinojeu-boutons.inoArduinoslider-luminosite.inoArduinothermometre-couleur.inoArduinosonometre.inoArduinoaccelerometre-tilt.inoArduino