Der ADC liest Werte von 0 - 1023 aus dem Poti. Der Schwellwert hier im Büro war 500, es sollten also die gängisten Werte mit dem Poti dargestellt werden können.

kapitel13_daemmerungsschalter.ino
#define LED_GRUEN 11
#define ANALOGPIN A0
#define POTIPIN A1
#define HYSTERESE 60
 
int hell = 1;
int messwert = 0;
int schwellwert = 0;
 
void setup()
{
  pinMode(LED_GRUEN, OUTPUT); // Pin auf Ausgang
  pinMode(ANALOGPIN, INPUT);  // Pin auf Eingang
  pinMode(POTIPIN, INPUT);    // Pin auf Eingang
  schwellwert = analogRead(POTIPIN);
  if(analogRead(ANALOGPIN)<schwellwert)
  {  // Es ist hell
    hell = 1;
    digitalWrite(LED_GRUEN, LOW); // gruene LED aus
  }
  else
  {  // Der Wert ist im roten Bereich, kann also fallen
    hell= 0;
    digitalWrite(LED_GRUEN, HIGH); // gruene LED an
  }
}
 
void loop()
{
  messwert = analogRead(ANALOGPIN);
  schwellwert = analogRead(POTIPIN);
  // Lieber mehr Klammern setzen als zu wenig, so ist die Reihenfolge sicher definiert:
  if((hell == 1) && (messwert > (schwellwert + HYSTERESE)))
  { // Es wird dunkel:
    digitalWrite(LED_GRUEN, HIGH); // gruene LED an
    hell = 0;
  }
  else if((hell == 0) && (messwert < (schwellwert - HYSTERESE))) 
  { // Es wird wieder hell:
    digitalWrite(LED_GRUEN, LOW); // gruene LED aus
    hell = 1;
  }
  else
  { // nichts tun
  }
}