Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
2.2.1 Fotowiderstand
Bemerkung
Abhängig von Ihrer Kit-Version identifizieren Sie bitte, ob Sie ADC0834 oder MCP3008 haben, und fahren Sie mit dem entsprechenden Abschnitt fort.
Einführung
Der Fotowiderstand ist eine häufig verwendete Komponente zur Messung der Umgebungslichtintensität im Alltag. Er hilft dem Controller, Tag und Nacht zu erkennen und Lichtsteuerungsfunktionen wie eine Nachtlampe zu realisieren. Dieses Projekt ähnelt sehr dem Potentiometer, und man könnte denken, es ändere die Spannung, um Licht zu erfassen.
Erforderliche Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Sie können diese auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
- |
|
Schaltplan
Experimentelle Verfahren
Schritt 1: Bauen Sie den Schaltkreis.
Schritt 2: Navigieren Sie zum Ordner des Codes.
cd ~/raphael-kit/python/
Schritt 3: Führen Sie die ausführbare Datei aus.
sudo python3 2.2.1_Photoresistor.py
Wenn der Code läuft, wird die Helligkeit der LED je nach vom Fotowiderstand erfasster Lichtintensität variieren.
Code
Bemerkung
Sie können den untenstehenden Code Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen. Bevor Sie das tun, müssen Sie jedoch zum Quellcodepfad wie raphael-kit/python navigieren. Nachdem Sie den Code geändert haben, können Sie ihn direkt ausführen, um das Ergebnis zu sehen.
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import ADC0834
import time
LedPin = 22
def setup():
global led_val
# Set the GPIO modes to BCM Numbering
GPIO.setmode(GPIO.BCM)
# Set all LedPin's mode to output and initial level to High(3.3v)
GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH)
ADC0834.setup()
# Set led as pwm channel and frequece to 2KHz
led_val = GPIO.PWM(LedPin, 2000)
# Set all begin with value 0
led_val.start(0)
def destroy():
# Stop all pwm channel
led_val.stop()
# Release resource
GPIO.cleanup()
def loop():
while True:
analogVal = ADC0834.getResult()
print ('analog value = %d' % analogVal)
led_val.ChangeDutyCycle(analogVal*100/255)
time.sleep(0.2)
if __name__ == '__main__':
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the program destroy() will be executed.
destroy()
Code-Erklärung
def loop():
while True:
analogVal = ADC0834.getResult()
print ('analog value = %d' % analogVal)
led_val.ChangeDutyCycle(analogVal*100/255)
time.sleep(0.2)
Lesen Sie den Analogwert von CH0 des ADC0834. Standardmäßig wird die Funktion
getResult() verwendet, um den Wert von CH0 zu lesen. Wenn Sie andere Kanäle
lesen möchten, geben Sie bitte 1, 2 oder 3 in die () der Funktion
getResult() ein. Als Nächstes sollten Sie den Wert über die Print-Funktion
ausgeben. Da das sich ändernde Element der Tastverhältnis von LedPin ist,
wird die Rechenformel analogVal*100/255 benötigt, um analogVal in
Prozentwerte umzurechnen. Schließlich wird ChangeDutyCycle() aufgerufen, um
den Prozentsatz in LedPin zu schreiben.
Phänomen-Bild