Arduino Uno · Analog Input

Potentiometer → Serial Monitor (analogRead på A0)

Forbind et 10 kΩ potentiometer til A0, læs rå værdier (0–1023), og udskriv både rå værdi, volt og procent til Serial Monitor. Ekstra skitse til Serial Plotter følger.

Det skal du bruge

  • Arduino Uno (klon er fint) + USB-kabel.
  • Breadboard-shield eller lille breadboard + 3× jumperledninger.
  • 10 kΩ potentiometer (typisk mærket “B10K”).
ADC & reference
Uno har en 10-bit ADC: 0…1023. Standard-referencen er ~5.0 V (USB/Vin). Små afvigelser i din 5 V gør, at den beregnede spænding kan ligge et par % fra “perfekt”.

Teori kort: analogRead()

  • analogRead(A0) returnerer 0 ved 0 V og 1023 ved reference-spændingen (typisk ~5 V).
  • Procent = værdi ÷ 1023 × 100.
  • Volt ≈ værdi ÷ 1023 × Vref (brug 5.0 V som tommelfinger for Uno).
Støj
Hvis værdien “hopper” lidt, er det normalt. Du kan roligt glatte med et lille gennemsnit (se Program 2).

Forbindelser (A0)

Potentiometer har tre ben: yderben → 5V og GND, midterben (wiper) → A0.

5V ──┐
├──[ POT ]─── A0 ← midterben (wiper)
GND ──┘

Drejer du mod 5V-siden, stiger værdien; mod GND-siden falder den.

Vigtigt
Byt ikke rundt på 5V og GND. Midterben skal til A0.

Program 1 · Simpel udlæsning til Serial Monitor

Udskriver rå værdi, vurderet volt og procent. Åbn Værktøjer → Serial Monitor (115200 baud).

const int POT_PIN = A0;
const float ADC_REF_V = 5.0;       // typisk ~5.0 V på Uno
const unsigned long SAMPLE_MS = 20; // 50 Hz opdatering

unsigned long lastMs = 0;

void setup(){
  Serial.begin(115200);
  // valgfrit: fastgør reference til DEFAULT (≈5V)
  analogReference(DEFAULT);
}

void loop(){
  unsigned long now = millis();
  if (now - lastMs >= SAMPLE_MS) {
    lastMs = now;

    int raw = analogRead(POT_PIN);           // 0..1023
    float pct = (raw / 1023.0f) * 100.0f;    // %
    float volt = (raw / 1023.0f) * ADC_REF_V;

    Serial.print("raw=");
    Serial.print(raw);
    Serial.print("\t");
    Serial.print("pct=");
    Serial.print(pct, 1);
    Serial.print("%\t");
    Serial.print("U=");
    Serial.print(volt, 3);
    Serial.println(" V");
  }
}
Justér tempo
Skru SAMPLE_MS ned for hurtigere opdatering, op for mere ro.

Program 2 · Glat gennemsnit + (valgfrit) Serial Plotter

Gennemsnit af 16 prøver dæmper støj. Egen “kanal”-udskrift gør den klar til Værktøjer → Serial Plotter.

const int POT_PIN = A0;
const float ADC_REF_V = 5.0;
const int N = 16;                    // antal samples til gennemsnit
const unsigned long SAMPLE_MS = 20;

unsigned long lastMs = 0;

int readAvg(){
  long sum = 0;
  for (int i = 0; i < N; i++){
    sum += analogRead(POT_PIN);
  }
  return (int)(sum / N); // 0..1023
}

void setup(){
  Serial.begin(115200);
  analogReference(DEFAULT);
}

void loop(){
  unsigned long now = millis();
  if (now - lastMs >= SAMPLE_MS) {
    lastMs = now;

    int raw = readAvg();
    float pct = (raw / 1023.0f) * 100.0f;
    float volt = (raw / 1023.0f) * ADC_REF_V;

    // Til Serial Monitor (menneskevenlig):
    Serial.print("raw=");
    Serial.print(raw);
    Serial.print("\tpct=");
    Serial.print(pct, 1);
    Serial.print("%\tU=");
    Serial.print(volt, 3);
    Serial.println(" V");

    // Til Serial Plotter (ENKEL kanal): udkommentér næste linje og kommentér de 4 linjer ovenfor
    // Serial.println(raw);
  }
}
Plotter-tip
Serial Plotter vil helst have én værdi pr. linje for en enkelt graf. Flere kurver kan printes som a\tb\tc (tabs) pr. linje.

Fejlfinding

  • Værdien sidder fast på 1023 eller 0: Wiper (midterben) skal til A0; yderben til 5V og GND.
  • Støj/hop: Brug Program 2 (gennemsnit), eller øg N og/eller SAMPLE_MS. Undgå løse ledninger.
  • Forkert volt: Justér ADC_REF_V til din faktiske 5V (mål med multimeter).
  • Intet output: Tjek at Serial Monitor kører 115200 baud, og at den rigtige port er valgt.

Næste skridt

  • Brug potentiometeret til at styre PWM-fade tempo eller lysstyrke på en LED.
  • Lav “to-punkt kalibrering”: gem rå værdier ved min/max og map til 0–100% ud fra netop din pot.
  • Skift til analogReference(INTERNAL) (1.1 V) og læs fx sensorer med lavt spændingsområde (kræver omkobling af kredsløb!).