Arduino <--> C# Applikation

Hallo Community,

folgendes soll realisiert werden:

Kurz: Ich will eine selbst gebaute LED Matrix mit einer C# Applikation steuern

Erklärung:
Der Benutzer soll innerhalb der C# Applikation einen String oder ein Muster festlegen, welches anschließend auf der LED-Matrix angezeigt wird. ( Im Idealfall auch als Laufschrift)
Problem ist, dass alles was irgendwie angezeigt werden soll, bereits im Arduino programmiert sein muss, da mit der C#-App nur noch die entsprechenden Funktionen aufgerufen werden können - soweit mein Wissensstand.

Das habe ich mit einer 5x5 Testmatrix bereits auch schon am Laufen. Drückt der Benutzer innerhalb der C#-App den Button A, dann zeigt es ein A auf der Matrix an - Drückt der Benutzer den Button B, zeigt es eben ein B an.
Die beiden Muster sind fest im Arduino hinterlegt und werden anhand einer "if - else if" bzw "switch case" Anweisung ausgewählt.

Geplante Umsetzung:
Ich habe mir folgenden Lösungsweg überlegt:

Die Komplette Matrix wird in einzelne Segmente unterteilt und bildet somit die einzelnen Buchstaben. (Beispiel: eine Matrix wird in 10 Teile unterteil und kann somit 10 Buchstaben gleichzeitig darstellen)
Im Arduino sind alle Buchstaben als Muster hinterlegt (Pro Buchstabe eine eigene Funktion). Wenn nun der String von der C#-App an das Arduino übertragen wird, können so die entsprechenden Funktionen aufgerufen werden.
Diese Lösung funktioniert aber nur dann, wenn der String nicht länger ist wie die Matrix. Eine Laufschrift würde hier zur Lösung führen.

(Ich hoffe es kommt einigermaßen rüber, was ich umsetzen will.)

Frage:
Denke ich zu kompliziert? Gibt es andere Lösungsansätze oder Ideen zur Umsetzung? (Stichwort: Matrix Library von wiring)
Hat jemand von euch bereits etwas ähnliches umgesetzt?

Um den Sinn des Projekts vorab zu klären: Mein Arduino- und mein C#-Wissen soll vertieft werden, da mich das Zusammenspiel von Soft- und Hardware einfach begeistert :slight_smile: An dieser Stelle möchte ich auch meine Bereitschaft für andere ähnliche Projekte aussprechen!!! 8)

Vorab vielen Dank für eure Hilfe bzw. Ratschläge!!

Gruß feed

Ich denke das ist ein Einsteigerprojekt. Das passt. Für Dich ist es sicher kompliziert genug um etwas zu lernen. Aber das ist nicht soooo schwer solange Du den Mut nicht verlierst.

Hi Udo,

danke für deine flotte Antwort 8)

Das klingt ja schonmal gut. Ich werde sicher die ein oder andere Hilfe beim Coden des Sketch's als auch bei der C#-Applikation benötigen, aber ich hoffe mal ihr steht mir da tatkräftig zur Seite :stuck_out_tongue:

Also bin ich vom Lösungsansatz her auf jeden Fall richtig unterwegs?!?!

Für andere Ideen und Ansätze bin ich jederzeit offen und dankbar!

Gruß

Hab' mich nicht wirklich intensiv mit dem Problem beschäftigt, daher hat meine Idee vermutlich einen trivialen aber fatalen Fehler, aber: Anstatt die Muster fest im Arduino zu speichern wäre es doch auch möglich, dass die C# Anwendung dem Arduino mitteilt, welche Punkte der Matrix aufleuchten sollen. Somit wäre es dem Benutzer möglich, beliebige Muster anzuzeigen.

dominikh:
Anstatt die Muster fest im Arduino zu speichern wäre es doch auch möglich, dass die C# Anwendung dem Arduino mitteilt, welche Punkte der Matrix aufleuchten sollen. Somit wäre es dem Benutzer möglich, beliebige Muster anzuzeigen.

Darüber habe ich noch gar nicht nachgedacht, aber das sollte möglich sein...

Beispiel:

  1. Der Benutzer konfiguriert ein beliebiges Muster.
  2. Die C#-App bildet daraus eine Binäre Zahlenkette , die 1:1 über die Schieberegister an die Matrix weitergegeben wird.

Wenn ich von der Logik her jetzt richtig bin, würde das einen vergleichsweise kleinen Arduino Sketch bedeuten. Die C#-App würde umso aufwendiger, was aber kein Problem ist.

Vorteil wäre dann natürlich, dass die Anzeige wesentlich flexibler gestaltet werden könnte und die Unterteilung in einzelne Segmente wegfallen würde/könnte!!!

Denke ich jetzt richtig, oder bin ich da auf dem Holzweg?

Danke schonmal und noch einen schönen Abend!

feed

Soweit richtig, wobei man ab hier mehr über die genauen Anforderungen wissen müsste. Ist der Arduino immer mit dem Computer verbunden, oder soll die Anzeige auch funktionieren, wenn die Verbindung getrennt wird? Wenn letzteres ist es natürlich wichtig, dass Arduino z.B. die Laufschrift übernimmt und nicht das C# Programm.

Ursprünglich war es so angedacht, dass das Board immer mit dem PC verbunden sein muss um die Matrix zu betreiben.

Mir wäre jetzt auch keine Lösung bekannt, um die Zahlenkette mit der C# App dauerhaft in den Arduino zu schreiben. Wenn es eine gibt, dann klärt mich doch bitte auf 8)

Gruß

Kommt auf deine Definition von dauerhaft an.

  1. Solange der Arduino Strom hat - Das ist simpel. C# sendet an Arduino, Arduino speichert es in einer Variable. Das musst du ja so oder so machen
  2. Auch über einen Neustart hinweg - Ist eigentlich genau so simpel, nur dass der Arduino hier den Wert im EEPROM speichert bzw beim starten aus dem EEPROM liest.

letzteres ist mir neu - wieder etwas gelernt :wink: - !!!!

Ok, aber das kann man dann immernoch "nachrüsten", wenn der Rest steht!

Ich werde mir jetzt mal Gedanken über den grundlegenden Aufbau machen und diesen dann hier kurz vorstellen, da ich in Elektrotechnik nicht ganz so fit bin wie in der Programmierung - leider!!!

Vielen Dank soweit für die Hilfe an euch!

Gruß

So ihr Lieben,

ich habe mir jetzt mal Gedanken gemacht, wie ich das besagte Projekt aufbauen möchte und bin zu folgendem Ergebnis gekommen:

Es soll eine 13x21 LED Matrix werden. (Normale 5mm Led's mit einer Betriebsspannung von 2V und einem Strom von 30mA)

Wenn ich mit Schieberegistern in Reihe arbeiten will, benötige ich 5 Stück (13+21 = 34; 34/8 = 4,25 => 5x 74HC595) (die Matrix wird quasi multiplexed)

Da ich, wie schon angekündigt, in Elektrotechnik (noch) nicht ganz so fit bin, hoffe ich auf eure Unterstützung :wink:

Mir geht es darum, welche Transistoren benötige ich, benötige ich bei den vielen Led's in Reihe Vorwiderstände, benötige ich noch weitere Teile oder gibt es sonst noch etwas zu beachten, was die Verdrahtung angeht.

Als "Dank" für eure Hilfe versuche ich das Projekt so transparent wie möglich zu gestalten, sodass viele davon lernen können und die gleichen Fragen nicht noch einmal stellen müssen!!! 8)

Gruß feed