{"id":507,"date":"2018-06-28T21:22:56","date_gmt":"2018-06-28T21:22:56","guid":{"rendered":"https:\/\/www.wpvs.de\/iot-2018\/?p=507"},"modified":"2021-05-14T10:07:03","modified_gmt":"2021-05-14T08:07:03","slug":"fahrtenbuch-6-rgb-led-und-speaker","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2018\/projekt-fahrtenbuch\/fahrtenbuch-6-rgb-led-und-speaker\/","title":{"rendered":"Fahrtenbuch (6): RGB-LED und Buzzer"},"content":{"rendered":"<p>Mithilfe einer RGB-LED und einem Buzzer soll der aktuelle Status des Systems dargestellt werden. Die RGB-LED soll rot leuchten, bis ein RFID-Chip registriert wird. Die Registrierung des RFID-Chips wird anschlie\u00dfend mit einem Ton best\u00e4tigt und die RGB-LED schaltet von rot auf blau. Sobald ein GPS-Signal erkannt wird und der RFID-Chip registriert ist, soll die RGB-LED auf gr\u00fcn umschalten. Befindet sich der Raspi im Daten\u00fcbertragungsmodus zum Webserver (\u00dcbermittlung der Wegpunkte) soll die RGB-LED gr\u00fcn blinken.<\/p>\n<p>Zu Testzwecken wird die,s wie bei den anderen Modulen, zun\u00e4chst losgel\u00f6st vom restlichen Programmcode getestet. Der Test wurde unter Verwendung des Betriebssystems Raspbian Stretch Lite durchgef\u00fchrt.<\/p>\n<p>Die nachfolgende Abbildung enth\u00e4lt den Schaltplan f\u00fcr den Versuchsaufbau:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-508\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/LED-und-Speaker-300x240.png\" alt=\"\" width=\"369\" height=\"295\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/LED-und-Speaker-300x240.png 300w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/LED-und-Speaker-1024x819.png 1024w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/LED-und-Speaker-768x614.png 768w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/LED-und-Speaker-1536x1229.png 1536w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/LED-und-Speaker-1568x1254.png 1568w, https:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/06\/LED-und-Speaker.png 1755w\" sizes=\"(max-width: 369px) 100vw, 369px\" \/><\/p>\n<p>Wie aus dem Schaltplan entnommen werden kann, wird eine RGB-LED mit drei Anoden und einer Kathode verwendet. Den Anoden werden Widerst\u00e4nde vorgeschalten, um die RGB-LED vor \u00dcberhitzung zu sch\u00fctzen. Da die RGB-LED ohne ein Datenblatt ausgeliefert wurde, konnten die notwendigen Werte f\u00fcr die Widerst\u00e4nde nicht genau bestimmt. Sicherheitshalber werden deshalb 220 Ohm Widerst\u00e4nde verwendet.<\/p>\n<p>Der folgende Programmcode zeigt die Ansteuerung der RGB-LED und des Buzzers:<\/p>\n<hr \/>\n<pre>import RPi.GPIO as GPIO\nimport time\n\nGPIO.setwarnings(False)\n\npins = {'pin_R':11, 'pin_G':12, 'pin_B':13} # Belegung der Pins\n\nGPIO.setmode(GPIO.BOARD) #Verwendung des Raspi GPIO-Boardschema (physikalische Pin-Belegung)\n\nfor i in pins: # Alle Pins vorbereiten\n    GPIO.setup(pins[i], GPIO.OUT) # Pin-Modus: ausgehend\n    GPIO.output(pins[i], GPIO.HIGH) # Pin-Output: +3.3V\n\np_R = GPIO.PWM(pins['pin_R'], 9999) # Pulsweiten-Modulation wird f\u00fcr das Blinken der RGB-LED ben\u00f6tigt, zun\u00e4chst\np_G = GPIO.PWM(pins['pin_G'], 9999) # sollen die Farben aber durchg\u00e4ngig leuchten, weshalb die Frequenz auf 9999\np_B = GPIO.PWM(pins['pin_B'], 9999) # gesetzt wird\n\ndef startLED(red, green, blue): # Funktion zum Setzen der Werte, \u00dcbergabe von numerischen Werten zwischen 0 und 1\np_R.start(red)\np_G.start(green)\np_B.start(blue)\n\ntry:\n    startLED(1,0,0) # RGB-LED leuchtet rot\n    time.sleep(5)\n    startLED(0,1,0) # RGB-LED leuchtet gr\u00fcn\n    time.sleep(5)\n    startLED(0,0,1) # RGB-LED leuchtet blau\n    time.sleep(5)\n\n    p_G.ChangeFrequency(3) # \u00c4nderung der Frequenz von 9999 auf 3 und erm\u00f6gliche so das Blinken der RGB-LED\n    startLED(0,1,0) # RGB-LED blinkt gr\u00fcn\n    time.sleep(5)\n\n    # Buzzer ansteuern\n    GPIO.setup(37, GPIO.OUT) # Pin 37 als Ausgang definieren\n    GPIO.output(37, 1) # Ausgang auf High setzen und damit Ton ausl\u00f6sen\n    time.sleep(0.3) # Kurze Zeit warten, Ton halten\n    GPIO.output(37, 0) # Ausgang auf Low setzen und Ton ausschalten\n\nexcept KeyboardInterrupt: # Druecke CTRL+C zum Abbrechen\n    print(\"Keyboard interrupt\")\n\nexcept: # Fehlerbehandlung\n\u00a0\u00a0  print(\"Error\")\n\nfinally:\n\u00a0\u00a0\u00a0 print(\"Clean up\")\n\u00a0\u00a0\u00a0 GPIO.cleanup()<\/pre>\n<hr \/>\n<p>Alle gew\u00fcnschten Funktionen zur Darstellung des aktuellen Status konnten mit diesem Programmcode erfolgreich getestet werden. Die verwendete RGB-LED erwies sich als nicht besonders leuchtstark, weshalb ein bereits vorkonfektioniertes RGB-LED-Modul erworben wurde.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mithilfe einer RGB-LED und einem Buzzer soll der aktuelle Status des Systems dargestellt werden. Die RGB-LED soll rot leuchten, bis ein RFID-Chip registriert wird. Die Registrierung des RFID-Chips wird anschlie\u00dfend mit einem Ton best\u00e4tigt und die RGB-LED schaltet von rot<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/507"}],"collection":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/comments?post=507"}],"version-history":[{"count":1,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/507\/revisions"}],"predecessor-version":[{"id":630,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/507\/revisions\/630"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/media?parent=507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/categories?post=507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/tags?post=507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}