potentiomete-plot.ino

Arduino Nano (Classic, ATmega328P) · Fichier : potentiomete-plot.ino · Langage : Arduino · Usage : Visualiser un capteur analogique dans le moniteur série

Le moniteur série de l'IDE Arduino sait tracer les courbes : si une seule valeur sort par ligne, le Nano devient oscilloscope de poche. Ce croquis moyenne 16 échantillons du potentiomètre sur A0 et ajoute une barre ASCII pour les adeptes du terminal.

Matériel requis

Un Arduino Nano classique (ATmega328P à 16 MHz, brochage DIL 30 broches sur breadboard, USB mini-B, logique 5 V, broche RESET en bas à gauche). Arduino Nano, potentiomètre 10 kΩ (curseur sur A0, les deux autres broches sur 5 V et GND).

Câblage

Curseur→A0, une extrémité→5 V, autre extrémité→GND ; tout capteur 0-5 V suit le même branchement.

Fonctionnement

La moyenne sur 16 lectures divise le bruit par quatre ; analogRead utilise le convertisseur 10 bits du 328P avec référence 5 V. L'onglet Traceur de données affiche la courbe en direct.

Exécution

Dans l'IDE Arduino, sélectionnez la carte Arduino Nano et le processeur ATmega328P, choisissez le port série puis téléversez. L'alimentation 5 V de la carte convient aux capteurs 5 V ; sinon utiliser le 3,3 V des broches adaptées.

Variantes

Changez analogReference pour INTERNAL (1,1 V) sur les petits signaux, ou envoyez le tout vers le traceur Python pour des échelles multiples.

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();
}

← Retour à la fiche