Posts mit dem Label LED werden angezeigt. Alle Posts anzeigen
Posts mit dem Label LED werden angezeigt. Alle Posts anzeigen

Montag, 8. August 2016

Ein paar Tricks für den Raspberry

Onboard LEDs

Jeder Raspberry, also egal welcher Typ hat mindestens zwei LEDs eine rote für Power und ein grüne für Aktivität.
Die Grüne ist per Software ansteuerbar, man könnte damit Signale an die Außenwelt geben.
Die folgende Information ist von hier übernommen:

Die Steuerung übernehmen
echo none >/sys/class/leds/led0/trigger


Die Steuerung wieder Original setzen
echo mmc0 >/sys/class/leds/led0/trigger

Die LED steuern
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness

Oder die LED über Python steuern
#!/usr/bin/python

import RPi.GPIO as GPIO
from time import sleep

# Needs to be BCM. GPIO.BOARD lets you address GPIO ports by periperal
# connector pin number, and the LED GPIO isn't on the connector
GPIO.setmode(GPIO.BCM)

# set up GPIO output channel
GPIO.setup(16, GPIO.OUT)

# On
GPIO.output(16, GPIO.LOW)

# Wait a bit
sleep(10)

# Off
GPIO.output(16, GPIO.HIGH)

Eingänge mit Pull UP oder Pull Down Widerstand beschalten

Will man mit einfachen Tastern etwas eingeben, muss der Eingang zunächst einen definierten Zustand haben. Entweder einen Widerstand nach Plus - PullUp oder einen nach Masse - PullDown.
Sicher ist sicher wenn man eine externen Widerstand verwendet, aber die Himbeere hat auch schon welche eingebaut. Diese 50 kOhm Widerstände kann man aktivieren.

Mit dem GPIO Tool

Mit verschiedenen Sprachen

Nur mit der Shell geht es offenbar nicht.

Mit Python (Quelle)

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
if(GPIO.input(23) ==1):
print(“Button 1 pressed”)
if(GPIO.input(24) == 0):
print(“Button 2 pressed”)
GPIO.cleanup()

Anwendungsbeispiel

Mit einem Taster den Raspberry starten bzw. herunterfahren, quasi ein Soft Power Switch.
Zwischen Pin 5 (GPIO3) und Pin 9 oder Pin 6 (Masse) des GPIO Connectors schalten wir einen kleinen Taster. Oder wir verwenden nur einen Jumper (Pin 5 - 6) falls nichst weiter am GPIO Connector steckt.
Wird Pin 5 bei herunter gefahrenem Pi (sudo halt) kurz!!! auf Masse gelegt, startet der Pi ohne die Stromversorgung unterbrechen zu müssen.
ToDo Schaltbild

Das Geniale dabei ist: Den gleichen Taster kann man verwenden um den Pi genau in diesen Aus (Halt) Zustand zu bringen.
ToDo Programm beim Systemstart zum konfigurieren des Eingangs mit PullUp und Abfrage und Einbindung in den Systemstart.
Zunächst also mal die Abfrage der Taste und den Pi herunterfahren.
Diese Python Script zum Herunterfahren habe ich von hier.
#! /usr/bin/env python
import os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
# GPIO3 (pin 5) set up as input. It is pulled up to stop false signals
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
    while True:
        # wait for the pin to be sorted with GND and, if so, halt the system
        GPIO.wait_for_edge(3, GPIO.FALLING)
        # shut down the rpi
        os.system("/sbin/shutdown -h now")
except:
    GPIO.cleanup()

Um eine Quittung zu bekommen, dass der shutdown Prozess eingeleitet wurde lassen wir die grüne LED zweimal blinken.
ToDo Programm um die grüne LED umzukonfigurieren und blinken zu lassen
http://www.forum-raspberrypi.de/Thread-python-aufruf-von-shell-script-in-python
http://www.python-kurs.eu/os_modul_shell.php

Mittwoch, 21. Januar 2015

Schaltaktor für Kleinspannnung

Ich habe eine LED Beleuchtung versuchsweise von einer Schaltsteckdose HM-LC-SW1-PL auf einen Niederspannnungsschaltaktor HM-LC-SW1-BA-PCB umgestellt. Die Ergebnisse möchte ich gerne vorstellen.


Der Schaltaktor braucht eine Versorgungsspannung zwischen 5-15 Volt und kann Verbraucher bis 20 Volt und 3 Ampere schalten. Die Masse zwischen Versorgung und Verbraucher ist verbunden. Für 12 Volt LED Stripes kann man idealerweise Versorgung des Moduls mit dem Verbraucher koppeln.


Ein kurzer Test mit einer kleinen LED Leselampe brachte interessante Ergebnisse:


