• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Hardware & GPIO»KY040 Drehregler als Lautstärkeregler für den Raspberry Pi

KY040 Drehregler als Lautstärkeregler für den Raspberry Pi

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi Drehregler - Rotary Encoder
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Mit Drehreglern ist es möglich die Anzahl der bewegten „Schritte“ zu erkennen. Anders als übliche Potentiometer, welche in verschiedenen analogen Modulen wie z.B. Joysticks verbaut sind, wird beim KY040 eine Drehung in beide Richtung erkannt. Solche Drehregler sind üblicherweise in Radios und anderen drehbaren Einstellungsmöglichkeiten verbaut.

In diesem Tutorial bauen wir aus einem solchen KY040 einen Lautsärkeregler für unseren Raspberry Pi. So können wir bspw. auch einfach per Hardware die Lautstärke unseres Live-Radios oder unserer Jukebox regeln.

Natürlich kann das Tutorial (in abgewandter Form) auch für andere Projekte verwendet werden. Helligkeitsregelung, Zeiten einstellen, etc. sind Optionen die mir spontan einfallen, allerdings kann so ziemlich alles, was per Drehknopf eingestellt werden soll, damit umgesetzt werden.

 

Zubehör

Neben einem Raspberry Pi wird ein Drehregler mit 5 Pins benötigt. Zum Anschluss an den Pi werden außerdem Female-Female Jumper Kabel (ebay) gebraucht.

Wer einen 3D Drucker besitzt, kann sich auch noch dazu einen aufsteckbaren Drehknopf drucken.

In dem Video habe ich zusätzlich die Daten auf einem 20×04 Zeichen Display anzeigen lassen (hier geht es zur Anleitung).

 

Raspberry Pi KY040 Verbindung

Der Drehregler hat insgesamt 5 Anschlüsse – davon zwei Spannungspole (VCC, GND) und einen zum Erfassen des Tastendrucks (SW). Mit Hilfe der restlichen zwei Pins (DT, CLK), kann die Richtung der Drehung festgestellt werden. Dabei wird beim Drehen eine Flanke erzeugt. Je nachdem, ob nach rechts oder links gedreht wird, ist die Spannung des anderen Pins digital 0 oder 1. Der SW Pin liefert hingegen solange eine Spannung, die der Knopf gedrückt wird.

Meine Pinbelegung sieht folgendermaßen aus:

Raspberry Pi KY040
GPIO 5 (Pin 29) CLK
GPIO 6 (Pin 31) DT
GPIO 13 (Pin 33) SW
3.3V (Pin 1) +
GND (Pin 6) GND

 

Raspberry Pi KY040 Steckplatine

 

Um den Drehregler verwenden zu können, laden wir der Einfachheit halber eine Bibliothek, welche auf Github verfügbar ist.

git clone https://github.com/conradstorz/KY040

Die enthaltene „KY040.py“ Datei können wir in anderen Skripten importieren.

 

Drehregler Anwendungsbeispiel: Lautstärke ändern

Im folgenden Video habe ich den Drehregler KY040 als Drehknopf für die Lautstärke am Raspberry Pi genommen. Das Drücken des Knopfes lässt den Sound stumm schalten (Mute).

Um auch einen solchen Lautstärkeregler nach zu bauen, habe ich ein Skript geschrieben, welches Systemaufrufe zum Ändern der Lautstärke aufruft. Die Basis bildet die eben geladene Klasse, welche im selben Verzeichnis wie das nachfolgende Skript vorhanden sein muss.

Dazu können wir z.B. einfach in den Ordner wechseln und eine neue Datei erstellen:

cd KY040
sudo nano volume_regulator.py

Folgender Inhalt wird eingefügt:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import RPi.GPIO as GPIO
from KY040 import KY040
import os, time
 
 
def readVolume():
    value = os.popen("amixer get PCM|grep -o [0-9]*%|sed 's/%//'").read()
    return int(value)
def rotaryChange(direction):
    volume_step = 5
    volume = readVolume()
    if direction == 1:
        os.system("sudo amixer set PCM -- "+str(min(100,max(0,volume + volume_step)))+"%")
    else:
        os.system("sudo amixer set PCM -- "+str(min(100,max(0,volume - volume_step)))+"%")
