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
Taster schalten LEDs mit Schieberegister
25.03.2018, 20:49 (Dieser Beitrag wurde zuletzt bearbeitet: 25.03.2018 20:53 von Sonne.)
Beitrag #1
Taster schalten LEDs mit Schieberegister
Hallo,
ich möchte einen digitalen Stundenplan bauen. Wenn Taster 1 gedrückt wird, dann sollen die LEDs der Fächer leuchten, die ich am Montag habe, wenn Taster 2 gedrückt wird die für Dienstag usw. (bisher habe ich erst zwei Taster eingebaut).
Insgesamt gibt es 16 Fächer, also 16 LEDs, die ich mittels zweier Schieberegister 4HC595 angschlossen habe. Es ist kein Problem, eine 16-stellige Bitfolge durch die LEDs anzeigen zu lassen.
Probleme habe ich bei der Schaltung durch die Taster. Wenn ich das Programm hochlade und einen der beiden Taster drücke, dann leuchten die entsprechenden LEDs, aber ich kann nicht durch das Drücken des anderen Schalters umschalten. Schön wäre es auch, wenn die LEDs nur so lange an bleiben würde, wie der Taster gedrückt wird.
Hier mein Code:

int shiftPin = 8;
int storePin = 9;
int dataPin = 10;
int Montag=2;
int Dienstag=3;
int musterMo[16] = {1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0};
int musterDi[16] = {0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1};
int statusMo=0;
int statusDi=0;

void setup() {

pinMode(storePin, OUTPUT);
pinMode(shiftPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(Montag, INPUT);
pinMode (Dienstag, INPUT);

}
void loop () {

statusMo=digitalRead(Montag);
statusDi=digitalRead(Dienstag);
if (statusMo == HIGH)
{
for (int i=0; i<16; i++) {
digitalWrite(shiftPin, LOW);
digitalWrite(dataPin, musterMo[i]);
digitalWrite(shiftPin, HIGH);
}
digitalWrite(storePin, HIGH);
}

if (statusDi == HIGH)
{
for (int i=0; i<16; i++) {
digitalWrite(shiftPin, LOW);
digitalWrite(dataPin, musterDi[i]);
digitalWrite(shiftPin, HIGH);
}

digitalWrite(storePin, HIGH);

}
}

(Leider kriege ich den Code nicht anders eingefügt.)
Danke für jeden Hinweis!

Und wo ich gerade dabei bin: Wieso kann ich eigentlich über ein Schieberegister so viele LEDs betreiben ohne den Arduino zu überlasten, obwohl sie doch eigentlich auch alle am gleichen Port hängen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2018, 21:09
Beitrag #2
RE: Taster schalten LEDs mit Schieberegister
Den Sketch kannst du per Code-Tags besser einfügen.
Wie das geht, steht hier.
Du brauchst für jede if-Abfrage einen "else"-Zweig, mit dem du das Schieberegister wieder auf Anfang setzt. Dann gehen die Leds auch wieder aus
Und das Schieberegister hat für jeden Ausgang eigene Treibertransistoren, die deine Leds versorgen.
Allerdings solltest du auch da auf den max. Strom achten. Also das Datenblatt lesen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.03.2018, 20:00
Beitrag #3
RE: Taster schalten LEDs mit Schieberegister
Danke für den Hinweis! Trotz "else"-Zwei ging es zunächst immer noch nicht. Ich habe dann aber hinter jedes "digitalWrite(storePin, HIGH);" noch ein "digitalWrite(storePin, LOW);" gesetzt und jetzt geht es.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.03.2018, 20:08
Beitrag #4
RE: Taster schalten LEDs mit Schieberegister
(26.03.2018 20:00)Sonne schrieb:  Danke für den Hinweis! Trotz "else"-Zwei ging es zunächst immer noch nicht. Ich habe dann aber hinter jedes "digitalWrite(storePin, HIGH);" noch ein "digitalWrite(storePin, LOW);" gesetzt und jetzt geht es.

Naja....das setze ich mal vorraus, wenn man etwas einschaltet muss man es auch wieder ausschalten. Und zwar im "else-Zweig", wo denn sonst ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Mehrere Taster/Schalter entprellen und verwalten MicroBahner 15 734 18.02.2020 15:36
Letzter Beitrag: MicroBahner
  Arduino Taster - Welcher Fehler? lil.chem 4 199 10.02.2020 22:39
Letzter Beitrag: Franz54
  Funktion mit Schieberegister Bau3r 3 167 02.02.2020 12:04
Letzter Beitrag: Tommy56
  Ein Taster mit verschiedenen Funktionen? kama92 21 1.144 14.01.2020 22:40
Letzter Beitrag: kama92
  Taster Keyboard Rauchi 6 299 14.01.2020 13:22
Letzter Beitrag: hotsystems
  Mit einen Taster zwischen zwei Ausgängen Toggeln luft-post 6 287 13.01.2020 17:41
Letzter Beitrag: hotsystems
  Taster machen was sie wollen. StefanBehmenburg 12 698 23.11.2019 16:40
Letzter Beitrag: hotsystems
  MBI5039 16Bit Schieberegister für Videowall Horst2275 2 356 29.10.2019 11:05
Letzter Beitrag: Horst2275
  LEDs mit Touchscreen steuern Mr_Martin 5 772 08.09.2019 22:55
Letzter Beitrag: georg01
  Zeitmessung - Taster gedrückt DEL 14 1.214 08.08.2019 21:25
Letzter Beitrag: Bitklopfer

Gehe zu:


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