Show Posts
Pages: 1 ... 73 74 [75] 76 77 ... 94
1111  International / Deutsch / Re: String in Char ohne Bufferoverflow on: April 08, 2012, 06:10:44 am
void* malloc(int size) und free(void*) sind in diesem Fall Dein Freund. Damit reservierst Du dynamisch Speicher und gibst ihn wieder frei.
Soweit ich weiss, klappt das auch bei der avr-libc.
Mario.
1112  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 08, 2012, 01:42:46 am
Dann hast Du ein grundsätzliches Problem. Tritt das nur auf, wenn Du mehr als 7 LEDs betreibst, oder ist es egal wieviele LEDs angesteuert werden.
Um dem Problem auf die Schliche zu kommen, würde ich schrittweise vorgehen.
Also erstmal nur eine einzige LED ansteuern mit einer bestimmten Blinksequenz, die Du auch prüfen kannst. (z.b. 1 sekunde an, 1 sekunde aus, 0,5 sekunden an, 0.5 sekunden aus -> langes blinken, kurzes blinken)
Dann siehst Du, das die Sequenz korrekt übertragen wird. Das Ganze dann mit unterschiedlichen LEDs und Channel probieren. Wenn das einzeln auf allen Channels klappt, dann mit 2 LEDs weitermachen.
1113  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 07, 2012, 06:45:25 am
Quote
MIt " for (int i=0; i<9; i++) {" liest Du aber 9 Byte ein nicht 8 und hast einen Array-Überlauf.
Gut aufgepasst Uwe :-)
Der Punkt im neuen Code war mir gar nicht aufgefallen, da er ja vorher schon richtig war und erst im neuen Code falsch. :-)
Anstatt ein Byte zuwenig zu lesen, wird nun ein Byte zuviel gelesen, das dann noch nicht mal verwendet wird.
Zumindest sollte sich aber die Blinksequenz geändert haben. ;-)

