Noch ein Weihnachtsbaum

OP #4839270
Lesenswert?

Hallo,

nach dem wir beschlossen haben dieses Jahr einen Weihnachtsbaum
aus Holz in das Wohnzimmer zu stellen hatte ich ein Projekt.

LED-Stripe ist mit APA102 bestückt.
Es sind vier Effekte einstellbar.
CandelLight, Wave, Rainbow und Snow
Diese Effekte kann man einzeln anwählen oder
Automatisch abspielen lassen.
Über drei Poties kann man den HSV Farbraum einstellen.

MC ist ein AVR ATmega328PB. (IDE AtmelStudio7)
Auf der Platine ist noch ein USB-UART Wandler für FW Updates.

Gruß Thomas

PS: Das ist mein erstes Projekt dass ich in C umgesetzt habe.
    Bis jetzt hatte ich nur in Assembler programmiert.
Angehängte Dateien:
Gast #4839375
Lesenswert?

Aber mal im (Halb-)Ernst: Einen Effekt 'Nordlicht' hätte ich noch 
verstanden, oder 'Rudolph', ein wandernder kräftig-roter Punkt für 
unsere amerikanischen Gäste. Aber 'Welle'? 'Regenbogen'? An einem 
Weihnachtsbaum? Nein danke.
OP #4839384
Lesenswert?

S. Landolt schrieb:
> Aber mal im (Halb-)Ernst: Einen Effekt 'Nordlicht' hätte ich noch
> verstanden, oder 'Rudolph', ein wandernder kräftig-roter Punkt für
> unsere amerikanischen Gäste. Aber 'Welle'? 'Regenbogen'? An einem
> Weihnachtsbaum? Nein danke.

Kann man ja abwählen wenn es den Geschmack nicht trifft.

typedef enum tagEffects {
  CandelLight,
  Snow,
  Wave,
->  //Rainbow,
  All,
  None,
} Effects_T, *pEffects_T;
#4839431
Lesenswert?

Program Weihnachtsessen;

uses Messer, Gabel;

var Rotkraut, Entenbraten :Real;
const Kloß = 5;

Begin
     CLRSCR;
     For Kloß := 1 to 5: Do
       Begin
            Writeln ('MAMPF!');
       End;
     Writeln ('SATT bis OBENHIN');
End.

------------------------------------------------------------------------ 
--

Trotz Turbo-Pascal kann man auch langsam essen.
;-)
MfG Paul
Persönliche Seite #4839440
Lesenswert?

Michael S. schrieb:
> Da kann man sich richtig in die Stimmung hineinversetzen, wie es damals
> in Betlehem war. Zumindest als Däniken-Leser... :)

Du meinst als die Aliens nach dem Tankstopp auf den Pyramiden die 
Batterie in der Bundeslade aufgeladen hatten und damit dann die Ampper 
am Weihnachtsbaum neben der Krippe hochgeskillt hatten.

Meine Oma hat den Kram früher gelesen, sehr amüsant. ;-)
(Firma: matzetronics) #4839450
Lesenswert?

Paul B. schrieb:
> Begin
>      CLRSCR;
>      For Kloß := 1 to 5: Do
>        Begin
>             Writeln ('MAMPF!');
>        End;
>      Writeln ('SATT bis OBENHIN');
> End

Hey, du hast den Entenbraten gar nicht angerührt - schönen Dank dafür 
:-)
1
function Mampf_Ente(Entenbraten :Real) :Real;
2
begin
3
   Entenbraten := 0;
4
 Mampf_Ente := Entenbraten;
5
end;

Aufruf nach Belieben zwischen den Klößen :-)
OP #4839864
Lesenswert?

Tomas schrieb:
> Haha ernsthaft? Das stellt ihr euch freiwillig ins Wohnzimmer? War da
> eine Frau involviert?

Frau ist involviert.

Es wird zu Weihnachten nur der Kerzeneffekt aktiviert
mit ganz geringer Helligkeit oder ganz abgeschaltet.
Das war die Voraussetzung zur Freigabe des Projektes.;-)

Wir wollten dieses Jahr keinen "echten" Baum sondern einen
aus recycelten Holz.

Gruß Thomas
OP #4844304
Lesenswert?

Hallo,

nach den Feiertagen hab ich noch etwas an diesem Projekt gearbeitet.
Wichtigsten Änderungen:
Effekt Funktionen werden über Funktionszeiger aufgerufen.
HSV2RGB von ASM in C geändert. (Jetzt ist alles in C)

HSV2RGB
Mir ist klar das es schon viele Umsetzungen gibt und
und ich nicht der erste bin der das macht.
Für mich war es wichtig zu verstehen was der Compiler mag
und was nicht, um schnellen oder kleinen Code zu erzeugen.

Hier ein paar Daten von der Umsetzung.

                                  HSV2RGB_OPTIMIZED_SIZE <-in HSV2RGB.h
                  most-O3 size-Os   most-O3 size-Os
ATmega328 Cycles       75      78       106     111
ATmega328 Size        286     234       242     182

ATtiny85  Cycles      383     436       589     636
ATtiny85  Size        302     248       242     192

ATtiny85 Size ist ohne "__mulhi3" Code

Um die Berechnung zu prüfen hab ich ein C# Programm geschrieben
das eine übliche Umsetzung in Float mit der AVR Umsetzung vergleicht.

Bei den 16777216 Möglichkeiten gab es
6481194 Abweichungen von 1 Digit
23503 Abweichungen von 2 Digit
0 Abweichungen von 3 Digit

Für mich ist das OK.

Gruß Thomas
Angehängte Dateien:
Gast #4852175
Lesenswert?

Vielleicht sollte man die Dinger mal umkonstruieren.
Am Stamm entlang so eine Art Stromschiene wo man so Leitungen 
einstöpseln kann.
Da kann man bestimmt lustige RGB-Spiele machen.

Am besten gefallen mir die weißen mit den vielen kleinen blitzenden 
Lichtern.
Mir geistert auch immer so eine Schaltung mit Ladewiderstand, 
Kondensator, Z-Diode und Thyristor durch den Kopf.
Die bauteiletoleranzen erzeugen bestimmt auch noch eine schöne 
Zufäligkeit.
Din Blinkfrequenz hängt bestimmt auch noch von der Versorgungsspannung 
ab.

Noch besser wäre es wenn die LEDs ab und zu nicht in Weiß, sondern in 
einer zufälligen Farbe aufblitzen würden.

Das glitzert bestimmt schön.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren