INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Mal wieder ein Lauflicht
02.05.2015, 00:04
Beitrag #1
Mal wieder ein Lauflicht
Hallo liebe Arduino Community,

da ich recht neu in der Szene bin, benötige ich etwas Hilfe.

vielleicht hab ihr schon mal die neueren audis gesehen und das lauflicht in den blinkern gesehen. habe vor dieses nachzubauen.

gegeben sind:
-2x 9 LEDs (wovon 9 von links nach rechts und 9 von rechts nach links laufen sollen)
-2 Eingänge (zb Taster, die mir jeweils nur eine möglichkeit abrufen
-T1 --> LED 1-9 - rechts nach links
-T2 --> LED 10-18 - links nach rechts
-dann dachte ich an 4x 74HC595 Shift Register

-notfalls wäre auch möglich 2 Shift register und je nur 8 LEDs

Danke im Vorraus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.05.2015, 08:46 (Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2015 08:49 von Gelegenheitsbastler.)
Beitrag #2
RE: Mal wieder ein Lauflicht
Deine Anforderung verstehe ich nicht ganz. Sollen die LEDs nacheinander 1-18 aufleuchten oder jeweils als Paar gleichzeitig (1+10, 2+11...) ?

Mir persönlich wäre das mit den Schieberegistern zu kompliziert. Der Pro Mini (Klon) hat 14 + 6 I/O Pins. Das passt doch wunderbar für 18 LEDs und 2 Taster.

Wenn T1 gedrückt, LED1 HIGH, delay, LED1 LOW, delay.....
Wenn T2 gedrückt, LED10 HIGH, delay, LED10 LOW, delay...

Das setzt aber voraus, dass die LEDs nacheinander leuchten sollen. Wenn noch mehr Aufgaben für den Arduino anstehen, nimmst Du halt einen zweiten für die weiteren Aufgaben. Bei einem Stückpreis von deutlich unter 2 Euro sollte das kaum ins Gewicht fallen.

Wichtig wäre auch zu wissen, was für LED es sind. Du musst bedenken, dass (aus dem Kopf nicht aus dem Datenblatt) pro Pin nur maximal 40 mA fließen dürfen. Weniger wäre besser. In Summe über alle Pins nur maximal 200 mA.

Das wird wahrscheinlich auf eine Ansteuerung per Transistor hinaus laufen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.05.2015, 10:27
Beitrag #3
RE: Mal wieder ein Lauflicht
(02.05.2015 00:04)Legolas085 schrieb:  gegeben sind:
-2x 9 LEDs (wovon 9 von links nach rechts und 9 von rechts nach links laufen sollen)
-2 Eingänge (zb Taster, die mir jeweils nur eine möglichkeit abrufen
-T1 --> LED 1-9 - rechts nach links
-T2 --> LED 10-18 - links nach rechts
-dann dachte ich an 4x 74HC595 Shift Register
Hi,
Du brauchst auch noch 18 Vorwiderstände. Außerdem würde ich das Teil hier nehmen, dann brauchst Du keine extra Transistoren oder so als LED-Treiber: http://www.ti.com/lit/ds/symlink/tpic6b595.pdf.
Die Stromversorgung der LEDs sollte nicht über den Arduino gehen. Besser ist es, alles mit einem gemeinsamen geregelten (!) 5V-Netzteil zu versorgen.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.05.2015, 12:18
Beitrag #4
RE: Mal wieder ein Lauflicht
also das mit "porno" blinker ist so richtig.
genau so soll das werden.

derzeit habe ich dieses sketch:

/*
Button

Turns on and off a light emitting diode(LED) connected to digital
pin 13, when pressing a pushbutton attached to pin 2.


The circuit:
* LED attached from pin 13 to ground
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground

* Note: on most Arduinos there is already an LED on the board
attached to pin 13.


created 2005
by DojoDave <http://www.0j0.org>
modified 30 Aug 2011
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/Button
*/

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
int clockPin = 12; //IC Pin 11, Yellow Jumper
int dataPin = 11; //IC Pin 14, Blue Jumper
int latchPin = 8; //IC Pin 12, Green Jumper

byte patterns[30] = {
B00000001, 100,
B00000011, 100,
B00000111, 100,
B00001111, 100,
B00011111, 100,
B00111111, 100,
B01111111, 100,
B11111111, 100,
B00000000, 100,
};

int index = 0;
int count = sizeof(patterns) / 2;

void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}// setup

void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH)
{
// turn LED on:
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, patterns[index * 2]);
digitalWrite(latchPin, HIGH);
delay(patterns[(index * 2) + 1]);
index++;
if (index >= count){
index = 0;
}//if2
//loop2
}//if

else {
// turn LED off:
digitalWrite(latchPin, HIGH);
}
}



aber wie schon erwähnt, anfänger und habe hier 2 programme in einem vereint.
LEDs leuchten schon mal so wie sie sollen, allerdings gehen sie erst aus wenn ich den "Taster" betätige. soll aber umgekehrt sein. und irgendwie wird nicht resettet, also LEDs fangen da an zu leuchten wo sie vorher aufgehört haben.


zu dem mini pro... der originale hat keine 20 ausgänge, kann das sein?
habe den gefunden:
http://www.ebay.de/itm/1-2-5-10-Stuck-Ar...0463&rt=nc
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.05.2015, 07:03 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2015 07:08 von Gelegenheitsbastler.)
Beitrag #5
RE: Mal wieder ein Lauflicht
Versuch es doch einfach mal mit ganz simplen If-Anweisungen, so wie ich es vorgeschlagen habe. Die sind relativ simpel aufgebaut und tun letztlich genau das, was Du willst. Auch wenn es programmiertechnisch eleganter ginge hast Du doch genau das, was Du wolltest.

Anfangen würde ich mit einem Taster und einer LED und so lange rumprobieren, bis die LED genau das macht, was sie soll, wenn der Taster gedrückt oder los gelassen wird. Dann nach und nach ergänzen um weitere LEDs und den zweiten Taster und zum Schluss hast Du Deinen Blinker.

So zumindest bin ich die Projekte, die ich bisher alleine (in Hard- und Software) gebaut habe, angegangen. Da sie laufen, kann die Vorgehensweise so falsch nicht sein.

Wenn es denn dann wirklich mal haken sollte, zeig Deinen bisherigen Ansatz und dann wird Dir hier bestimmt geholfen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.05.2015, 18:25
Beitrag #6
RE: Mal wieder ein Lauflicht
Code:
else {
// turn LED off:
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, 0);
  digitalWrite(latchPin, HIGH);
  index = 0;
}
...außerdem kann es sein, dass Du den Button falsch angeschlossen hast, also ohne Pulldown-Widerstand.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.05.2015, 22:53
Beitrag #7
RE: Mal wieder ein Lauflicht
Hallo,
ja hatte tatsächlich keinen widerstand, warte momentan auf bestellung, da ich diese nicht vorrätig habe.

... so ähnlich hab ich meinen code nun auch:
else {
index = 0;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, patterns2[index * 2]);
digitalWrite(latchPin, HIGH);
}

funktioniert dies auch?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.05.2015, 08:38
Beitrag #8
RE: Mal wieder ein Lauflicht
(04.05.2015 22:53)Legolas085 schrieb:  ja hatte tatsächlich keinen widerstand, warte momentan auf bestellung, da ich diese nicht vorrätig habe.
Tatsächlich braucht man keinen. Schau Dir mal INPUT_PULLUP an.

Zitat:... so ähnlich hab ich meinen code nun auch:
else {
index = 0;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, patterns2[index * 2]);
digitalWrite(latchPin, HIGH);
}
funktioniert dies auch?
Probier's doch einfach aus.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  mal wieder ein kleines Problem mit blinken ohne delay :) Sbbfreack 6 1.734 06.07.2015 15:59
Letzter Beitrag: Sbbfreack
  wieder mal: Problem mit arrays als Fkt.-Parameter HaWe 13 1.264 13.05.2015 09:29
Letzter Beitrag: Thorsten Pferdekämper
Question Bei Led Lauflicht delay ersetzen partizan0180 27 5.578 12.03.2015 19:35
Letzter Beitrag: partizan0180
Question Mal wieder eine kleine Frage von mir aus Interesse Darkon 8 1.259 11.01.2015 12:56
Letzter Beitrag: Darkon
  Lauflicht zwei Richtungen mit 2 Tastern Hansl 18 3.040 26.12.2014 08:30
Letzter Beitrag: aoLaopsa
  Codeschloss wieder schließen Nanouk75 1 859 05.05.2014 21:07
Letzter Beitrag: Nanouk75

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste