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.
analogRead(A0) returnerer 0 ved 0 V og 1023 ved reference-spændingen (typisk ~5 V).Potentiometer har tre ben: yderben → 5V og GND, midterben (wiper) → A0.
Drejer du mod 5V-siden, stiger værdien; mod GND-siden falder den.
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");
}
}
SAMPLE_MS ned for hurtigere opdatering, op for mere ro.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);
}
}
a\tb\tc (tabs) pr. linje.ADC_REF_V til din faktiske 5V (mål med multimeter).analogReference(INTERNAL) (1.1 V) og læs fx sensorer med lavt spændingsområde (kræver omkobling af kredsløb!).