Eingangsspannung Leselampe
9,62 V
Spannungsabfall über Mosfetschalter
25 mV
Leistungsaufnahme 12 Volt Netzteil bei Last
6,36 Watt
Leistungsaufnahme 12 Volt Netzteil bei Leerlauf
0,15 Watt
Leistungsaufnahme SchaltSteckdose bei “aus”
0,57 Watt
Leistungsaufnahme SchaltSteckdose bei “ein” ohne Last
0,57 Watt


Die Schaltung der LED Beleuchtung ändert sich grundlegend, bisher wurde das 12 Volt Netzteil primär geschaltet, für die Standby Leistung war die Steckdose verantwortlich. Jetzt ist das 12 Volt Netzteil immer angesteckt und ist für die Standby Leistung verantwortlich, der LED Streifen wird ja sekundär auf der Niederspannungsseite geschaltet.


Sehr interessant: Die Standbyleistung der Steckdose ist 3 mal höher als der Standby Verbrauch des LED Netzteils. Wer also meint die LED Lampe hat keinen richtigen Ausschalter, man müsse hier was ändern - sollte da noch mal drüber nachdenken.


Der Test überzeugt auf der ganzen Linie, also wird sofort richtig umgebaut und ein zweiter Schalter bestellt :-)
Die Taste auf der Platine dient zum Anlernen und als Toggle. Die LED ist einfarbig und leuchtet nur beim Anlernen, im Normalbetrieb wird Strom gespart. Spielt zwar hier keine Rolle, aber es ist ja ein Batterie Aktor.


Anlernen an der FHEM
Den HM-LC-SW1-BA-PCB mit dem Netzteil verbinden.


set HMLAN1 hmPairForSec


Taster am HM-LC-SW1-BA-PCB > 4 sec drücken bis die rote LED blinkt.
Das Anlernen klappt sofort, nach wenigen Sekunden ist die Definition in FHEM komplett


Die bisherige Steckdose umbenennen


rename LichtKuR SD4


Dem neuen Schaltaktor den gewohnten Namen geben


rename <HM-LC-SW1-BA-PCB> LichtKuR


Damit funktionieren alle Routinen in FHEM wieder wie gewohnt.


Jetzt noch die Fernbedienung neu peeren damit es auch mal ohne FHEM klappt.
Den neuen Aktor bekannt machen, toggle Funktion der Taste 8 auf der FB12 festlegen.


set FB12_Btn_08 peerChan 0 LichtKuR single set


Nach dem kurzen Drücken der Anlerntaste der Fernbedienung schaltet die Taste den neuen Aktor und die bisherige Steckdose. Am Aktor muss nichts gedrückt werden. Jetzt noch den bisherigen Aktor rausnehmen, die Steckdose wird ja in Zukunft anderweitig eingesetzt.


set FB12_Btn_08 peerChan 0 SD4 single unset


Wieder Anlerntaste auf der Fernbedienung drücken und fertig. Die Steckdose muss lediglich am Strom sein! Es braucht keine Taste gedrückt werden. Hätte man auch in einem Vorgang machen können.


  • Der Schaltaktor(~17-23€) ist preiswerter als eine Steckdose (~40€)
  • Energieeinsparung Standby 30 % (0,35 Watt, 19 h /Tag --> 2,4 kWh / ca. 50 cent pro Jahr )
  • Kein Schaltgeräusch, bei der Steckdose klickt ein Relais, der Mosfet macht es lautlos.


Ich finde der HM-LC-SW1-BA-PCB bestens geeignet für LED Beleuchtung.

Ich habe mittlerweile den zweiten Aktor eingebaut, und habe dazu noch ein paar Ergänzungen:

set HMLAN1 hmPairSerial xxxxx

geht bei diesem Aktor irgendwie nicht, keine Ahnung warum. Also darf man den nicht "unerreichbar" einbauen.
Ich habe also jetzt zwei Schaltsteckdosen "recycled", da liegt die eigentliche Einsparung. Meine Bemerkung oben zur Energieeinsparung sind mehr als Scherz zu sehen. Das lautlose Schalten ist durchaus angenehm, obwohl das klacken der Steckdosen nie gestört hat. Insgesamt sind weniger Bauteile verbaut und es hängt weniger am 230 Volt Netz. Es gibt keinen mechanisch bewegten Schalter (Relais) mehr. Damit ist Zuverlässigkeit wahrscheinlich etwas besser.

Ich wollte noch darauf hinweisen, dass das Netzteil kurzschlussfest sein sollte, sonst müsste man das ganze noch absichern.

Hier noch ein paar Bilder zum Gehäuse:

Da alles oben auf dem Schrank liegt, habe ich eine einfache 74 mm Aufputz Verteilerdose genommen.

Wer es schöner braucht, kann einen Lampen Baldachin nehmen, z.B. dieser hier,
30 x 70 mm. Er kann auch flacher sein, dann entfernt man die Antennenstützen und legt die Drahtantenne mit möglichst viel Abstand zur Platine an den Gehäuserand.