def switchPressed():
     print "button pressed"
 
 
if __name__ == "__main__":
 
    CLOCKPIN = 5
    DATAPIN = 6
    SWITCHPIN = 13
  
    
    GPIO.setmode(GPIO.BCM)
    
    ky040 = KY040(CLOCKPIN, DATAPIN, SWITCHPIN, rotaryChange, switchPressed)
 
    ky040.start()
 
    try:
        while True:
            time.sleep(0.05)
    finally:
        ky040.stop()
        GPIO.cleanup()
 

Gespeichert wird mit STRG+O und mit STRG+X wird der Nano-Editor geschlossen.

Das Skript leitet im Grunde genommen nur die jeweiligen Bewegungen weiter. Dazu lesen wir zuerst die aktuelle Lautstärke aus und erhöhen bzw. verringern diese um 5%. Den Wert kannst du natürlich nach Belieben anpassen. Wer mehr über den Alsa-Mixer erfahren möchte, kann einen Blick in die Dokumentation werfen. Hiermit können alle Sound-relevanten Daten (Lautstärke, Einstellungen, etc.) ausgelesen werden und auch in anderen Projekten verwendet werden (Car-PC als Beispiel).

 

Wie im Video zu sehen ist, ist die Erkennung leider nicht immer absolut genau. Hier kann die bouncetime geändert werden, um eine Variabilität zu gewährleisten. Ist der Wert allerdings zu groß, kann es sein, dass manche Drehungen gar nicht erkannt werden.

CarPC KY040 Potentiometer Poti Radio Radiostation webradio
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragRaspberry Pi + Android: Schwenkbarer Kamera-Livestream
Nächster Beitrag Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren

Ähnliche Beiträge

ESP32 TDS Sensor: Wasserqualität im Smart Home messen

ESP32 pH-Sensor – Automatische pH-Messung für Pool und Hydroponik

Home Assistant auf dem Raspberry Pi – Erste Schritte

How-To: Bluetooth Verbindung Zwischen ESP32 und Raspberry Pi’s