Achso, das wäre im übrigen eine "einfache" Methode zum debuggen. Erzeuge eine Sequenz in Vixen die immer nur eine LED eine Sekunde schaltet. Die Sequenz sollte bei der ersten LED starten und bis zur letzten durchlaufen. Anhand der "fehlenden" LEDs die nicht leuchten, kann man dann zumindest vermuten wo ein Fehler sein könnte. Nicht schön, aber besser als nix.
1114  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 07, 2012, 06:23:53 am
Es wäre aber z.B. gut zu wissen, das Du das bereits probiert hast. Wie sollen wir Dir effektiv helfen, wenn wir raten müssen.
Wenn Du den Code schon bereinigt hast, würde ich eher auf ein Problem bei der übermittelten Sequenz vermuten. Da ich das Protokoll nicht kenne, kann ich dazu aber nicht viel schreiben.
Leider ist das debugging hier ein wenig schwierig, da die serielle Verbindung die man normalerweise für Ausgaben verwendet, bereits blockiert ist. Schau Dir daher evtl. nochmal genau die definierten Channels und Sequenzen im Vixen an, vielleicht steckt da ja ein kleiner Fehler drin. (Channel vertauscht o.ä.)
Der Code sieht aus meiner Sicht zumindest erstmal sauber aus.
1115  International / Deutsch / Re: Linux auf ATMega 1284p laufen lassen on: April 07, 2012, 06:10:13 am
Ich halte das eher für einen Aprilscherz. Wenn auch ein gut gemachter. Sollte das tatsächlich echt sein, dann Hut ab. :-)
1116  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 07, 2012, 06:05:30 am
Quote
Nur ich weiß nicht genau wie ich das problem lösen kann und ob man es überhaupt lösen kann....im moment fällt mir noch nichts passendes ein !
Das verstehe ich nicht ganz, Du hast doch das Beispiel auf die 8 LEDs erweitert, nur lediglich vergessen an allen Stellen den Code auf 8 LEDs zu erweitern.
Die Stelle
Code:
if (Serial.available() >= 7)
fragt ab, ob bereits 7 Bytes für 7 Channels im seriellen Puffer liegen. Was muss man wohl machen, wenn man statt 7 nun 8 Channel hat und daher warten will, bis 8 Bytes für 8 Channel im Puffer liegen?
Ebenso das Array
Code:
int incomingByte[7];
das für 7 Byte definiert wird. Was muss ich wohl machen, damit ich ein Array für 8 Bytes definiere?
1117  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 07, 2012, 05:11:50 am
Ich vermute mal, Dein Problem ist das
Code:
if (Serial.available() >= 7)
Damit wird schon aus dem Serial-Puffer gelesen, wenn erst 7 der 8 Channels übertragen wurden. Damit bleibt das 8 Byte im Puffer und wird beim nächsten Durchlauf als erstes Byte also für Channel 1 gelesen. Damit verschiebt sich Deine Sequenz um genau 1 Byte pro Durchlauf.
Ein weiterer Fehler, der sich aktuell zwar nicht auswirkt, aber später Probleme machen kann ist, das Dein Array zu klein ist.
Ein
Code:
int incomingByte[7];
Erzeugt ein Array mit 7 Einträgen, nicht mit 8. Eigentlich könntest Du nur von incomingByte[0] bis incomingByte[6] darauf zugreifen. Das Du incomingByte[7] verwendet kannst, liegt einfach nur daran das der Arduino kein Memory-Protection hat. Da der Compiler aber nicht weiss, das Du ein Byte mehr an Speicher verwendest, kann es sein das auf diesem Byte bereits wieder Daten einer anderen Variable im Speicher liegen und Du damit plötzlich deren Wert veränderst, wenn Du ein incomingByte[7]=xxx machst.
1118  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 07, 2012, 02:24:29 am
Ok, wenn es nur die Reihenfolge der Lampen ist, dann ist es vermutlich kein elektrisches Problem. Dann poste doch mal Deinen Code. Bitte verwende dabei die "#" Tags (Insert Code - oben in der Editorleiste). Vermutlich stimmt nur irgendwie die Zuordnung der Pins nicht ganz.
1119  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 06, 2012, 01:40:14 pm
Bitte poste mal den Schaltplan, wie Du die LEDs angeschlossen hast. Dazu kommt, das der Arduino (ich vermute mal ein Mega) auch nur einen maximalen Strom liefern kann. Wie groß sind denn die Widerstände die Du vor den LEDs hast? Der maximale Strom pro Port (A,B,CD..) ist auch begrenzt. Zusätzlich auch noch der Strom der gesamt über GND fliessen darf. Wenn keine LED mehr richtig leuchtet klingt das ein wenig so, als würde die gelieferte Spannung zusammenbrechen.
1120  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 06, 2012, 04:52:55 am
Bezüglich Vixen und Arduino findet sich eine Menge nützliches im Netz.
Z.B. http://doityourselfchristmas.com/forums/showthread.php?12757-Vixen-Generic-Serial-Output-controls-the-Arduino!&p=129693#post129693
Vermutlich ist das schon die Lösung für Dein Problem :-)
btw. das war der erste Treffer in  Google bei der Suche nach "Arduino + Vixen", odrt gab es einen entsprechenden Link.
1121  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 06, 2012, 04:40:08 am
Wenn ich das richtig verstehe, willst Du eigentlich mit Deinem PC die 10 LEDs steuern. Der Ardiuino ist nur "Mittel zum Zweck", weil da die LEDs angeklemmt werden können und Du sie über einen Sketch einzeln steuern kannst.
Wenn das so ist, sollte es doch nicht sonderlich schwer sein.
Auf der einen Seite hast Du den PC, der über USB mit dem Arduino verbunden ist. Das Programm "Vixen" (ich vermute mal das hier: http://www.vixenlights.com/downloads.html) liefrt über das "Generic serial" output plugin die Daten an den Arduino. Der liest einfach was da kommt und schaltet entsprechend die LEDs. 6 Davon kannt Du sogar per PWM dimmen, ansonsten kann Du bis zu 18 LEDs direkt ansteuern. PIN 0  und 1 sind durch die serielle Verbindung belegt, der Rest kann komplett verwendet werden, inkl. der 6 analog-Pins.

Die größte Schwierigkeit ist vermutlich, das Daten-Protokoll Deines Steuerprogramms zu bekommen, dmait Du weisst was da über die serielle Schnittstelle geschickt wird.
Mario.
1122  International / Deutsch / Re: Licht auf bestimmte Musik !!! on: April 05, 2012, 03:28:50 pm
Es wäre gut, wenn Du erstmal beschreibst, was genau Du machen willst. LEDs mit einer Musik zu synchronisieren kann ja bedeuten, das Du anhand der Töne bestimmte LEDs schalten willst. Es kann aber auch bedeuten, das Du die LEDs zu festgelegten Zeiten schalten willst.
Letzteres ist sicher deutlich einfacher.

Was genau hat den mit dem Code aus dem Forums-Post nicht so funktioniert? Oder, genauer ... Was hat der Code gemacht und was hast Du erwartet.
In einem früheren Post hast Du mal geschrieben, das Du einen Arduino Mega 2560 hast. Konntest Du den nicht zum Testen nehmen, bevor Dein neues Board angekommen ist?
Mario.
1123  International / Deutsch / Re: projekt | arduino game controller on: April 04, 2012, 12:36:01 am
Kurze Frage, soll der Arduino nur für den Controller herhalten, oder soll das ganze Spiel darauf laufen?
Wenn das Spiel z.B. auf einem Rechner in Processing gemacht wird, und der Arduino nur zur Steuerung dient, kannst Du noch einen Bluethooth-Adapter verwenden um die Controllerdaten drahtlos zu übertragen.
1124  International / Deutsch / Re: SD Card on: April 02, 2012, 02:18:49 am
Hast Du schon mal ein anderes Beispiel versucht? Z.B. Die Arduino SD-Lib? http://arduino.cc/en/Reference/SD
Zu Deinem Sketch:

1) Dort steht was von
Code:
// define the pin that powers up the SD card
#define MEM_PW 8
Laut Datenblatt verwendet Dein Shield aber nur die Pin 10-13.

2) Dein Sketch wartet erstmal auf eine Eingabe über die serielle Schnittstelle, ehe er etwas tut. Hast Du denn mal die Zeichen "W" oder "T" über die serielle Verbindung an den Arduino geschickt, wenn das Programm läuft?


1125  International / Deutsch / Re: 64 RGB-LED Matrix, TLC5940, Leistungsversorgung on: March 31, 2012, 07:49:14 am
Das denke ich auch, da Du ja wie es scheint auch jede LED einzeln ansteuern willst. Dazu reichen die 12 TLCs ja genau aus.
Nur noch eine Frage, willst Du die LED Matrix selsbt bauen? Die zu kaufenden LED-Matrizen sind ja im normalerweise für Multiplexing ausgelegt und haben nicht für jede LED einzelne Anschlüsse.
Pages: 1 ... 73 74 [75] 76 77 ... 94