Raspberry Pi - Potentiometer LED dimmen

In een vorige tutorial hebben we ontdekt hoe een potentiometer kan worden gebruikt om een LED aan te sturen. In deze tutorial leert u hoe u met de Raspberry Pi de helderheid van de LED aanpast op basis van de uitgangswaarde van de potentiometer.

Over LED en Potentiometer

Als u nog niet bekend bent met LED en potentiometer (inclusief pinout, functionaliteit, programmeren, enz.), kunnen de volgende tutorials u helpen:

Aansluitschema

Raspberry Pi Rotary Potentiometer LED aansluitschema

This image is created using Fritzing. Click to enlarge image

Om uw bekabelingsopstelling te vereenvoudigen en te organiseren, raden we het gebruik van een Schroevenklemaansluiting-shield voor Raspberry Pi aan. Deze shield zorgt voor veiligere en beter beheerbare verbindingen, zoals hieronder weergegeven:

Raspberry Pi Schroevenklemaansluiting-Shield

Raspberry Pi Code

Snel aan de slag

  • Zorg dat u Raspbian of een ander Raspberry Pi-compatibel besturingssysteem op uw Pi heeft geïnstalleerd.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi internettoegang heeft als u nog libraries moet installeren.
  • Als u voor het eerst een Raspberry Pi gebruikt, bekijk dan de handleiding voor het instellen van de Raspberry Pi.
  • Verbind uw pc met de Raspberry Pi via SSH met behulp van de ingebouwde SSH-client op Linux en macOS of PuTTY op Windows. Bekijk de handleiding hoe u uw pc verbindt met de Raspberry Pi via SSH.
  • Controleer of de RPi.GPIO-library geïnstalleerd is. Zo niet, installeer deze met de volgende commando's:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Installeer de Adafruit_ADS1x15-library door het volgende commando op de terminal van uw Raspberry Pi uit te voeren:
sudo pip install Adafruit-ADS1x15
  • Maak een nieuw Python-scriptbestand met de naam potentiometer_fade_led.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-potentiometer-fade-led import time import Adafruit_ADS1x15 import RPi.GPIO as GPIO # Create an ADS1115 ADC object adc = Adafruit_ADS1x15.ADS1115() # Set the gain to ±4.096V (adjust if needed) GAIN = 1 # Define the GPIO pin for the LED LED_PIN = 16 # Change this to the appropriate GPIO pin # Set up GPIO for the LED GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN, GPIO.OUT) # Define the PWM parameters PWM_FREQUENCY = 1000 # PWM frequency in Hz PWM_DUTY_CYCLE = 0 # Initial duty cycle (0 to 100) # Create a PWM object pwm_led = GPIO.PWM(LED_PIN, PWM_FREQUENCY) # Start PWM with the initial duty cycle pwm_led.start(PWM_DUTY_CYCLE) # Main loop to read the analog value and control LED brightness try: while True: # Read the raw analog value from channel A3 raw_value = adc.read_adc(3, gain=GAIN) # Convert the raw value to voltage voltage = raw_value / 32767.0 * 4.096 # Assumes 4.096 V range for GAIN=1 # Print the results print("Raw Value: {} \t Voltage: {:.2f} V".format(raw_value, voltage)) # Map the analog value to a duty cycle percentage (0 to 100) duty_cycle = int((raw_value / 32767.0) * 100) # Update the LED brightness with PWM pwm_led.ChangeDutyCycle(duty_cycle) # Add a delay between readings (adjust as needed) time.sleep(0.1) except KeyboardInterrupt: print("\nExiting the program.") # Stop PWM and clean up GPIO on exit pwm_led.stop() GPIO.cleanup()
  • Sla het bestand op en voer het Python-script uit met het volgende commando in de terminal:
python3 potentiometer_fade_led.py
  • Draai aan de potentiometer.
  • Bekijk de helderheid van de LED veranderen.
  • Controleer de uitvoer in de terminal.
PuTTY - Raspberry Pi
Raw Value: 19736 Voltage: 2.39 V Raw Value: 19075 Voltage: 2.31 V Raw Value: 18409 Voltage: 2.23 V Raw Value: 17747 Voltage: 2.15 V Raw Value: 17086 Voltage: 2.07 V

Het script draait in een oneindige lus totdat u Ctrl + C indrukt in de terminal.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!