KY-018 Fotowiderstand
Dieses Modul beinhaltet einen LDR-Widerstand, dessen Widerstandswert bei hellerer Umgebung kleiner wird.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit

Dieses Modul beinhaltet einen LDR-Widerstand, dessen Widerstandswert bei hellerer Umgebung kleiner wird.
Dieser Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, bei der sich eine bekannte Spannung über einen bekannten (10 kΩ) und einen unbekannten (veränderlichen) Widerstand aufteilt. Mittels dieser gemessenen Spannung lässt sich dann der Widerstand berechnen - die genaue Berechnung ist in den untenstehenden Codebeispielen enthalten.
Betriebsspannung | 3,3 V - 5 V |
Fester, bekannter Widerstand | 10 kΩ |
Abmessungen | 21 x 15 x 6 mm |
Pin-Belegung
Codebeispiel Arduino
Anschlussbelegung Arduino
Arduino | Sensor |
---|---|
Pin A5 | Signal |
5 V | +V |
GND | GND |
Das Programm misst den aktuellen Spannungswert am Sensor, berechnet aus diesem und dem bekannten Serienwiderstand den aktuellen Widerstandswert des Sensors und gibt die Ergebnisse über die serielle Ausgabe aus.
int sensorPin = A5; // Hier wird der Eingangs-Pin deklariert
// Serielle Ausgabe in 9600 Baud
void setup()
{
Serial.begin(9600);
}
// Das Programm misst den aktuellen Spannungswert am Sensor,
// berechnet aus diesen und dem bekannten Serienwiderstand den aktuellen
// Widerstandswert des Sensors und gibt die Ergebnisse auf der seriellen Ausgabe aus
void loop()
{
// Aktueller Spannungswert wird gemessen...
int rawValue = analogRead(sensorPin);
float voltage = rawValue * (5.0/1023) * 1000;
float resitance = 10000 * ( voltage / ( 5000.0 - voltage) );
// ... und hier auf die serielle Schnittstelle ausgegeben
Serial.print("Spannungswert:"); Serial.print(voltage); Serial.print("mV");
Serial.print(", Widerstandswert:"); Serial.print(resitance); Serial.println("Ohm");
Serial.println("---------------------------------------");
delay(500);
}
Beispielprogramm Download

Dieses Modul beinhaltet einen LDR-Widerstand, dessen Widerstandswert bei hellerer Umgebung kleiner wird.
Dieser Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, bei der sich eine bekannte Spannung über einen bekannten (10 kΩ) und einen unbekannten (veränderlichen) Widerstand aufteilt. Mittels dieser gemessenen Spannung lässt sich dann der Widerstand berechnen - die genaue Berechnung ist in den untenstehenden Codebeispielen enthalten.
Betriebsspannung | 3,3 V - 5 V |
Fester, bekannter Widerstand | 10 kΩ |
Abmessungen | 21 x 15 x 6 mm |
Pin-Belegung
Codebeispiel Raspberry Pi
Anschlussbelegung Raspberry Pi
Raspberry Pi | Sensor |
---|---|
- | Signal |
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Raspberry Pi | KY-053 |
---|---|
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
GPIO 3 [Pin 5] | SCL |
GPIO 2 [Pin 3] | SDA |
Analoger Sensor, daher muss folgendes beachtet werden: Der Raspberry Pi besitzt, im Gegensatz zum Arduino, keine analogen Eingänge bzw. es ist kein ADC (analog digital Converter) im Chip des Raspberry Pi's integriert. Dies schränkt den Raspberry Pi ein, insofern man Sensoren einsetzen möchte, bei denen keine digitalen Werte ausgegeben werden, sondern es sich um einen kontinuierlich veränderlichen Wert handelt (Beispiel: Potentiometer -> Andere Position = Anderer Spannungswert)
Um diese Problematik zu umgehen, enthält unser Sensorkit X40 mit dem KY-053 ein Modul mit einem 16-Bit ADC, welchen Sie am Raspberry nutzen können, um diesen um 4 analoge Eingänge zu erweitern. Dieser wird per I2C an den Raspberry Pi angeschlossen, übernimmt die analoge Messung und übergibt den Wert digital an den Raspberry Pi.
Somit empfehlen wir bei analogen Sensoren dieses Sets das KY-053 Modul mit dem besagten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter.
Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechenden ADS1x15 und I2C Python-Libraries von Adafruit. Diese wurden unter dem folgenden Link https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15 unter der MIT-Lizenz veröffentlicht. Die benötigten Libraries sind nicht im unteren Download-Paket enthalten.
Bitte beachten Sie das Sie vor der benutzung dieses Beispiels I2C auf ihrem Raspberry Pi aktivieren müssen.
#!/usr/bin/python
# coding=utf-8
import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
import math
# Create the I2C bus
i2c = busio.I2C(board.SCL, board.SDA)
# Create the ADC object using the I2C bus
ads = ADS.ADS1115(i2c)
voltageMax = 3.3
# Create single-ended input on channels
chan0 = AnalogIn(ads, ADS.P0)
chan1 = AnalogIn(ads, ADS.P1)
chan2 = AnalogIn(ads, ADS.P2)
chan3 = AnalogIn(ads, ADS.P3)
while True:
resistance = chan0.voltage / (voltageMax - chan0.voltage) * 10000
print("Spannungswert: ",'%.2f' % chan0.voltage,"V, Widerstand: ",'%.2f' % resistance, "Ω")
print("---------------------------------------------------")
time.sleep(1)
Beispielprogramm Download
Zu starten mit dem Befehl:
sudo python3 KY018-RPi.py

