potentiomete-plot.ino
El monitor serie del IDE sabe trazar curvas: si sale un solo valor por línea, el Nano se convierte en osciloscopio de bolsillo. Este sketch promedia 16 muestras del potenciómetro en A0 y añade una barra ASCII para los fans del terminal.
Hardware
Un Arduino Nano clásico (ATmega328P a 16 MHz, formato DIL de 30 patillas para breadboard, USB mini-B, lógica de 5 V, pin RESET abajo a la izquierda). Arduino Nano, potenciómetro de 10 kΩ (cursor en A0, las otras dos patas en 5 V y GND).
Cableado
Cursor→A0, un extremo→5 V, otro extremo→GND; cualquier sensor 0-5 V sigue el mismo cableado.
Funcionamiento
La media de 16 lecturas divide el ruido por cuatro; analogRead usa el convertidor de 10 bits del 328P con referencia de 5 V. La pestaña Serial Plotter muestra la curva en directo.
Ejecución
En el IDE de Arduino, selecciona la placa Arduino Nano y el procesador ATmega328P, elige el puerto serie y carga. El rail de 5 V de la placa conviene a sensores de 5 V; si no, usa 3,3 V en pines compatibles.
Variantes
Cambia analogReference a INTERNAL (1,1 V) para señales pequeñas o envía todo al trazador Python para varias escalas.
potentiomete-plot.ino
// Potentiometre sur A0 : trace ASCII + format "trace" du plotter.
// Le moniteur serie 2.x d l'IDE affiche la valeur si une seule sort.
const int CANAL = A0;
const int MOYENNE = 16;
unsigned long dernier = 0;
void setup() {
Serial.begin(115200);
analogReference(DEFAULT); // 0-5 V par defaut sur le Nano
}
void loop() {
if (millis() - dernier < 50) return; // 20 Hz
dernier = millis();
long somme = 0;
for (int i = 0; i < MOYENNE; i++) somme += analogRead(CANAL);
int brut = somme / MOYENNE; // moyenne glissante anti-bruit
float tension = brut * (5.0 / 1023.0);
Serial.print(tension, 3); // <- seule valeur : plotter IDE
Serial.print(" ");
int barreau = map(brut, 0, 1023, 0, 40);
for (int i = 0; i < barreau; i++) Serial.print('#');
Serial.println();
}