Guten Abend.... Ich bin Anfänger auf dem Gebiet der Microcontroller und C-Programmieren. Vor ca. " Wochen habe ich mir einen Arduino UnoR3 und das Buch "Die Elektronische Welt mir Arduino" zugelegt und mit diversen Bauteilen und Sketches experimentiert. Jetzt stehe ich vor dem Problem, 8 Schalter über ein "M74HC165AN" mit meinem Arduino zu speisen. Ich habe mir schon einige Anleitungen im Internet angesehen und auch 3 verschiedene davon aufgebaut und damit experimentiert. Schlussendlich bin ich auf die Idee gekommen den "shiftIn"-Befehl in einem ganz einfachen Code zu verwenden.
1 | int PLOADPIN = 13; |
2 | int CLOCKPIN = 12; |
3 | int DATAPIN = 11; |
4 | int VAR1; |
5 | void setup(){ |
6 | Serial.begin(9600); |
7 | pinMode(PLOADPIN, OUTPUT); |
8 | pinMode(CLOCKPIN, OUTPUT); |
9 | pinMode(DATAPIN, INPUT); |
10 | }
|
11 | |
12 | void loop(){ |
13 | digitalWrite(PLOADPIN, LOW); |
14 | delayMicroseconds(20); |
15 | digitalWrite(PLOADPIN, HIGH); |
16 | |
17 | VAR1 = shiftIn(DATAPIN, CLOCKPIN, MSBFIRST); |
18 | Serial.println(VAR1, BIN); |
19 | Serial.println("--------"); |
20 | delay(1000); |
21 | }
|
...Clock-Enable des "165" habe ich an Masse geschlossen... Leider klappt das nicht so ganz: Es scheint als würde erst ein LOW eingelesen und dann erst die Schalter. Das letzte Bit(7) wird nicht mal mehr berücksichtigt. Kann mir bitte jemand erklären was hier passiert? Kann den Fehler nicht erkennen. Danke schon mal! Gruß Philipp