Lichtsteuerung vorstellung

  • So ich bins mal wieder nach langer inaktivität und auch gleich mal mit einem Problem. Nach einer halben ewigkeit konnte ich endlich meine Steuerbox für meine Beleuchtung in meinem Zimmer fertigstellen. Abgesehen davon, dass ich die Ausgänge Ein- und Ausschalten kann und Hardware PWM funktioniert, funktioniert noch gar nichts.


    Mein urprüchglicher Plan war, dass sich die Leds (Ausgänge) beim Einschalten langsam hochdimmen und beim Ausschalten langsam herunterdimmen (per Software PWM min. 8 Kanäle). Das krige ich einfach nicht hin. Mangels passenden Beispielen im Internet auch sehr schwer nur durch ausprobieren herauszufinden. Dauernd den Atmel umzuflashen um danach feststellen zu müssen das es doch nicht funktioniert.
    Wäre also schön wenn mir einer mal erklären könnte, wie man Software PWM hinbekommt.


    Ebenso kriege ich es nciht hin, dass sich die Powerleuchte bei irgendeinem eingeschalteten Verbraucher Grün wird und wenn kein Verbraucher eingeschaltet ist, wieder Rot wird. In meinem Video habe ich das zur Demonstration mal nur per Taster manuell gemacht (Außer das auf den Powerknop drücken. Das habe ich schon so eingestellt, dass alle Verbraucher ausgehen und der Powerknopf rot wird)


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Hier mal mein Vorläufiger Code: (Ich weiß nichts ist optimiert aber das solls auch nicht. So verstehe ich den Code besser)



    So für das nachfolgende brauch ich keine Lösung, da das nicht so dringend ist und auch absolute Spielerei ;). Aber ein Gedanken, wie man das Realisieren könnte:


    Also ich habe ja die USB Buchse beleuchtet. Die Buchse soll später mal als Ladebuchse für USB Geräte genutzt werden (per USB Kabelpeitsche mit verschiedenen USB Steckern dran) Dann muss ich nicht immer die ganzen unterschiedlichen Ladegeräte herauskramen.
    Jetzt wäre es schick, wenn ein USB Gerät dran steckt und Strom zieht die Buchse heller leuchtet als normal.


    Mein Lösungsansatz:
    2 Ausgänge am µC. Der eine für dunkel (großer Widerstand vor den Leds) und der andere für hell (kleiner Widerstand).


    Jetzt müsste ich nur noch mit dem µC Strom messen können, wann Strom von der USB Buchse gezogen wird. Ich habe schon erfolgreich mit einem Atmega 8 µC Spannung messen können mit dem integriegrten ADC aber wie kann ich damit Strom messen ?(.
    Ich verweiß mal auf meine Website wo das Projekt gerade steht: http://heringshome.de/selbstge…teuerung/123.html?start=1

  • Ich hab mir deinen Code nun garnicht gross angesehen, aber eine simple Variante für Software-PWM habe ich bei meiner Wolke verwendet. War mein erstes AVR-Projekt...


    http://projekte.dgoersch.info/avr/wolke#firmware


    Schaus dir mal an, ist eigentlich relativ einfach. Bei Unklarheiten frag einfach. Angemerkt sei noch, dass ich das heute anders machen würde - zum Einen in C statt Bascom, zum Anderen mit einer Tabelle für die PWM-Werte, weil es so doch sehr unlinear ist.

  • Also das habe ich durch die Suche auch gefunden. Leider werde ich nicht so recht schlau daraus. Wenn ich den Code einfach kopieren würde, dann würde das ganze ja auf und abblinken. Nicht bei Tastendruck hochdimmen und dann bei erneutem Tastendruck herunterdimmen. Wie ich den Code dann anpassen muss weiß ich ebenfalls nicht. Weil ein "toggle port so und so" funktoniert da garantiert nicht. Gibt es keinen der so etwas ähnliches schon gemacht hat und seinen Code als Beispiel zur Verfügung stellen kann. Bitte mit Erklärung damit ich auch das Prinzip dahinter verstehe und nicht nur Copy und Paste mache und zum Schluss läuft es eventuell aber ich habe keine Ahnung warum es nun läuft :D

  • Ich meine mich dunkel zu erinnern, dass mal ein User hier aus dem Forum eine kleine PDF-Datei zu SW-PWM eingestellt hat. Da werden auch die unterschiedlichen Varianten vorgestellt und mit Oszi verglichen. Ich wage die Behauptung, dass es stromflo war, aber ich werd die Datei auch noch suchen und dann hier als Edit vom Beitrag einstellen.


    EDIT 20.12.2010 - 17:19 : Sodele, ich hab den Beitrag gefunden: 3 Kanal Dimmer mit Tiny13 Du kannst aber auch den ganze Thread lesen. ;)

    Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
    Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum. :D

    Einmal editiert, zuletzt von Lochraster ()

  • Herzliches Dankeschön. Werd das ganze die nächsten Tage mal durchprobieren. Wenns klappt oder auch nicht wird selbstverständlich berichtet.


    Mal zu dem anderen Problem, dass ich es einfach nicht gebacken kriege, wenn irgendetwas an ist, die Powerleuchte Grün wird und wenn alle Verbraucher aus sind die Powerleuchte entsprechend rot.


    So in der Art

    Code
    If any Led Port = 1 
    Then Ledrot = 0
            Ledgrün = 1
    Else Ledrot = 1
        	Ledgrün = 0


    Tja wenns so einfach wäre.


    Man sieht ich bin in Bascom nicht sehr bewandert :S

  • Ich würds mathematisch lösen: Du nimmst eine Variable "Status" immer wenn du etwas einschaltest, erhöhst du sie um 1, wenn du etwas ausschaltest verringerst du sie um eins. Ist die Variable 0, ist alles aus, ist sie größer Null, ist irgendwas noch an.


    EDIT: Alternativ alle möglichen Ports die an sein könnten per logischem ODER verknüpfen:


    Code
    If Foo = 1 OR Bar = 1 ... Then
      Powerled = 1
    Else
      Powerled = 0
    End if


    Keine Ahnung obs korrekter Syntax ist, war nur so aus dem Kopf geschrieben.

  • das mit der mathematischen Funkitn klingt für mich plausibel. Nur wie stelle ich den Status dann ein bei den einzelnen Tastern bzw. Leds? Also


    Code
    If taster1 = 1 then
     toggle led1 
    status + 1 'Variable ?


    Das mit der ODER Funktion habe ich schon probiert. Da spukt Bascom immer ein Error aus. Das funktioniert so nicht.

  • wenn noch platz im controller ist einfach die ODER- verknüpfung aller ausgänge. du hast bei deinem code die zeilenumbrücke falsch gesetzt und das ende der if-schleife fehlt! richtig wäre dein code folgendermaßen:


    Code
    If out1=1 or out2=1 or 0ut3=1 or ... Then
    Ledrot = 0
    Ledgrün = 1
    Else
    Ledrot = 1
    Ledgrün = 0
    end if
  • So das mit der ODER-Verknüpfung hat jetzt doch funktioniert. :led: Danke euch. Jetzt geht es richtig. Zwar habe ich Software PWM nicht so hinbekommen, wie ich es möchte, aber das ist jetzt nicht so schlimm. Kann ja noch darauf verzichten, dass die Leds beim Einschalten hochdimmen und beim ausschalten abdimmen.


    [Blockierte Grafik: http://www.heringshome.de/images/steuerbox/version2/IMG_2356.jpg]


    Was die Box jetzt noch zusätzlich bekommen hat ist ein Display, welches auch vom AVR angesteuert wird. Zurzeit Steuert das ein Attiny 2313 aber das soll ja auch nur als Versuch dienen. Wenn dann noch weitere Funktionen hinzukommen sollte ich einen Atmega 16 oder etwas mit ähnlich vielen Pins integrieren. Dann läuft alles über einen AVR. Das Display zeigt aber zurzeit nicht viel an. Nur "Standby" wenn das Gerät aus ist und "Betrieb" wenn irgendein Ausgang auf Ein geschalten ist.
    Eigentlich will ich auf dem Display den momentanen Verbrauch anzeigen, welchen die Leds ziehen. Habe mir das Pollin AVR Addon Board geholt und ein wenig experimentiert. Spannung messen und übers Display ausgeben ist kein Problem. Damit ich aber den Verbrauch anzeigen kann, benötige ich noch den Strom, welchen die Leds ziehen. Weis da jemand wie man -Verlustlos- Strom mit einem AVR Messen kann? bis 5 A würde mir reichen.

  • verlustlos ist nicht möglich! entweder mit einem shunt (spannungsfall) in der gemeinsamen zuleitung (vmtl. ground) oder aber per stromwandler (hersteller beispielsweise LEM) aber die brauchen auch eine versorgungsspannung, die erstmal erzeugt werden muss und verbrauchen daher auch logischerweise selbst dauerhaft energie. ich würde dir einen kleinen shunt empfehlen. weiss jetzt nicht, wieviel strom bei dir insgesamt fließt, aber wenn du die interne referenz nutzt und beispielsweise 0,1volt am shunt okay sind hast du immer noch 40 schritte auszuwerten. soll heissen, wenn maximal insgesamt 4A fließen und dein shunt darauf bemessen ist kannst du etwa auf 100mA "genau" auswerten.

  • Weist du, was für einen Stromwandler?

    Da muss ich in dem Fall leider passen. Habe mich bisher nur für Stromwandler für 230/400V interessiert. Aus der Kategorie habe ich hier Samples von Coilcraft liegen und LEM hat da auch einiges. Ich meine Allegro hat da recht vie lAuswahl. Aber so arg könnten die Verluste über einen entsprechend kleinen Shunt eigentlich nicht sein, denke ich.

  • Für Kleinspannung (bis 40/60V) eignet sich der ZXCT1080 bzw. andere aus der Familie. Der ist relativ problemlos einzusetzen. man muss nur schauen, dass man im Arbeitsbereich bleibt (50-150mV am Shunt). Ich verwende den in einem Projekt bereits. Probleme gibt es natürlich, wenn der Strom zu hoch wird und damit der Arbeitsbereich verlassen wird. Bei mehr als 800mV verabschiedet sich der Chip, was z.B. bei einem Kurzschluss passieren kann.

  • Allegromicro ist schon einer der bedeutenden Hersteller in diesem Bereich, auch was berührungslose Strommessung betrifft. Ich hatte mir auch Muster von einem der ICHs bestellt, das Ganze aber wegen viel zu aufwendigem Design verworfen. Man kann sich ja mal die AN zum ACS712 ansehen. Da gibt es eine detaillierte Beschreibung zum Design. Das ist mir zu hoch. Und diskret aufbauen (bzw. mit OPV) wollte ich nicht, deshalb der Zetex.

  • Ist da soetwas nicht dafür geeignet?

    theoretisch ja, praktisch aber nicht mehr erhältlich für neukunden. neues produkt -> http://www.allegromicro.com/en…rt_Numbers/0756/index.asp
    ansonsten schau doch auch mal hier rein: https://www.distrelec.de/stromsensoren/stromsensoren


    trotzdem wenns um impulslasten und vielleicht sogar nur 1-2A geht ist die methode mit shunt wohl weniger verlustbehaftet und auch ausreichend von der auflösung.

  • Weil Du gerade sagst Impulslasten: das Problem ist ja, dass LEDs (wo ich die Strommessung verwende) per PWM gesteuert werden. Damit hat man auch eine schöne PWM am ADC-Port anliegen und muss sich daraus eine Spannung berechnen. Dafür braucht man dann auch ein wenig Rechenzeit, denn bei einer PWM-Frequenz von 250Hz sollte man für eine bessere Genauigkeit wenigstens 2 Perioden lang messen.


    Passt das eigentlich noch zum Thema hier?