Hallo Zusammen,
ich bin dabei eine Lichtsteuerung für meinen PC umzusetzen. Das Schalten etc ist alles kein Problem. Meine nächste Stufe besteht darin, das bestimmte Lichteffekte programmiert werden sollen. Dafür soll ein "Programm" durchlaufen werden, mein Problem ist nun, wie ich so ein Programm speichere und vorallem Wo?
Meine Idee wäre es ein Array zu erstellen in dem Pin, Status und Verzögerung zur nächsten Aktion gespeichert werden, und welches dann entsprechend durchlaufen wird.
Problem ist hier natürlich das das Array von vorne herein ja eine definierte Größe haben muss, somit Programmierungen über z.B Netzwerk schwierig würden. Des weiteren dürfte ich schnell an ein Speicher Problem kommen denke ich.
Sonst fällt mir nur noch SD-Karte ein, die dann entsprechend eine Datei hat, die ausgelesen wird.
Sind meine Überlegungen richtig? Oder hat jemand noch eine bessere Idee?
Danke schon mal
Steve
Wenn du beim Array bleiben willst, bietet sich hier ein Array aus structs an.
Das kann man auch durchaus mit dynamischen Speicher machen, d.h. malloc()/free() (C) oder new/delete (C++). Davon wird zwar auf Mikrocontrollern mit wenig RAM meistens abgeraten, aber es ist möglich.
SD ist eine Option, aber auch recht aufwendig. Wenn nicht allzuoft geschrieben wird, kann man auch das interne EEPROM nehmen. Das hat aber eine überschauliche Anzahl von Schreibzyklen, wobei mindestens 100.000 normal reichen wenn man nur schreibt wenn neue Daten vom PC kommen. Man hat aber auch nur 1kB Speicher. Wenn dir also schon das RAM nicht reicht...
Das kann man mit einem externen FRAM umgehen. z.B. 64KBit (=8kByte):
http://www.reichelt.de/DRAM-FRAM-SRAM/FM-24C64B-G/3/index.html?&ACTION=3&LA=2&ARTICLE=146570&GROUPID=2954&artnr=FM+24C64B-G
Das hat die Schreibgeschwindigkeit von SRAM (also Größenordnungen schneller als EEPROM) und 10^14 Schreibzyklen.
Um was für eine Lichtsteuerung handelt es sich? Led Typen, Anzahl etc. Es würde sich anbieten, einen Mega2560 zu nehmen. Sollte im PC doch reinzubekommen sein.
Alternativ, vielleicht auch besser: Lasse den MC mit deinem PC "reden". Sprich der MC erhält immer die aktuellen Daten, was alles gemacht werden soll mit den Lichtern. Dazu würde es dann lediglich ein Programm auf dem PC benötigen.
Danke für die Antworten, und sorry für meine späte Antwort.
Es werden mehrere LEDs sein, wieviele weis ich erst wenn der PC fertig gebaut ist, wo ich aktuell noch dran bin, ggf. auch ein paar LED-Streifen. Bin bei dem YUN am überlegen weil die Komunikation mit dem PC über W-Lan stattfinden soll.
Ich will aber gerade nicht, das der PC das alles steuert sondern eben der Arduino bzw die über I2W vernetzten Arduinos im Inneren..
Vom Mega habe ich abstand genommen weil ich dem sonst noch ein Schield verpassen müsste um eben WiFi zu haben, bin mit dem Gedanken vom FRAM oder SD am spielen..
Aber danke für alle Anregungen!!!!
Für sowas wurde aber WLAN nicht erfunden! Würde sogar in Betracht ziehen, dass WLAN im Gehäuse inneren grausam wird. Warum baust du dir keinen eigenen 5x2 Header und greifst USB direkt vom Mainbard ab? Aber nur GND, D+ und D- zum Arduino legen.
So kannst du den auch gut programmieren.