48 Kommentare

  1. don am 1. Februar 2017 9:29

    Was wäre denn der Code für Up/Down/Enter?
    Ich überlege, so einen Regler als Steuerung für einen Squeezebox-Client zu verwenden.

    Antworten
    • Felix am 1. Februar 2017 9:51

      Der Beispielcode ist doch unten dabei?

      Antworten
  2. Bonzadog am 1. Februar 2017 9:58

    1.2.2017
    An interesting tutorial. This has given me an idea.
    Volume control using the potentiometer as volume limit, but including
    with a digital potentiometer such as http://cdn-reichelt.de/documents/datenblatt/A200/DATASHEET_AD_8400.pdf (the data sheet is in English).
    The idea being that when the device is switched on the volume to be increased
    until equal to the analogue poti. This is to avoid the problen caused by cranking
    the volume poti up to max ,switching off, then later switching on to get a large
    scale dose of tinnitus.
    When I get enough time free I’ll try that out and let you know, I have a bit of a problem with my right arm, it is difficult to build alone – I need help.
    Perhaps someone has all ready done it,

    Antworten
    • Felix am 1. Februar 2017 13:08

      My first thought was using a potentiometer as you said. But the problem ist, if you are near to the maximum (e.g. 9k from 10k) and you rotate again to the right: Then you will reach e.g. 1k and the volume is changing from 90% to 10%. This is why I decided to use use a rotary switch instead of a potentiometer. But if you have a better solution, I would be happy if you would share it with us.

      Antworten
  3. Dirk am 11. März 2017 13:23

    Für die Genauigkeit einfach 2 Kondensatoren ( steht auch im Datasheet drin ) benutzen.
    Eine gute Erklärung siehe hier:

    Antworten
    • Simon am 22. Mai 2017 8:07

      Ich habe je einen 100nF Kondensatoren zwischen CLK und GND und zwischen DT und GND geschaltet – und es läuft tatsächlich viel besser!

      Antworten
      • klaus am 2. September 2017 21:00

        hallo! das habe ich auch vor, habe diese https://www.conrad.at/de/keramik-kondensator-radial-bedrahtet-100-nf-50-vdc-10-holystone-rdcx104k050dka-1-st-531855.html Kondensatoren gekauft. Wie kann ich die zwischenschalten? danke

      • Simon am 19. September 2017 16:20

        Hey Klaus
        Kommt etwas drauf an, für welche Anwendung du den Drehregler verwendest. Ich habe die Verbindungskabel getrennt, den Kondensator dazwischen gelötet und das ganze mit einem Schrumpfschlauch eingepackt.
        Lieber Gruss
        Simon

      • Florian Rachmann am 3. November 2018 13:51

        Wie genau würde dann der Schaltplan aussehen? Ich habe jetzt einen Kondensator zwischen CLK und GND und zwischen DT und GND. CLK und DT gehen nachdem sie auf der einen Seite des Kondensators verbunden wurden wie oben gezeigt weiter und dann habe ich das andere Ende der beiden Kondensatoren mit GND verbunden, das ich an einer Stelle unterbrochen habe. Mein Problem ist jetzt, dass egal in welche Richtung ich drehe die Lautstärke runter geht, ansonsten macht der Kondensator seinen Job gut, der Regler ist viel flüssiger und gleichmäßiger.

  4. Christopher Daffner am 28. März 2017 19:25

    Könntest du bitte konkret aufzeigen wie du das Display zum Lautstärke anzeigen programmiert hast? Bin daran fast am verzweifeln. Vielen lieben Dank!

    Antworten
    • Felix am 28. März 2017 20:42

      Der Teil ist in diesem Tutorial gezeigt: HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern

      Antworten
  5. Simon am 15. Mai 2017 16:20

    Vielen Dank für das Toutorial
    Sieht so aus, als dass auch ich als Newbie damit mein Ziel erreichen könnte. Ich habe dazu noch ein – zwei Fragen und bin sehr dankbar, wenn mir jeman weiterhelfen kann.
    1. Muss ich die Bibliothek KY040 irgendwie einbinden, damit sie beim Start des Raspy gelesen wird?
    2. Ich betreibe mein PI mit einer externen Soundkarte, fundktioniert das oben beschreibene Vorgehen trotzdem?
    3. Ich habe Kodi 17 in einem Raspbian Jessie installiert, denkt Ihr, dass ich den Sound so trotzdem regeln kann?

    Vielen Dank für eure Hilfe

    Simon

    Antworten
    • Felix am 15. Mai 2017 16:22

      1. Nein
      2. Sollte trotzdem gehen. Ansonsten kannst du die zu regelnde Quelle auch angeben.
      3. Ja, sollte möglich sein.

      Antworten
      • Simon am 15. Mai 2017 22:01

        Vielen Dank Felix für deine rasche Antwort! Das stimmt mich sehr optimistisch auszuprobieren!
        Weisst du wie ich die Quelle meiner Soundkarte auslesen- und welchen Pfad ich danach im Skript eingeben oder ersetzen muss?

      • Felix am 15. Mai 2017 22:02

        Am besten du ließt dich ein bisschen in den amixer ein. Das Python Skript ruft ja lediglich den Shell Befehl dessen auf.

      • Simon am 30. Mai 2017 22:50

        Soundkarte funktioniert leider nicht und ich habe nicht herausgefunden, wo ich die zu regelnde Quelle angeben kann.
        Aber ich glaube dem Rätsel ein Schritt näher gekommen zu sein und zwar habe ich in der alsa.conf die Werte:
        defaults.ctl.card
        defaults.pcm.card
        defaults.pcm.device

        alle auf 1 (USB AUDIO Codec) gestellt. Beim Reboot wird nun die USB Soundkarte als default erkannt. Wenn ich jetzt aber das Skript „volume_regulator.py“ starte kommt beim Bedienen des Drehreglers folgende Fehlermeldung:

        Traceback (most recent call last):
        File „/home/pi/KY040/KY040.py“, line 43, in _clockCallback
        self.rotaryCallback(GPIO.input(self.dataPin))
        File „volume_regulator.py“, line 11, in rotaryChange
        volume = readVolume()
        File „volume_regulator.py“, line 8, in readVolume
        return int(value)
        ValueError: invalid literal for int() with base 10: ’84n84n‘

        Weiss jemand von euch wie ich diesen Fehler beheben, bzw ich den USB AUDIO Codec in KY040.py integrieren kann? Oder gibt es einen anderen Weg die zu regelnde Quelle anzugeben?

  6. DenisF am 22. Mai 2017 13:56

    Moin,

    könnte ich mit dem Programmcode auch die Geschwindigkeit eines Motors steuen?

    Antworten
    • Felix am 22. Mai 2017 13:57

      Wenn du einen DC Motor und PWM nutzt, dann ja.

      Antworten
  7. Jens am 2. Dezember 2017 2:11

    Analog geht, aber die USB Soundkarte kann man damit nicht steuern.
    Ich weiß nicht wie, wurde hier ja schon beschrieben.
    Meine USB Soundkarte funktioniert einwandfrei.

    Analog mit der int. Soundkarte macht keinen Sinn. Da kann man sich das Geld für den Drehschalter sparen. Oder hat noch jemand eine Lösung, falls nicht spart euch das Geld.

    Antworten
  8. David am 5. April 2018 23:48

    Hi,
    ich habe alles so gemacht, wie es in dem Tutorial steht, allerdings habe ich damit leider keinen Erfolg.
    Vllt kann mir ja jemand weiter helfen. Vielen Dank!

    Grüße
    P.S.: Ich weiss jetzt nicht welche Angaben noch notwendig sind, von dem her bitte fragen….

    Antworten
    • Felix am 6. April 2018 22:33

      EIn bisschen präizer wäre vorteilhaft… Fehlermeldungen, etc, ..?

      Antworten
      • David am 7. April 2018 13:04

        So sieht die Ausgabe aus:

        pi@CarPi:/var/mail/KY040 $ sudo ./volume_regulator.py

        ./volume_regulator.py: 1: ./volume_regulator.py: import: not found
        ./volume_regulator.py: 3: ./volume_regulator.py: import: not found
        ./volume_regulator.py: 6: ./volume_regulator.py: Syntax error: „(“ unexpected

      • Felix am 10. April 2018 10:45

        Entweder sudo python oder dem Skript einen Python Header geben.

      • David am 8. April 2018 12:40

        Hat sich erledigt. War einfach nur mein blöder Fehler, das Script nicht mir python zu starten….

        Grüße

        P.S.: Vielen Dank für das Tutorial! Sehr leicht verständlich!

  9. Sören am 8. April 2018 11:39

    Hallo Felix,

    vielen Dank für dieses TuT 🙂 Das hat mich erst auf die Idee gebracht, den KY040 zu verwenden!

    Ein Problem habe ich noch, an dem ich seit gestern bastel.
    In der Variable wird ja die aktuelle Lautstärke gespeichert, was bei dem analogen Ausgang des Rai kein Problem ist. Ich nutze jedoch eine USB Soundkarte und dort muss ich in der Variable (oder in zwei?) die Lautstärke je Kanal speichern. dies bekomme ich nicht eingebaut.

    Auslesen und Ausgeben geht ja mit: amixer sget Speaker | grep ‚Right:‘ | awk -F'[][]‘ ‚{ print $2 }‘

    Vielleicht kann mir jemand erklären, wie ich dies je als Variable speichere um es in Deinem Code zu verwenden.???

    Vielen Dank und Grüße
    Sören

    Antworten
  10. Thomas am 1. Mai 2018 21:13

    Hallo!

    Danke für das TuT. Hab es auch mit einer USB Soundkarte zum laufen gebracht. Das Problem hierbei war, dass beim Lautstärke auslesen der linken und rechte Kanal ausgegeben wurde. Hab ich recht einfach gelöst indem ich in Zeile 8 einfach [:-4] in den int Befehl eigegeben habe

    return int(value[:-4])

    Damit kommt jetzt bei der Ausgabe z.B. nur 67
    Vorher war es

    67
    67

    und Pyhton hat damit nichts anfangen können.

    Ein Problem habe ich aber noch. Ich würde gerne, wie im Video zu sehen, mit einem Druck auf den Taster die Lautstärke stumm schalten. Bin noch absoluter Python Anfänger und habe es selbst leider nicht zum laufen gebracht. Wäre nett wenn mir wer helfen könnte.

    Antworten
    • Thomas am 3. Mai 2018 22:40

      Die Lösung ist mit
      return int(value[:-4])
      nicht wirklich optimal.
      Sobald die Lautstärke einzeilig wird gibt Pyhton nur noch Fehler aus.
      Habe aber jetzt eine Lösung gefunden. Beim Auslesen der Lautstärke einfach ein „uniq“ dranhängen. Damit werden Dupletten gelöscht und man hat nur noch z.B. 45 als Ausgabe.
      value = os.popen(„amixer get PCM|grep -o [0-9]*%|sed ’s/%//’|uniq“).read()

      Antworten
  11. PlutoHD am 13. Oktober 2018 12:21

    Bei mir kommt der Fehler

    TypeError: switchPressed() takes no arguments (1 given)

    wenn ich an dem Drehregler drehe. Was kann ich da machen?

    Antworten
    • PlutoHD am 13. Oktober 2018 12:24

      Und das wenn ich drücke

      Simple mixer control ‚PCM‘,0
      Capabilities: pvolume pvolume-joined pswitch pswitch-joined
      Playback channels: Mono
      Limits: Playback -10239 – 400
      Mono: Playback 400 [100%] [4.00dB] [on]

      Antworten
  12. BenG am 25. Oktober 2018 21:38

    Ich denke du hast bei der Verkabelung etwas vertauscht und prüfe mal ob SW wirklich am richtigen Pin hängt. Denn die Meldung „TypeError: switchPressed() takes no arguments (1 given)“ sollte eigentlich kommen wenn man den Button drückt und nicht beim drehen. Und genauso sollte beim drehen die Meldung kommen, die bei dir kommt wenn du drückst. Bei dieser Meldung zeigt die letzte Zeile „Mono: Playback 400 [100%] [4.00dB] [on]“ an, dass die Lautstärke auf 100% eingestellt ist.

    Den TypeError beim Drücken des Buttons hatte ich auch und ich hab in der volume_regulator.py einfach noch ein Argument bei der Funktion switchPressed() ergänzt. Sieht dann so aus (letzte beiden Zeilen der volume_regulator.py):
    def switchPressed(tmp):
    print „button pressed“

    Antworten
  13. Ich am 14. März 2019 15:56

    Hallo und erstmal danke für das tut.

    es tut auch das was es soll, nur bin ich zu dumm den code zu ändern.

    ich habe ein hifiberry amp2 am laufen den anlogen ausgang also der vom pi lässst sich steuern.

    was muss ich denn wo ändern damit die lautsträke auch vom hifiberry sich ändernt ?

    Antworten
  14. dlw am 14. April 2019 16:46

    Den HifiBerry Amp2 zu steuern habe ich leider auch noch nicht hinbekommen und würde mich über Hilfe hier im Forum sehr freuen.

    Antworten
  15. Lucy am 21. April 2019 9:31

    Hallo!
    Würdet ihr auch den rotary Encoder verwenden um zwischen zB vier unterschiedlichen Getränken wählen zu können?
    Wenn ja, wüsstet ihr eine Seite wo ich so einen Code finden könnte. Bin nämlich Python Anfänger.

    Antworten
  16. nico am 1. Januar 2020 20:43

    Hallo

    sehe ich das richtig das im o.g. Script die „mute“ funktion fehlt?
    Zumindest funktioniert es bei mir nicht .
    Es kommt nur die Meldung „button pressed“

    Wie kann ich die Mutefunktion noch aktivieren.

    Danke und Gruß Nico

    Antworten
    • Peter Zimmerly am 6. Januar 2020 22:46

      Haha, das gleiche Problem hatte ich auch. Hab mir so geholfen, sicher eher pfusch, nachdem ich keine Ahnung hab, aber es tut exakt, was es soll:
      def switchPressed(pin):
      volume = readVolume()
      print(„button connected to pin:{} pressed“.format(pin))
      if pin == 13:
      os.system(„sudo amixer set PCM — „+str(min(100,max(0,0)))+“%“)
      print(volume)

      if… bräuchte es eigentlich nicht, aber ist „in die Zukunft gedacht“
      print… hab ich zweimal nur zur Erfolgskontrolle drin, kann man auch weglassen.

      Schöne Grüße

      Antworten
  17. Disco am 5. März 2020 17:20

    Hallo!

    Ich habe die Anleitung aufs -kleinste befolgt und weiß nicht warum, aber sobald ich den Regler drehe, wird die Stromzufuhr unterbrochen und der Pi startet von neuem.
    Was habe ich falsch gemacht?

    Basis meiner Installation ist Raspberry Buster, Phoniebox von Miczflor, GPIO.Buttons und das Ky040-script.

    Danke!

    Antworten
    • Mirko am 19. April 2020 9:30

      Hallo,

      genau das gleiche Problem habe ich auch. Jedoch habe ich auch einen HifiBerry AMP2 dazwischen hängen. Hab die Verkabelung mehrfach geprüft und ist in Ordnung.

      Antworten
      • Mirko am 20. April 2020 7:24

        Habe den Fehler gefunden: War doch die Verdrahtung. Ich hatte nicht aufgepasst und CLK an 3.3V laufen. Habe dann + auf 3.3V und CLK richtig angeschlossen, dann ging es. 😉

  18. Rudi am 5. Juni 2020 17:11

    Hi, ich möchte das in Verbindung mit dem piCorePlayer machen. Leider akzeptiert das Image schon den Befehl „git clone https://github.com/conradstorz/KY040“ nicht.
    Hat jemand eine Lösung, wie das mit dem piCorePlayer klappt?

    Antworten
  19. Revo am 8. Juli 2020 13:27

    Hallo, weißt du wie man einfach nur die Systemlautstärke verändern kann (also ohne das Potentiometer). Also, dass eben im Skript steht, dass das Volumen auf 25 gestellt werden soll, sobald das Skript gestartet wird.

    Antworten
  20. JoeMoe am 26. Juli 2020 1:01

    Hallo, ich versuche das ganze auf dem Raspberrypi4 bekomme aber nur diesen Fehler als output
    „`
    Traceback (most recent call last):
    File „/home/pi/KY040/KY040.py“, line 43, in _clockCallback
    self.rotaryCallback(GPIO.input(self.dataPin))
    File „volume_regulator.py“, line 11, in rotaryChange
    volume = readVolume()
    File „volume_regulator.py“, line 8, in readVolume
    return int(value)
    ValueError: invalid literal for int() with base 10: “
    „`
    Irgendwelche Ideen wie ich hier weiterkommen kann?
    Tausend dank!

    Antworten
    • Luzi am 1. Januar 2021 17:44

      hallo hast du eine Lösung gefunden? Ich habe genau die gleiche Fehlermeldung

      Vielen Dank

      Antworten
    • Micca am 3. März 2021 18:34

      Bei mir das gleiche. Komme hier leider auch nicht mehr weiter…

      Antworten
      • David am 28. Juli 2021 19:22

        Hi.

        Lösung hat Thomas am 03.05.2018 schon geposted.

        value = os.popen(„amixer get Master|grep -o [0-9]*%|sed ’s/%//’|uniq“).read()

        Gruß

  21. Uli am 27. September 2020 17:26
    #
    # original source code from blog.amnuts.com/2017/01/11/rotary-volume-control-for-the-raspberry-pi/
    #
    # Edit by Uli to access inno-maker soundcard 
    # should also apply to Hifiberry
    #
    
    
    from RPi import GPIO
    from time import sleep
    import subprocess
    
    clk = 5
    dt = 6
    btn = 13
    # btn = 26 # original id 
    
    
    #   CLOCKPIN = 5
    #    DATAPIN = 6
    #    SWITCHPIN = 13
    
    
    # vals from output of amixer cget numid=1
    # amixer get -c 3 Master #to see the range of the sound card
    min = 0
    max = 248
    
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(clk, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
    GPIO.setup(dt, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
    GPIO.setup(btn, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    
    isMuted = False
    preVolume = volume = 140  # give it some volume to start with
    clkLastState = GPIO.input(clk)
    btnLastState = GPIO.input(btn)
    
    #subprocess.call(['amixer', '-q', '-c', '0', 'cset', 'numid=1', str(volume)])
    subprocess.call(['amixer', '-q', '-c', '3', 'set', 'Master', str(volume)])
    subprocess.call(['amixer', '-q', '-c', '3', 'set', 'Channels', str(volume)])
    
    
    try:
        while True:
            btnPushed = GPIO.input(btn)
            if ((not btnLastState) and btnPushed):
                if isMuted:
                    volume = preVolume
                    isMuted = False
                   # print ("Unmuted")
                else:
                    preVolume = volume
                    volume = 0
                    isMuted = True
                   # print ("Muted")
                subprocess.call(['amixer', '-q', '-c', '3', 'set', 'Master', str(volume)])
                subprocess.call(['amixer', '-q', '-c', '3', 'set', 'Channels', str(volume)])
                sleep(0.05)
            else:
                clkState = GPIO.input(clk)
                dtState = GPIO.input(dt)
                if clkState != clkLastState:
                    if isMuted:
                        isMuted = False
                        volume = 0
                    if dtState != clkState:
                        volume += 2
                        if volume > max:
                            volume = max
                    else:
                        volume -= 2
                        if volume < min:
                            volume = min
                    #print ("{:d} ({:.0%})".format(volume, float(volume)/float(max)))
                    subprocess.call(['amixer', '-q', '-c', '3', 'set', 'Master', str(volume)])
                    subprocess.call(['amixer', '-q', '-c', '3', 'set', 'Channels', str(volume)])
                clkLastState = clkState
            btnLastState = btnPushed
    finally:
        GPIO.cleanup()
    Antworten
  22. Jannes am 21. November 2020 22:07

    Hallo,
    Danke schon einmal für das tolle Tutorial, leider klappt es bei mir nicht.
    Ich habe den Ordner von Github gezogen und in dem Ordner ein .py File erzeugt (radio_volume.py) , mit dem obenstehenden Quellcode. Wenn ich es ausführen möchte, bekomme ich folgende Fehlermeldeung:

    Traceback (most recent call last):
    File „radio_volume.py“, line 29, in
    ky040 = KY040(CLOCKPIN, DATAPIN, SWITCHPIN, rotaryChange, switchPressed)
    NameError: name ’switchPressed‘ is not defined

    Was habe ich falsch gemacht?

    Danke im Voraus!

    Antworten
  23. Andy am 1. Februar 2023 11:54

    hi
    geht das auch, wenn zusätzlich zum hifiberry noch ein 3.5″ display oben drauf ist?
    pins sind ja so nicht frei

    Antworten
  24. Carsten am 17. März 2024 7:51

    Hallo ich bekomme den Regler einfach nicht zum funktionieren und weiß nicht mehr was ich noch ändern muß.
    ich habe die Klammern bei den Print Kommandos bereits gesetzt, aber das scheint nicht das Problem zu sein.

    pi@rp4:~ $ python3 /home/pi/KY040/volume_regulator.py
    Traceback (most recent call last):
    File „/home/pi/KY040/volume_regulator.py“, line 32, in
    ky040.start()
    File „/home/pi/KY040/KY040.py“, line 34, in start
    GPIO.add_event_detect(self.clockPin, GPIO.FALLING, callback=self._clockCallback, bouncetime=self.DEBOUNCE)
    RuntimeError: Failed to add edge detection
    pi@rp4:~ $

    Kann Mir hier jemand helfen?

    Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Home Assistant: Einfache Integration von ESP32 / ESP8266 mittels ESPHome

Tutorial: Raspberry Pi als WordPress-Server einrichten

Raspberry Pi Daten auf dem Wio Terminal LCD Screen anzeigen

HD44780 LCD Display per I2C mit dem Raspberry Pi ansteuern

8×8 LED Dot Matrix – Zusammenbau und Installation (Raspberry Pi)

Raspberry Pi GPIO Erklärung für Beginner + Programmierung (Teil 2)

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.