Hallo erstmal,
also ich habe gestern Abend meine Mammutprojekt "fast" fertiggestellt.
Es handelt sich dabei um einen Sternenhimmel mit ca. 300m Glasfaser die als Sterne leuchten sollen.
Angestrahlt wird jede Glasfaser von einer WS2811er LED.
Somit sind in 7 Tagen harter Arbeit (die letzten 3 Tage mit jeweils nur 4 Stunden Schlaf) etwa 520 Sterne entstanden mit einer Deckenkonstruktion die etwa 70kg wiegt.
Das Ganze war als Überraschung meiner im Urlaub gewesenen Freundin gedacht.
Leider hat es jedoch nicht geklappt:
Zum Einen, weil die Schrauben die das Teil halten sollen in der Eile wohl etwas schief in die Decke gebohrt wurden und die Konstruktion nicht gepasst hat.
Zum Anderen, weil das Arduino nichts tut.
Alles nicht so das gelbe vom Ei, weil es leider aus Zeitmangel die letzten 3 Tage schnell gehen musste.
Das kam daher, weil die Glasfaser 11 Tage ab Zahlungseingang bis zu mir brauchten.
Als Lieferzeit wurden 1-3 Werktage angegeben -.-
Zum anderen hat mich mein Schreiner entgegen unserer Absprache hängen lassen und am Tag 1 doch schon pünktlich Feierabend gemacht, bevor er mir die 12 Zuschnitte, davon 2 unterschiedliche Längen, gemacht hat. (ich kam um 16:10 an und er meinte er würde bis 16:30 auf mich warten).
Am Tag 2 hat er dann das Holz nach 5 Stunden versägt und ich musste neues kaufen und ihm bringen und weitere 3 Stunden warten. Dafür hat er dann 50€ gewollt, weil ers ja "zweimal machen musste".
Problem ist gewesen, dass er die Gährung auf der falschen Kante geschnitten hat.
Unsere Meinung über das Verursachen des Fehlers weicht natürlich ab.
Das Holz wollte er mir natürlich nur gegen Bezahlung aushändigen - aus Zeitnot habe ich dass dann auch machen müssen.
Bei der Montage musste ich dann (abgesehen von einem 4cm langen Fehlschnitt an einer Gähruung) feststellen, dass die Gährung nicht mal sauber gearbeitet war. Für das nächste mal kaufe ich mir das Werkzeug selbst. Der Schreiner war mit ca. 30€ geplant - daraus sind 50€ + 22€ für die zweite Ladung Holz gewesen. Das eigentliche Ziel, Zeitersparnis und sicher saubere Arbeit wurde NICHT erreicht und mein Fazit steht fest:
Das einzige Geld was ein Schreiner jemals von mir zu sehen bekommen wird, ist dass was ich an der Kasse beim Supermarkt der/dem Kassierer/in gebe, wenn er zufällig hinter mir in der Schlange steht.
Somit konnte ich erst am Tag 3 da beginnen, wo ich schon bei Tag 1 hätte sein sollen.
Zu allem Überfluss kamen die Glasfasern dann auch noch mit Produktionsschwankungen an.
Die 0,75mm Faser, für die ich über das Wochenende die 280 0,8mm Löcher gebohrt hatte, war unterschiedlich dick.
Die Glasfaserrolle als lfm. hatte einen 0,75 bis (geschätze) 0,9mm Durchmesser. Auch ein mehrfaches nachbohren mit dem 0,8mm Bohrer (und leichtes seitliches wackeln) brachte dann an der Verdickung nichts mehr und es musste NOCHMAL mit einem 1,1mm Bohrer alle Löcher nachbohren!
Allein dafür war ein weiterer Tag weg - und das zu einem Zeitpunkt, wo ich alle Vorarbeiten aufgrund der nicht ankommenden Glasfaser so gemacht hatte, dass es nur noch hätte eingesteckt werden müssen.
Die Glasfaser kam diesen Montag um 11:00 bei mir an.
Geplante Fertigstellung des gesamten Projekts war gestern, Mittwoch 20:00 - und um 23:00 hat es nicht gepasst und nicht mit dem Sketch funktioniert.
Dann musste ich meine Freundin vom Flughafen abholen und hatte als Überraschung eine komplett verdreckte Wohnung...
Ich ärgere mich am meisten darüber, dass ich nun am Ende aus Zeitdruck Pfuschen musste, weil jeweils andere mir 3 von 6,5 Tagen geraubt haben.
Nun aber zum Problem:
Mein Testsketch mit 50 LEDs funktionierte.
Als ich den Sketch auf meine ca. 150 LEDs angepasst habe, klappte gar nichts mehr. (kein leuchten)
Ich vermute sehr stark, dass hier der Speicher das Problem ist.
Abgesehen von 8 byte Variablen und 4 booleans habe ich diesen Ausdruck hier:
CRGB leds[NUM_LEDS];
und jetzt der Killer:
//zum speichern der LED helligkeiten: [0] = istWert; [1] = sollWert beim funkeln; [2] = Farbwert; [3] = Sättigung:
int memory [NUM_LEDS][4];
- Also 600 weitere Byte Variablen.
Das Problem ist, dass der Sternenhimmel nicht statisch leuchtet und diese Werte definitiv braucht, um so zu funktionieren, wie er soll.
Ich brauche also wirklich zu jeder LED vier 255Bit große Speicherbereiche.
Verwendet wird ein Ardunio UNO, dass eigentlich auch schon zu groß ist.
Ein Mega kommt also nicht in Frage.
Von unten hat man ein Loch mit einem 64mm Durchmesser und nur 4cm Abstand nach oben - ein Mega würde also nicht mehr aus der Konstruktion raus kommen können Zwecks Wartung/Erweiterung.
Dazu gesellt sich ein Soundmodul, dass beim Klatschen unterschiedliche Programme startet.
Die Arduino IDE zeigt an:
Binäre Sketchgröße: 9.780 Bytes (von einem Maximum von 32.256 Bytes)
Ich hoffe ihr könnt mir weiterhelfen und sagen ob der Speicher das Problem wirklich ist und was für Alternativen es nun gibt.
Vielen Dank!