Dieses Modul beinhaltet einen LDR-Widerstand, dessen Widerstandswert bei hellerer Umgebung kleiner wird.
Dieser Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, bei der sich eine bekannte Spannung über einen bekannten (10 kΩ) und einen unbekannten (veränderlichen) Widerstand aufteilt. Mittels dieser gemessenen Spannung lässt sich dann der Widerstand berechnen - die genaue Berechnung ist in den untenstehenden Codebeispielen enthalten.
Betriebsspannung | 3,3 V - 5 V |
Fester, bekannter Widerstand | 10 kΩ |
Abmessungen | 21 x 15 x 6 mm |
Pin-Belegung
Codebeispiel Micro:Bit
Anschlussbelegung Micro:Bit:
Micro:Bit | Sensor |
---|---|
- | Signal |
3,3 V | +V |
GND | GND |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Micro:Bit | KY-053 |
---|---|
Pin 19 | SCL |
Pin 20 | SDA |
3,3 V | +V |
GND | GND |
Analoger Sensor, daher muss folgendes beachtet werden: Der Micro:Bit besitzt analoge Eingänge bzw. es ist ein ADC (analog digital Converter) im Chip des Micro:Bits integriert. Diese sind jedoch nur auf 10-Bit beschränkt und bieten daher nur eine recht geringe Genauigkeit für analoge Messungen.
Um diese Problematik zu umgehen, enthält unser Sensorkit X40 mit dem KY-053 ein Modul mit einem 16-Bit ADC, welchen Sie am Micro:Bit nutzen können, um diesen um 4 analoge Eingänge zu erweitern. Dieser wird per I2C an den Micro:Bit angeschlossen, übernimmt die analoge Messung und übergibt den Wert digital an den Micro:Bit.
Somit empfehlen wir bei analogen Sensoren dieses Sets das KY-053 Modul mit dem erwähnten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter KY-053 Analog Digital Converter.
Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechende Bibliothek von uns. Diese wurde unter dem folgenden Link pxt-ads1115 unter der MIT-Lizenz veröffentlicht.

Beispielprogramm Download

Dieses Modul beinhaltet einen LDR-Widerstand, dessen Widerstandswert bei hellerer Umgebung kleiner wird.
Dieser Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, bei der sich eine bekannte Spannung über einen bekannten (10 kΩ) und einen unbekannten (veränderlichen) Widerstand aufteilt. Mittels dieser gemessenen Spannung lässt sich dann der Widerstand berechnen - die genaue Berechnung ist in den untenstehenden Codebeispielen enthalten.
Betriebsspannung | 3,3 V - 5 V |
Fester, bekannter Widerstand | 10 kΩ |
Abmessungen | 21 x 15 x 6 mm |
Pin-Belegung
Codebeispiel Raspberry Pi Pico
Anschlussbelegung Raspberry Pi Pico
Raspberry Pi Pico | Sensor |
---|---|
3,3 V | +V |
GND | GND |
- | Signal |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Raspberry Pi Pico | KY-053 |
---|---|
GPIO 1 | SCL |
GPIO 0 | SDA |
3,3 V | VDD |
GND | GND |
Analoger Sensor, daher muss folgendes beachtet werden
Der Raspberry Pi Pico besitzt zwar analoge Eingänge für den internen ADC (analog digital Converter) im Chip des Raspberry Pi Pico's jedoch hat dieser ADC nur eine Auflösung von 12-Bit.
Um diesen 12-Bit ADC zu umgehen, besitzt unser Sensorkit X40 mit dem KY-053 ein Modul mit 16 Bit genauen ADC, welches Sie am Raspberry Pi Pico nutzen können, um diesen um 4 analoge Eingänge erweitern zu können. Dieses wird per I2C an den Raspberry Pi Pico angeschlossen, übernimmt die analoge Messung und gibt den Wert digital an den Raspberry Pi Pico weiter.
Somit empfehlen wir, bei analogen Sensoren dieses Sets das KY-053 Modul mit dem besagten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter
Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechenden ADS1115-Micropython Library von Joy-IT. Diese wurde unter dem folgenden Link https://github.com/joy-it/ADS1115-Micropython unter der MIT-Lizenz veröffentlicht. Die benötigte Library ist im unteren Download-Paket enthalten.
Das Programm misst den aktuellen Spannungswert am Sensor, berechnet aus diesem und dem bekannten Serienwiderstand den aktuellen Widerstandswert des Sensors und gibt die Ergebnisse über die serielle Ausgabe aus.
# Bibliotheken laden
from machine import Pin
from time import sleep
import ADS1115
# Initialisierung des ADC
ADS1115.init(0x48, 1, 4, False)
# Endlosschleife zum Auslesen des ADC | Umrechnung von Analogenwert zu Spannung
while True:
Analog = ADS1115.read(0)
Volt = ADS1115.raw_to_v(ADS1115.read(0))
# Serielleausgabe der errechneten Spannung und des gemessenen Widerstands
print("Der Analogewert beträgt: " + str(Analog) + " bei " + str(Volt) + " V")
print('---------------')
sleep(1)