Schieberegister

Gast #3481389
Lesenswert?

Hallo,

kann mir einer weiter helfen?

In meinem Code funktioniert die Tast-Funktion nicht. Sobald ich den Code 
auf das Arduino-Board lade, geht sofort die LED an aber warum? Die soll 
nur aufleuchtrn, wenn auch der Taster gedrückt wird und an bleiben wenn 
der Taster losgelassen wird.

1
int latchPin = 8;
2
int clockPin = 12;
3
int dataPin = 11;
4
int taster = 2;
5

6
int eingabe = B00000001;
7

8
void setup() {
9
  pinMode(latchPin, OUTPUT);
10
  pinMode(clockPin, OUTPUT);
11
  pinMode(dataPin, OUTPUT);
12
  pinMode(taster, INPUT);
13
  digitalWrite(taster, LOW);
14
}
15

16
void loop() {
17
  
18
  digitalWrite(latchPin, LOW);
19
  
20
  if(digitalRead(taster) ==HIGH); {
21
    shiftOut(dataPin, clockPin, MSBFIRST, eingabe);
22
    digitalWrite(latchPin, HIGH); }
23
}
Gast #3481423
Lesenswert?

David schrieb:
> void loop() {
>
>   digitalWrite(latchPin, LOW);
>
>   if(digitalRead(taster) ==HIGH); {
>     shiftOut(dataPin, clockPin, MSBFIRST, eingabe);
>     digitalWrite(latchPin, HIGH); }
> }

Muss das nicht so heißen:
if(digitalRead(taster) == HIGH)
{
     shiftOut(dataPin, clockPin, MSBFIRST, eingabe);
     digitalWrite(latchPin, HIGH);
}

Da war ein Semicolon zuviel!
Gast #3481449
Lesenswert?

Ich kenn die Arduino funktionen nicht, also rate ich mal.

Beim Setup setzt du den Tasterport auf Eingang und low, also ohne 
Pullup.

Wie sind die Taster denn Verdrahtet, legst du den PIN auf High Level 
beim drücken?

Prüde dochmal nach ob harwareseitig alles richtig verdrahtet ist. Was 
für ein Schieberegister nutz du denn?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren