Go Down

Topic: Fahrradblinker mit LED Matrix selber bauen (Read 5615 times) previous topic - next topic

gregorss

#30
Aug 19, 2016, 05:20 pm Last Edit: Aug 19, 2016, 05:43 pm by gregorss
Du hattes dann vor den Transistoren keine Widerstände? Ich hab da jetzt 1k Ohm vor.
Dochdoch. Die sind im Schaltplan auch drin.

Da Du (bzw. ich damals) die Transistoren wie Schalter benutzt, musst Du nicht groß herumrechnen: So ein Kleinsignaltransistor hat eine Verstärkung von etwa 100, d. h. an der Basis muss ungefähr 1/100 des Stroms anliegen, den Du schalten möchtest - im Grunde kann da noch deutlich mehr Strom rein, dann wird der Transistor halt „übersteuert".

Das mit der "zu setzenden" LED ist mir jetzt noch nicht ganz klar, aber das kommt dann im nächsten Schritt :D
Und waren deine Transistoren an den kathoden oder Anoden? Dein Schaltplan wird mir nur so klein angezeigt.
Der Schaltplan ist ein PDF, da kannst Du zoomen, bis Du schwarz wirst. Blöd ist, dass ich das Matrix-Modul „hochkant" gezeichnet habe.

Das mit den zu setzenden LEDs ergibt sich aus der Schaltung: Du setzt zum Beispiel die Pins für die LEDs 3, 4 und 5 (in meinem Schaltplan PD2...PD4) jeweils „High" und schaltest die ganze Zeile mit einem der Pins PB1...PB5 an (zum Beispiel ein High auf PB1 für die ganz linke Spalte). Dann leuchten die mittleren drei LEDs der ersten Spalte, bis Du (zum Beispiel) PB1 wieder auf „Low" setzt.
Dann machst Du das Gleiche mit der nächsten Spalte (bzw. Zeile, wenn man das um 90 ° dreht).

Das gedankliche „Problem" ist halt, dass man Spalte für Spalte (bzw. Zeile für Zeile, nech) die LEDs bestimmt, die leuchten sollen und dann eben nur diese eine Spalte „anschaltet". Dann wartet man ein Momentchen, schaltet aus, setzt die LEDs für die nächste Spalte und schaltet dann diese an.

Gruß

Gregor


Nachtrag: Dass im Schaltplan (und in meinem obigen Geschreibsel) von „PB5" oder „PD2" die Rede ist, hat einen einfachen Grund: Ich habe meinen 35 Bit-Zähler mit einem nackten Mikrocontroller gebaut, da sind die Pinbezeichnungen anders. Du möchtest das aber mit einem Arduino machen, also heißen die Pins dann eben anders (z. B. D0 oder so).


Nochn Nachtrag: Weil ich das eh grad so eingerichtet habe, dass ich das schnell machen kann, habe ich ein paar Sekunden meines 35 Bit-Zählers ins Netz gekippt. Siehe hier.
Nicht lange fackeln, lass' Backen wackeln! (Seeed)

agmue

#31
Aug 19, 2016, 09:49 pm Last Edit: Aug 19, 2016, 10:06 pm by agmue
Hast Du schon mal den MAX7219 in Erwägung gezogen? Damit kann man einfach eine Matrix machen und Schrift oder Pfeile laufen lassen. Beispiel.


Tutorial - Arduino and the MAX7219 LED Display Driver IC

Parola for Arduino
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

nix_mehr_frei

Mit dem MAX kann er aber seine Matrix wieder einstampfen, weil der MAX nur 8x8 oder auf entsprechend weniger begrenzt kann. 5x10 ist zwar weniger als als 8x8 aber 10 geht halt nicht.
rot ist blau und Plus ist Minus

agmue

Mit dem MAX kann er aber seine Matrix wieder einstampfen, ...
Die Matrix ist schon verlötet, ...
Dieses Detail hatte ich überlesen. Der MAX kümmert sich halt um das Multiplexen, der Arduino liefert nur ein paar Daten für die Zeichendarstellung, das ist schöne Aufgabenteilung. Zwei MAX würden auch 5x10 können (eigentlich sogar einer, da 8x8 > 5x10), aber wenn es denn schon verlötet ist ...  ::)
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

