Bemerkung
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community auf Facebook! Tauche gemeinsam mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.
Warum beitreten?
Experten-Support: Löse After-Sales-Probleme und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.
Lernen & Teilen: Tausche Tipps und Tutorials aus, um deine Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalte frühzeitig Zugang zu neuen Produktankündigungen und Sneak Peeks.
Spezielle Rabatte: Profitiere von exklusiven Rabatten auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nimm an Gewinnspielen und Feiertagsaktionen teil.
👉 Bereit, mit uns zu entdecken und zu erschaffen? Klicke [here] und tritt noch heute bei!
ADC
Einführung
Ein Fotowiderstand, auch bekannt als lichtabhängiger Widerstand ( LDR ), ist ein Bauteil, das die Lichtintensität erkennt. Sein Widerstand nimmt mit steigender Lichtintensität ab, was ihn in Geräten wie automatischen Nachtlampen und Umgebungslichtsteuerungen nützlich macht.
Dieses Projekt zeigt, wie man einen Fotowiderstand mit dem Fusion HAT+ verwendet, um die Helligkeit einer LED basierend auf der Umgebungshelligkeit anzupassen. Das Funktionsprinzip ähnelt einem Potentiometer, nur dass der Eingang Licht statt einer manuellen Einstellung ist.
Schaltplan
Nachfolgend sind die Schaltpläne dargestellt, die zeigen, wie die Komponenten verbunden werden:
Verdrahtungsplan
Baue die Schaltung wie im untenstehenden Diagramm gezeigt auf:
Stelle sicher, dass:
Der Fotowiderstand mit dem Fusion HAT+ verbunden ist, um analoge Signale in digitale Werte umzuwandeln.
Die LED mit einem GPIO-Pin zur PWM-Steuerung verbunden ist.
Alle Verbindungen sicher sind und die Strom- und Masseanschlüsse korrekt gesetzt sind.
Code
Unten steht der in diesem Projekt verwendete Python-Code:
#!/usr/bin/env python3
from fusion_hat.adc import ADC
from fusion_hat.pwm import PWM
import time
# Initialize a PWM LED
led = PWM('P0')
# Set up the potentiometer
photoresistor = ADC('A0')
def MAP(x, in_min, in_max, out_min, out_max):
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
try:
while True:
# Get the current reading from the ADC port
result = photoresistor.read()
print('result = %d ' %result)
# Map the ADC value to a range suitable for setting LED brightness
value = MAP(result, 0, 4095, 0, 100)
# Set the LED brightness
led.pulse_width_percent(value)
# Wait for 1 seconds before reading again
time.sleep(0.2)
# Graceful exit when 'Ctrl+C' is pressed
except KeyboardInterrupt:
led.pulse_width_percent(0) # Turn off the LED
Dieses Python-Skript liest kontinuierlich den Wert des Fotowiderstands, ordnet ihn einem geeigneten Bereich zur Einstellung der LED-Helligkeit zu und passt die Helligkeit der LED entsprechend an. Das Skript enthält zudem einen sauberen Beendigungsmechanismus, um die LED beim Abbruch durch den Benutzer auszuschalten. Beim Ausführen:
Das Fusion HAT+ liest kontinuierlich die Fotowiderstandswerte von seinem Eingangskanal ( im Bereich von 0 bis 4095 ).
Der Analogwert, der die Lichtintensität oder eine andere variable Eingabe repräsentiert, wird in der Konsole als
result = <value>ausgegeben.Das Skript ordnet den Analogwert einem PWM-Signal zu, um die Helligkeit der LED anzupassen.
Die LED-Helligkeit ändert sich dynamisch basierend auf dem ADC-Eingang, mit Aktualisierungen alle 0,2 Sekunden.
Das Programm läuft unbegrenzt, bis es mit
Ctrl+Cunterbrochen wird; dann schaltet sich die LED aus.