Avatar von Rundumleuchte
  • Rundumleuchte

2 Beiträge seit 10.12.2017

Re: Flipdot-Display mit Arduino steuern

Ich habe mich jetzt nochmal durch den Quellcode gekämpft und dabei sind noch mehr Unklarheiten aufgekommen.

Gleich in den ersten Zeilen wird die Pinbelegung verraten:

Pinbelegung: // Digital 0..5 Row# // Digital 8 Row SET // Digital 9 Row RESET // Digital 10..12 Panel# // Digital 13 Panel SELECT // Analog 0 FP2800 A0 // Analog 1 FP2800 A1 // Analog 2 FP2800 A2 // Analog 3 FP2800 B0 // Analog 4 FP2800 B1 // Analog 5 FP2800 D

Zusammen addiert sind das 18 Pins, jedoch sind auf dem "Mainboard" in der Anzeige nur 17 Pins. Weiter im Quellcode werden auch nur 17 Pins verwendet:

for (int i=3; i<14; i++) pinMode(i, OUTPUT); // 3 bis 13 = 11 Pins pinMode(A0,OUTPUT); // 12. Pin pinMode(A1,OUTPUT); // 13. Pin pinMode(A2,OUTPUT); // 14. Pin pinMode(A3,OUTPUT); // 15. Pin pinMode(A4,OUTPUT); // 16. Pin pinMode(A5,OUTPUT); // 17. Pin

Daraus schließe ich, dass die obrige Zuordnung nicht korrekt sein kann.

-----

Die nächste Unstimmigkeit, habe ich in dem Kommentar zur Funktion rowSelect gefunden. Dort steht:

//=================================================== // Diese Funktion setzt die Zeile // Sie muss immer vor der Spalte aufgerufen werden // Parameter: state = SET Pixel wird gesetzt // state = RESET Pixel wird zurückgesetzt //===================================================

Sie muss also immer vor der Spalte aufgerufen. Soweit verständlich. Dennoch steht einige Zeilen davor im Code:

colSelect(i,RESET); rowSelect(j,RESET); writePanel(0); colSelect(i,OFF); rowSelect(j,OFF);

Offensichtlich wird hier rowSelect nicht wie in dem Kommtar verlangt, vor colSelect ausgeführt. Habe ich den Kommentar falsch interpretiert, oder wie ist das zu verstehen?

-----

Und eine dritte Sache ist mir noch unklar. Einmal wird die Funktion colSelet(int col, int state) mit den Werten col = i = 0 und state = OFF = #defined -1 aufgerufen.
Innerhalb der Funktion wird dann digitalWrite(A5, state = -1) aufgerufen. Ich arbeite nicht mit Arduino, aber hier wird doch der Pin A5 versucht auf -1 zu setzten, korrekt? Wie ist das zu interpretieren? Macht der Arduino daraus dann eine 0 (nach dem Prinzip -1 ist nächer an low, als an high)?

-----

Und um den Bogen zu der eigentlichen Frage wieder zu schließen, jetzt kann ich meine ursprüngliche Fragestellung konkretisieren. Ich habe 17 Pins, davon sind 14 bekannt.
Auf diesem Bild sind die Pins !E2, !E1 und !E1 die einzigen, die ich nicht zuordnen kann.

Und um das Programm nochmal zu visualisieren, da ich mir den Vorgang (bis jetzt) nicht vorstellen konnte, habe ich diesen als Diagramm dargestellt:
http://www.blaulicht-depot.de/bilder/forum/20171211_Sequenzablauf.png

Bewerten
- +
Anzeige