koko_95

Leute, der Blinker läuft, ich bin super happy! Experiementiere jetzt noch etwas rum und dann kommt noch die Schwierigkeit, dass mit dem Wippschalter zu verbinden und das Ganze aufs Fahrrad zu bringen. Tipps sind immer wilkommen :)
Aber bis hierhin schonmal vielen Dank, ihr ward mir eine Riesenhilfe!

PS: An alle, die hier immer von "ihm" reden, ich bin w21

agmue

#35
Aug 20, 2016, 09:32 pm Last Edit: Aug 21, 2016, 08:53 am by agmue
Leute, der Blinker läuft, ...
Glückwunsch!
PS: An alle, die hier immer von "ihm" reden, ich bin w21
Sorry, ist extrem selten  :)   EDIT: Hier im Forum!
Tipps sind immer wilkommen :)
Da wäre es hilfreich zu sehen, was Du bisher so im Sketch stehen hast.
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

gregorss

#36
Aug 20, 2016, 11:54 pm Last Edit: Aug 20, 2016, 11:54 pm by gregorss
... Sorry, ist extrem selten ...
Was?! Frauen sind *nicht* selten. Manchmal gibt es für meinen Geschmack sogar viel zu viele :-)

Gruß

Gregor
Nicht lange fackeln, lass' Backen wackeln! (Seeed)

uwefed

Bei Dir zuhaus wenn ein Kaffekränzchen durchgeführt wird sicher  ;)  ;)  ;)

Aber vergraulen wir koko_95 nicht.

Grüße Uwe

gregorss

Bei Dir zuhaus wenn ein Kaffekränzchen durchgeführt wird sicher  ;)  ;)  ;)
Mit Kaffeekränzchen habe ich keine Probleme. Da setze ich einfach meine Occupy-Bewegung gegen. Oder mein Knipshobby.

Gruß

Gregor


Nicht lange fackeln, lass' Backen wackeln! (Seeed)

gregorss

Leute, der Blinker läuft, ich bin super happy!
Freut mich! Mir ist noch etwas eingefallen: Wenn Du ein „Bild" mit der Matrix anzeigen kannst, kannst Du auch ganz viele anzeigen. Wenn Du die vielen Bilder in Form von Arrays (Variablenfelder) speicherst, kannst Du sie im „Flash" des Arduinos ablegen. Da dürftest Du reichlich mehr Platz haben, als Du brauchst. Zum Speichern und Abrufen solcher Variablen kannst Du vorgehen, wie ich es auf dieser Seite (unten, Abschnitt „Knapper Speicher") beschrieben habe.
Wenn Du lustige Trickfilmchen zeigst, gehst Du als „die mit dem lustigen Blinker" in die Stadtgeschichte ein :-)

Gruß

Gregor
Nicht lange fackeln, lass' Backen wackeln! (Seeed)

koko_95

Freut mich! Mir ist noch etwas eingefallen: Wenn Du ein „Bild" mit der Matrix anzeigen kannst, kannst Du auch ganz viele anzeigen. Wenn Du die vielen Bilder in Form von Arrays (Variablenfelder) speicherst, kannst Du sie im „Flash" des Arduinos ablegen. Da dürftest Du reichlich mehr Platz haben, als Du brauchst. Zum Speichern und Abrufen solcher Variablen kannst Du vorgehen, wie ich es auf dieser Seite (unten, Abschnitt „Knapper Speicher") beschrieben habe.
Wenn Du lustige Trickfilmchen zeigst, gehst Du als „die mit dem lustigen Blinker" in die Stadtgeschichte ein :-)

Gruß

Gregor

Danke für den Tipp, wenn alles funktioniert und ich noch Zeit habe bis zur Abgabe, mache ich das! Bin gerade dabei, einen Holzrahmen, den man dann am Fahrrad befestigen kann, für die LED Matrix zu bauen :)


Ich bin nur noch überfordert mit dem Schalter, hab den hier: https://www.conrad.de/de/wippschalter-250-vac-16-a-2-x-einausein-arcolectric-h1570-vb-aaa-rastend0rastend-1-st-700045.html
und habe keine Ahnung, wie ich den an das Arduino anschließe. Hab den Tipp mit den LEDs probiert, so auf dem Breadbord funktioniert es, aber sobald ich das übers Arduino machen will, weiß ich nicht weiter.
Ist der Schalter ein input? Und wie wird der mit Strom versorgt?
Für den Code wollte ich dann ein if... else statement nehmen, das sollte gehen oder?

Lieben Dank!

koko_95

Hab mir das so gedacht (hier mit zwei LEDs, die leuchten sollen, sonst mit dem Code fürs Blinken):

int yled = 4;
int gled = 5;
int gb1 = 8;
int gb2 = 9;
int gr1 = 11;
int gr2 = 12;

void setup() {
  // put your setup code here, to run once:
pinMode(yled, OUTPUT);
pinMode(gled, OUTPUT);
pinMode(gb1, INPUT);
pinMode(gb2, INPUT);
pinMode(gr1, INPUT);
pinMode(gr2, INPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
    if ((gb1 == HIGH) && (gb2 == HIGH))
    {digitalWrite (yled, HIGH);
}
    else if ((gr1 == HIGH) && (gr2 == HIGH))
    {digitalWrite (gled, HIGH);

}



Bin absoluter Programmier-Anfänger :/

gregorss

#42
Aug 23, 2016, 01:42 pm Last Edit: Aug 23, 2016, 02:09 pm by gregorss
... Schalter ... keine Ahnung, wie ich den an das Arduino anschließe.
Einen Schalter anzuschließen und abzufragen ist sehr einfach.

Für einen Schalter funktioniert das prinzipiell so: Der Pin, dessen Zustand Du abfragen möchtest, wird im Setup als Eingang definiert, z. B. mit

pinMode (Schalterpin, INPUT_PULLUP);

Dadurch wird der interne (im ATmega) Pull-up-Widerstand aktiviert - wenn sich an dem Pin nichts tut, ist der dadurch automatisch „HIGH". Den Schalter schließt Du so an, dass er - wenn geschaltet - den Pin mit Masse/GND verbindet. Und die Abfrage programmierst Du dann etwa so:

Code: [Select]

...
if (digitalRead(Schalterpin)==0)
  {
    // Hier kommt der Code hin, der ausgeführt werden soll, wenn der Schalter „an" ist
  }
else
  {
    // Hier kommt der Code hin, der ausgeführt werden soll, wenn der Schalter „aus" ist
  }
...


Für das Anschließen der Wippe bedeutet das: Du brauchst zwei Pins, die Du abfragen kannst - einen für „rechts an", einen für „links an". Diese Pins verbindest Du mit jeweils einem der „äußeren" Kontakte, die Mitte kommt an GND. Wenn Du die Wippe dann betätigst, verbindest Du entweder den einen oder den anderen Pin mit GND (wodurch der entsprechende Pin „LOW" wird).

Zum Probieren kannst Du das Schalten mit einer Drahtbrücke simulieren. Konfiguriere irgendeinen Pin als Eingang (... INPUT_PULLUP) und frage dessen Zustand ständig ab. Solange Du nichts weiter mit diesem Pin machst, ist der „HIGH". Wenn Du diesen Pin mit GND verbindest, wird er „LOW".

Ich hoffe, das war verständlich :-)

Gruß

Gregor

Nicht lange fackeln, lass' Backen wackeln! (Seeed)

koko_95

Das Prinzip habe ich jetzt verstanden!
Aber mein Wippschalter ist ja "doppelt", also hat sechs statt drei Anschlüsse... Kann ich die eine Seite einfach ignorieren? :smiley-confuse:

gregorss

Aber mein Wippschalter ist ja "doppelt", also hat sechs statt drei Anschlüsse... Kann ich die eine Seite einfach ignorieren?
Ja, Du benutzt nur entweder den „oberen" Teil der Wippe oder den unteren (nur drei der sechs Anschlüsse).

Gruß

Gregor
Nicht lange fackeln, lass' Backen wackeln! (Seeed)

Go Up