Wie man mit 2 Tasten von 0 auf 100 kommt ?
Na 100 mal drücken ! Das ist aber total dämlich, daher.... bei jedem Druck die Lautstärke um 10 erhöhen / Vermindern ! Oder was meinst wie das bei Stereoanlagen, Mobiltelefonen und sonst was funktioniert 😛 Eine Schrittweite von 1 ist doch eh völlig unpraktisch... du hörst sowieso keinen Unterschied !
Mir ist schon klar dass dein Bastelprojekt jetzt so umgesetzt werden soll, aber dennoch bleibt es wegen der AD-Wandlung eine „lahme Krücke“. Wenns unbedingt ein rundes Bedienelement sein soll, nimm einen 12 Stufigen Drehschalter und opfer 10 GPIO Inputs (falls vorhanden) oder eben die Tasten. Das Einlesen der Digitalzustände am GPIO geht viel schneller als der Umweg über AD-Wander/I2C-Bus.
An meinem RaspberryPi hängen 5 Tasten, ein Lüfter, 3 LED und ein 176x132 Grafikdisplay. Zusätzlich wird noch die Festplatte geprüft ob dort spezielle Dateien liegen. Das Ding dient als Netzwerkbedienbarer TV-Recorder. Solange nix aufgenommen wird, ist das Ding grad mal zu 2% ausgelastet. Du hingegen lastet dein Gerät mit grad mal einem Poti schon fast zur Hälfte aus !
Aber gut... wenn man sich was in den Kopf gesetzt hat 😉
Zum Recourcen sparen:
In deiner While-loop (Bash-Script) nach dem Lesen via geti2c ein usleep 250000 einfügen.
Damit wird nur alle 250ms der Wert eingelesen und der Rest ist für's Betriebssystem. Das sollte den Resourcenverbrauch schon mal senken. Allerdings reagiert deine Software dann auch nicht sofort wenn du den Regler drehst, sondern es kann 0,25 Sek dauern. Aber so oft wirst du die Lautstärke ja ned ändern.
Daß dein Phyton-Code schneller ist kann daran liegen daß der I2C Bus mit einer anderen Routine gelesen wird.
Der Alsamixer wird dort nur bedient, wenn der eingelesene Wert anders als der vorher eingelesene ist, aber ich denke das Nadelöhr ist NICHT das setzten des Mixers, sondern einfach das Lesen vom Chip.
Das Modul würde ich nicht an 5V anschließen, denn die GPIOs am PI vertragen nur 3,3 Volt Eingangsspannung. Bei einer Versorgungsspannung von 5 Volt am Modul liegt dann an den Ausgängen des Moduls auch 0-5 Volt an, und dein PI wird das nicht mögen !