Schieberegister 74HC595 an analoge Pins?

Hallo alle zusammen.

Ich wollte gerade mich nochmal an das Schieberegister machen für ein neues Projekt und hatte erstmal ein Testprogramm was ich noch von damals hatte auf mein Schieberegister geschickt.
Hat auch alles funktioniert. Jetzt wollte ich aber die drei Pins (DatenPin, SpeicherPin und TaktPin) nicht auf Pin 8,9 und 10 haben sondern auf A0, A1 und A2 (Arduino UNO). Als ich das geändert hatte, leuchtete aber keine meiner LED's mehr. :frowning:
Deswegen meine allgemeine Frage:
Kann man das Schieberegister auf die analogen Pins legen?

Hier mein Code:

//Variablen
int i;

// SHCP //gelb
int TaktPin = A1;

//STCP //blau
int SpeicherPin = A2;

//SD //grün
int DatenPin = A3;

int ZustandEins = 0;

byte LedMusterEins[] =
{
  B10000000,
  B01000000,
  B00100000,
  B00010000,
  B00001000,
  B00000100,
  B00000010,
  B00000001,
};

void setup()
{
  pinMode(DatenPin, OUTPUT);
  pinMode(TaktPin, OUTPUT);
  pinMode(SpeicherPin, OUTPUT);
}

void loop()
{
  MusterEINS();
}

void MusterEINS()
{
  digitalWrite(SpeicherPin,LOW);
  shiftOut(DatenPin,TaktPin,MSBFIRST,LedMusterEins[ZustandEins]);
  digitalWrite(SpeicherPin,HIGH);
  ZustandEins = (ZustandEins +1 ) % 8;
  delay (500);
}

Ich würde mich über Antworten freuen.
MFG

Da die analogen Pins ebenso als digitale Pins arbeiten können, sollte das funktionieren.
Evtl. machst du ja noch einen anderen Fehler. :wink:
Prüfe mal die Verdrahtung oder dein Steckbrett.

HotSystems:
Da die analogen Pins ebenso als digitale Pins arbeiten können, sollte das funktionieren.

Genau das habe ich mir auch gedacht.
Aber dann wechsel ich einfach die Pins und zack… es funkt nicht mehr.
Es ist auch alles richtig eingesteckt. Schließlich funktioniert es wenn ich auf die Pins 8, 9 und 10 gehe. Ich mache nicht mehr als diese drei Kabel am Arduino umzustecken.

Hab den Fehler gefunden. So dumm muss man erstmal sein.
Anstatt auf A0, A1 und A2 habe ich auf A5, A4 und A3 angeschlossen. ich dachte es würde von links nach rechts hoch gezählt werden. Nicht andersherum. Naja das passiert wohl wenn man den Arduino was länger nicht mehr in der Hand hat.

Alles klar....prima dass es jetzt geht.
Die Pins sollten eigentlich beschriftet sein.

HotSystems:
Alles klar....prima dass es jetzt geht.Die Pins sollten eigentlich beschriftet sein.

Sind sie auch. Man muss nur lesen können :smiley:

Diese Schieberegister kann man viel schneller per SPI treiben, und da SPI ein Bus ist kann man auch noch andere IC am SPI haben.

Und noch ein Hinweis, falls du einen Arduino mit Atmega328p hast, bei dem auch die Pins A6 und A7 vorhanden sind: Diese beiden Pins sind rein Analog, digitalWrite und digitalRead sind bei diesen nicht möglich

Verzweifler:
.....
Und noch ein Hinweis, falls du einen Arduino mit Atmega328p hast......

Hat er doch geschrieben, es ist ein Uno.

Allerdings wundert mich jetzt doch, dass es funktioniert.
Im Eingangspost schreibt der TO, er nutzt Pin A0, A1 und A2, im Sketch wird aber A1, A2 und A3 verwendet.

@TO
Da ist noch etwas faul.

HotSystems:
Da die analogen Pins ebenso als digitale Pins arbeiten können, sollte das funktionieren.

Wenn man es genau nimmt es ist anders herum :wink: Alle Pins sind erst mal Digital-Pins. Alles andere sind Zusatzfunktionen

Hi

Bis auf A6/A7 beim Nano - da haben 'se die Grundfunktionen eingespart und nur die Zusätzlichen drin gelassen - oder so :slight_smile:

MfG

Serenifly:
Wenn man es genau nimmt es ist anders herum :wink: Alle Pins sind erst mal Digital-Pins. Alles andere sind Zusatzfunktionen

Mag sein, dass Atmel das so gebaut hat. Dann hat Arduino hier aber einen Bock geschossen. :wink:

HotSystems:
Im Eingangspost schreibt der TO, er nutzt Pin A0, A1 und A2, im Sketch wird aber A1, A2 und A3 verwendet.

@TO
Da ist noch etwas faul.

Ich habs jetzt sowieso auf A5, A4 und A3 umgelegt und diesmal auch richtig angeschlossen.
Es funktioniert jetzt einwandfrei.
Aber stimmt schon hatte das im Sketch falsch. Gut, dass es aufmerksame Leser gibt :wink:

scaniagigaliner:
Ich habs jetzt sowieso auf A5, A4 und A3 umgelegt und diesmal auch richtig angeschlossen.
Es funktioniert jetzt einwandfrei.

Aber nur so lange du I2C in deinem Projekt nicht benötigst.