{"id":1544,"date":"2024-07-23T08:00:00","date_gmt":"2024-07-23T06:00:00","guid":{"rendered":"https:\/\/www.fuhselab.de\/?p=1544"},"modified":"2025-05-27T13:55:23","modified_gmt":"2025-05-27T11:55:23","slug":"arduino-und-potenziometer","status":"publish","type":"post","link":"https:\/\/www.fuhselab.de\/index.php\/2024\/07\/23\/arduino-und-potenziometer\/","title":{"rendered":"Arduino und Potenziometer"},"content":{"rendered":"\n<p>Letzte Woche ging es um Fader und in diesem Artikel geht es um Arduino und Potenziometer\u2026<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Vorbereitungen:<\/strong><\/p>\n\n\n\n<p>F\u00fcr dieses Projekt werden folgende Bauteile ben\u00f6tigt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.reichelt.de\/experimentier-slide-steckboard-640-200-kontakte-steckboard-s8-p177330.html?CCOUNTRY=445&amp;LANGUAGE=de&amp;trstct=pos_12&amp;nbc=1&amp;&amp;r=1\">Steckboard<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.reichelt.de\/entwicklerboards-kabel-set-verschiedene-laengen-65er-pack--debo-kabelset18-p282690.html?PROVID=2788&amp;gclid=EAIaIQobChMI5Mqvt8jp-wIVUASLCh1ozQTZEAQYAiABEgK1X_D_BwE\">Kabelset f\u00fcr Entwicklerboards<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.reichelt.de\/widerstand-metalloxidschicht-560-ohm-0414-2-w-5--2w-metall-560-p2360.html?CCOUNTRY=445&amp;LANGUAGE=de&amp;trstct=pos_4&amp;nbc=1&amp;&amp;r=1\">560 Ohm Widerst\u00e4nde<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.reichelt.de\/drehimpulsegeber-24-impulse-24-rastungen-vertikal-stec12e07-p73922.html?&amp;trstct=pol_6&amp;nbc=1\">Potenziometer<\/a><\/li>\n<\/ul>\n\n\n\n<p><strong>Schaltungsaufbau:<\/strong><\/p>\n\n\n\n<p>Ein Potenziometer hat drei Kontaktanschl\u00fcsse und wird erst mal auf das Steckboard gesteckt. Der mittlere Kontakt f\u00fchrt zum ersten Analog-In Pin des Arduino und dann f\u00fchrt ein \u00e4u\u00dferer Kontakt an 5 Volt und der andere an Ground des Arduino.<\/p>\n\n\n\n<p>Durch das Potenziometer\/den Poti wird ein analoger Sensorwert als Verz\u00f6gerungszeit benutzt.<\/p>\n\n\n\n<p>Im Beispiel wird das mittlere Bein des Potentiometers im AnalogIn 0 ausgelesen. Der Wert, der zwischen 0 und 1023 liegt, wird als Verz\u00f6gerung (delay) in das Programm eingef\u00fcgt und reguliert so die Blinkgeschwindigkeit der LED.<\/p>\n\n\n\n<p>Auch mit diesem Arduino-Code macht experimentieren Sinn. Statt mit dem ausgelesenen Potiwert nur die Verz\u00f6gerung festzulegen, k\u00f6nnte man ja auch per Potiwert den PWM Analogwert beeinflussen.<\/p>\n\n\n\n<p><strong>Programmierung:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int sensorPin = A0;    \/\/ Arduino-Pin f\u00fcr Potentiometer\nint ledPin = 13;      \/\/ Arduino-Pin f\u00fcr LED\nint sensorValue = 0;  \/\/ Variable zum speichern des Wertes der vom Sensor\/Poti kommt\n\nvoid setup() \n{\npinMode(ledPin, OUTPUT);  \n}\n\nvoid loop() \n{\nsensorValue = analogRead(sensorPin);  \/\/ Wert des Sensors\/Poti lesen  \ndigitalWrite(ledPin, HIGH); \/\/ LED einschalten  \ndelay(sensorValue);   \/\/Verz\u00f6gerung in Millisekunden laut Sensorwert       \ndigitalWrite(ledPin, LOW);   \/\/ LED aus\ndelay(sensorValue); \/\/Verz\u00f6gerung in Millisekunden laut Sensorwert                  \n}<\/code><\/pre>\n\n\n\n<p><strong>Experimente mit dem Potenziometer:<\/strong><\/p>\n\n\n\n<p>Auch mit diesem Arduino-Code macht experimentieren Sinn. Statt mit dem ausgelesenen Potiwert nur die Verz\u00f6gerung festzulegen, k\u00f6nnte man ja auch per Potiwert den PWM Analogwert beeinflussen.<\/p>\n\n\n\n<p>Der Arduino-Code sieht dann modifiziert so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int sensorPin = A0;    \/\/ Arduino-Pin f\u00fcr Potentiometer\nint ledPin = 13;      \/\/ Arduino-Pin f\u00fcr LED\nint sensorValue = 0;  \/\/ Variable zum speichern des Wertes der vom Sensor\/Poti kommt\n\nvoid setup() \n{\npinMode(ledPin, OUTPUT);  \n}\n\nvoid loop() \n{\nsensorValue = analogRead(sensorPin);  \/\/ Wert des Sensors\/Poti lesen  \nanalogWrite(ledPin, sensorValue); \/\/ Sensorwert\/Potiwert bestimmt PWM Analogwert \ndelay(1000);          \ndigitalWrite(ledPin, LOW);   \/\/ LED aus\ndelay(1000);                   \n}<\/code><\/pre>\n\n\n\n<p>Der Poti beeinflusst hier also die Helligkeit der LED per PWM. Wenn man mag, kann man es sich jetzt auch richtig kompliziert machen und jeder einzelnen Poti-Position (und deren Analogwert) einem analogem Ausgabewert zuordnen.<\/p>\n\n\n\n<p>Die Idee w\u00e4re also die, den Poti zu nutzen um die Werte f\u00fcr den Fader (zweites Fader-Projekt) einzustellen.<\/p>\n\n\n\n<p>Der Fader (Analog Out) schreibt ja per &#8222;analogWrite&#8220; Werte von 0 bis 255 an den Arduino-Pin.<\/p>\n\n\n\n<p>Im zweiten Fader-Projekt wird zuerst der Wert &#8222;50&#8220; an die LED\/ den LED-Pin geschrieben.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wert 1 = 50<\/li>\n\n\n\n<li>Wert 2 = 100<\/li>\n\n\n\n<li>Wert 3 = 200<\/li>\n\n\n\n<li>Wert 4 = 255<\/li>\n<\/ul>\n\n\n\n<p>Im zweiten Fader Projekt stehen diese Werte aber fest im Arduino-Code. Hier ist jetzt die Idee diese Werte abh\u00e4ngig vom Poti zu ver\u00e4ndern.<\/p>\n\n\n\n<p>Schauen wir uns die loop nochmal genauer an:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void loop() \n{\nsensorValue = analogRead(sensorPin);  \/\/ Wert des Sensors\/Poti lesen  \nanalogWrite(ledPin, sensorValue); \/\/ Sensorwert\/Potiwert bestimmt PWM Analogwert \ndelay(1000);          \ndigitalWrite(ledPin, LOW);   \/\/ LED aus\ndelay(1000);                   \n}<\/code><\/pre>\n\n\n\n<p>Per &#8222;sensorValue&#8220; wird der Sensorpin, der hier der Potipin ist, gelesen. Die Werte die hier gelesen werden k\u00f6nnen sind Werte zwischen 0 und 1023.<\/p>\n\n\n\n<p>Per &#8222;analogWrite&#8220; wird jetzt der Potiwert an den LED-Pin geschickt. Da &#8222;analogWrite&#8220; aber nur Werte von 0 bis 255 erm\u00f6glicht, gibt es eventuell ein kleines Problem.<\/p>\n\n\n\n<p>Was passiert wenn der Poti einen Wert \u00fcber 255 &#8222;sendet&#8220;?<\/p>\n\n\n\n<p>Das &#8222;delay&#8220; ist auf 1000 Millisekunden eingestellt.<\/p>\n\n\n\n<p>Per &#8222;digitalWrite&#8220; wird die LED auf Low gesetzt.<\/p>\n\n\n\n<p>Die Mischung von analogWrite und digitalWrite ist ein weiteres Highlight dieses Arduino-Codes.<\/p>\n\n\n\n<p>Interessant an diesem Projekt bleibt f\u00fcr mich die Frage wie die &#8222;\u00dcbersetzung&#8220; zwischen analogRead und analogWrite realisiert wird.<\/p>\n\n\n\n<p>Aus meiner Sicht gibt es mindestens zwei verschiedene M\u00f6glichkeiten:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Potiwert 0-255 werden direkt so weitergegeben und alles dar\u00fcber ist auch gleich 255<\/li>\n\n\n\n<li>Potiwert 1023 entspricht analogWrite-Wert 255<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Letzte Woche ging es um Fader und in diesem Artikel geht es um Arduino und Potenziometer\u2026<\/p>\n","protected":false},"author":1,"featured_media":48,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[22],"class_list":["post-1544","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","tag-arduino-gruppe-peine"],"_links":{"self":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/comments?post=1544"}],"version-history":[{"count":2,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1544\/revisions"}],"predecessor-version":[{"id":2814,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1544\/revisions\/2814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media\/48"}],"wp:attachment":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media?parent=1544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/categories?post=1544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/tags?post=1544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}