Fotowiderstand am Arduino auslesen
Helligkeit messen und eine LED bei Dunkelheit schalten
Mikrocontroller wählen
Pins, Schaltplan und Sketch in den Arbeitsschritten wechseln mit deiner Auswahl. Sie bleibt gespeichert.
Spannung über einen Spannungsteiler auslesen
Den Seriellen Monitor nutzen
Verkabeln und programmieren
Pinbelegung Arduino UNO
Beim Arduino UNO schreibst du die Pin-Nummer direkt in den Sketch, also 5 und 7 ohne Zusatz.
// Pins für den Fotowiderstand und die LED
int Fotowiderstand = A0;
int LED = 12;
// der Wert für SchwelleDunkelheit
// kann an die gewünschte "Dunkelheit"
// (den Zeitpunkt, an dem die LED leuchten soll)
// angepasst werden
int SchwelleDunkelheit = 400;
void setup()
{
pinMode(LED, OUTPUT);
// Seriellen Monitor starten
Serial.begin(9600);
}
void loop()
{
// digitaler Wert der gelesenen Spannung am Pin A0
int SensorWert = analogRead(Fotowiderstand);
// Die Kommentarzeichen der beiden folgenden Zeilen entfernen,
// um den digitalen Wert der ausgelesenen Spannung am Pin A0 anzuzeigen
// und evtl. den Wert für SchwelleDunkelheit anzupassen
// Serial.print("Ausgelesener Wert: ");
// Serial.println(SensorWert);
if (SensorWert < SchwelleDunkelheit)
{
// wenn der digitale Wert am Pin A0 unterschritten wird
// -> LED einschalten
digitalWrite(LED, HIGH);
}
// andernfalls LED ausschalten
else
{
digitalWrite(LED, LOW);
}
}Download: programmcode-arduino-uno.ino
Board in der Arduino IDEArduino Uno
Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.
Pinbelegung Wemos D1 Mini
Den Pin-Nummern muss das D vorangestellt werden. Du schreibst also D6 und D7 in den Sketch, nicht 6 und 7.
// Pins für den Fotowiderstand und die LED
int Fotowiderstand = A0;
int LED = D1;
// der Wert für SchwelleDunkelheit
// kann an die gewünschte "Dunkelheit"
// (den Zeitpunkt, an dem die LED leuchten soll)
// angepasst werden
int SchwelleDunkelheit = 400;
void setup()
{
pinMode(LED, OUTPUT);
// Seriellen Monitor starten
Serial.begin(9600);
}
void loop()
{
// digitaler Wert der gelesenen Spannung am Pin A0
int SensorWert = analogRead(Fotowiderstand);
// Die Kommentarzeichen der beiden folgenden Zeilen entfernen,
// um den digitalen Wert der ausgelesenen Spannung am Pin A0 anzuzeigen
// und evtl. den Wert für SchwelleDunkelheit anzupassen
// Serial.print("Ausgelesener Wert: ");
// Serial.println(SensorWert);
if (SensorWert < SchwelleDunkelheit)
{
// wenn der digitale Wert am Pin A0 unterschritten wird
// -> LED einschalten
digitalWrite(LED, HIGH);
}
// andernfalls LED ausschalten
else
{
digitalWrite(LED, LOW);
}
}Download: programmcode-wemos-d1-mini.ino
Board in der Arduino IDELOLIN(WEMOS) D1 R2 & mini
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Pinbelegung ESP32-Wroom
Beim ESP32 schreibst du die GPIO-Nummer direkt in den Sketch, also 26 und 27 ohne D davor.
// Pins für den Fotowiderstand und die LED
int Fotowiderstand = 35;
int LED = 33;
// der Wert für SchwelleDunkelheit
// kann an die gewünschte "Dunkelheit"
// (den Zeitpunkt, an dem die LED leuchten soll)
// angepasst werden
int SchwelleDunkelheit = 1200;
void setup()
{
pinMode(LED, OUTPUT);
// Seriellen Monitor starten
Serial.begin(9600);
}
void loop()
{
// digitaler Wert der gelesenen Spannung am Pin 35
int SensorWert = analogRead(Fotowiderstand);
// Die Kommentarzeichen der beiden folgenden Zeilen entfernen,
// um den digitalen Wert der ausgelesenen Spannung am Pin 35 anzuzeigen
// und evtl. den Wert für SchwelleDunkelheit anzupassen
// Serial.print("Ausgelesener Wert: ");
// Serial.println(SensorWert);
if (SensorWert < SchwelleDunkelheit)
{
// wenn der digitale Wert am Pin 35 unterschritten wird
// -> LED einschalten
digitalWrite(LED, HIGH);
}
// andernfalls LED ausschalten
else
{
digitalWrite(LED, LOW);
}
}Download: programmcode-esp32-wroom.ino
Board in der Arduino IDEESP32 Dev Module
Dafür muss die ESP32-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Pinbelegung NodeMCU
Auch beim NodeMCU steht vor der Pin-Nummer ein D. D1 entspricht GPIO 5, D2 entspricht GPIO 4.
// Pins für den Fotowiderstand und die LED
int Fotowiderstand = A0;
int LED = D1;
// der Wert für SchwelleDunkelheit
// kann an die gewünschte "Dunkelheit"
// (den Zeitpunkt, an dem die LED leuchten soll)
// angepasst werden
int SchwelleDunkelheit = 400;
void setup()
{
pinMode(LED, OUTPUT);
// Seriellen Monitor starten
Serial.begin(9600);
}
void loop()
{
// digitaler Wert der gelesenen Spannung am Pin A0
int SensorWert = analogRead(Fotowiderstand);
// Die Kommentarzeichen der beiden folgenden Zeilen entfernen,
// um den digitalen Wert der ausgelesenen Spannung am Pin A0 anzuzeigen
// und evtl. den Wert für SchwelleDunkelheit anzupassen
// Serial.print("Ausgelesener Wert: ");
// Serial.println(SensorWert);
if (SensorWert < SchwelleDunkelheit)
{
// wenn der digitale Wert am Pin A0 unterschritten wird
// -> LED einschalten
digitalWrite(LED, HIGH);
}
// andernfalls LED ausschalten
else
{
digitalWrite(LED, LOW);
}
}Download: programmcode-nodemcu.ino
Board in der Arduino IDENodeMCU 1.0 (ESP-12E Module)
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.