Hilfestellung bei drei Schieberegistern und 20 LED´s
könnte mir jemand unter die Arme greifen beim Verstehen helfen??
Ich habe 20 LED´s an drei Schieberegister Angeschlossen (74HC595) .....
Ziel ist es das alle LED nach ein nach einander angehen und bei der 20ten LED angekommen gehen alle wieder aus!
Ich komm aber mit der Bit Geschichte nicht klar, das will nicht in mein Kopf rein -.-
Ich denke ich hab verstanden das ich zuerst das dritte Schieberegister ansprechen muss, das es die letzte LED anmacht
weil ja immer durchgereicht wird ....
Dann bekomm ich auch noch nicht hin bzw, versteh ich´s nicht ganz, das bei mir alle drei Schieberegister das gleiche machen!
Kann mir da jemand Licht ins Dunkle bringen ?
Mfg Benny
Liste der Anhänge anzeigen (Anzahl: 2)
ja sisor hab es richtig verbunden denke ich, habe es nach diesem Schaltbild ausgebaut:
Anhang 27830
das is mein code dazu, habe ihn schon von zwei auf drei Schieberegister geändert:
hier der code:
Code:
//Pin connected to ST_CP of 74HC595
int latchPin = 4;
//Pin connected to SH_CP of 74HC595
int clockPin = 3;
////Pin connected to DS of 74HC595
int dataPin = 2;
void setup()
{
//set pins to output because they are addressed in the main loop
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop()
{
int data1 = 256;
int data2 = 1;
int data3 = 2;
for(int i=0; i<8; i++)
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, data1 >>8);
shiftOut(dataPin, clockPin, MSBFIRST, data2 & 255);
shiftOut(dataPin, clockPin, MSBFIRST, data3 & 255);
digitalWrite(latchPin, HIGH);
data1*=2;
data2*=2;
data3*=2;
delay(1000);
}
}
wie gesagt vom Code her das die LED einzeln nacheinander angehen erstmal ned schlimm, erstmal verstehen das alle nacheinander angehen.
@ besserwessi,
ja das hab ich verstanden das ich zuerst das letze ansprechen muss und dann das vorletzte und dann das erste,
aber wie ich das umsetze O.o
hier noch ein Bild wie es im echten aussieht:
Anhang 27831
Liste der Anhänge anzeigen (Anzahl: 1)
also man muss void loop() durch void ledLine() ersetzen, nur mit while(1); geht es nicht ?
okay dann muss ich mir das bei wiki oder so mit den bit und Byte nochmal genau anschauen und durchlesen.
Ah ja Elektrotechnik studiert, daher weht der Wind, ich als Konstrukteur beherrsche nur die Technische Seite ;)
Könnte man erahnen wenn mein mein Roboter genauer anschaut, wie schon erwähnt, muss mal ne ruhige Minute
finden und ein ausführlichen Bericht schreiben, bzw hier im Forum vorstellen.
Aber so langsam wird's :)
Die 20 LED´s dienen dazu mir ein Ladebalken zu erstellen, wenn ich die Fernsteuerung meines Roboter RSL-7 einschalte,
bis alle Systeme gebootet und hochgefahren sind, anzeigt.
Habe mir folgendes bei Reichelt bestellt:
Anhang 27832
Das ihr auch wisst für was die 20 LED gut sind :)
Wenn dann die Arduinos und die Funkmodule da sind und der LED Ladebalken auch .... gehts mächtig ans löten und basteln :)