Hi ich bin am verzweifeln. Ich habe ja mein haupt-projekt, wo ich 15x 74HC4051 verbaut habe. Läuft alles ganz gut. nun habe ich zu test/debug-zwecken eine neue schaltung mit einem 74HC4051 und 8x schalter gebaut... und siehe da.. nix funktioniert ..oO .. also nochmal alles gecked, ob der IC richtigrum verkabelt ist.. ob alle kabel sitzen.. den code zeile für zeile nochmal durchgegangen.. nix. das poblem ist, dass wenn man einen schalter drückt, an allen 4051-input-pins ein HIGH gemessen wird. ich habe einen weiteren schalter in die schaltung eingebaut, der nicht an den 4051 angeschlossen ist.. wenn ich diesen betärtige, werden ebenfalls alle input-pins des 4051 getriggert.. oO was habe ich da getan? ich quäl mich schon seit einer woche und komme nicht drauf.
General E. schrieb: > ich bin am verzweifeln. Ich habe ja mein haupt-projekt, wo ich 15x > 74HC4051 verbaut habe. Läuft alles ganz gut. Glückwunsch! In welchem Rahmen erfolgt diese Arbeit? > was habe ich da getan? ich quäl mich schon seit einer woche und komme > nicht drauf. Z.B.: VEE nicht angeschlossen nEN nicht angeschlossen Entkopplung vergessen Fehlerfreiheit des Codes hast Du bereits bewiesen? Oder ist der geheim?
VEE + EN gehören schonmal an Masse, damit fängt es mal an. Hast Du die H-Pegel direkt am 4051 gemessen oder ist dein Problem die Software-Auswertung? Was ergibt denn die Messung DIREKT AN DEN Eingangspins des 4051, sind da die Pegelwechsel der Schalter klar und einwandfrei zu messen? Z.B. mit einem simplen Voltmeter? > ich habe einen weiteren schalter in die schaltung eingebaut, der nicht > an den 4051 angeschlossen ist.. wenn ich diesen betärtige, werden > ebenfalls alle input-pins des 4051 getriggert.. oO Dann stimmt an der Hardware GROB etwas nicht! Die aussagekräftig durchzumessen dauert übrigens 5 Minuten und keine Woche! Und mit Verlaub: Es dürfte UNMÖGLICH sein, dies simple Schaltbild noch schlechter und unübersichtlicher zu zeichnen...
Jim Beam schrieb: > VEE + EN gehören schonmal an Masse, damit fängt es mal an. oh shit.. das habe ich auf dem schaltplan vergessen.. sind natürlich beide auf GND > Hast Du die H-Pegel direkt am 4051 gemessen oder ist dein Problem die > Software-Auswertung? Was ergibt denn die Messung DIREKT AN DEN > Eingangspins des 4051, sind da die Pegelwechsel der Schalter klar und > einwandfrei zu messen? Z.B. mit einem simplen Voltmeter? > >> ich habe einen weiteren schalter in die schaltung eingebaut, der nicht >> an den 4051 angeschlossen ist.. wenn ich diesen betärtige, werden >> ebenfalls alle input-pins des 4051 getriggert.. oO > Dann stimmt an der Hardware GROB etwas nicht! > Die aussagekräftig durchzumessen dauert übrigens 5 Minuten und keine > Woche! ja, das ist mir auch bewusst, nachdem ein weiterer schalter irgendwo alle input-pins des 4051 triggert.. nur was? oO > Und mit Verlaub: > Es dürfte UNMÖGLICH sein, dies simple Schaltbild > noch schlechter und unübersichtlicher zu zeichnen... ja sorry :( .. bin echt noch n kompletter neuling.. vielleicht kannst du mir konkreter verraten was ich besser machen könnte. anbei der code:.
1 | int muxPin1 = 2; |
2 | int muxPin2 = 3; |
3 | int muxPin3 = 4; |
4 | int muxPinInh = 5; |
5 | |
6 | // PINS D |
7 | int btnTrackSelectPin = 15; |
8 | int btnShiftPin = 14; |
9 | |
10 | int MuxBit1; |
11 | int MuxBit2; |
12 | int MuxBit3; |
13 | |
14 | bool shiftStatus; |
15 | |
16 | #include <btnTrackSelect.h> |
17 | btnTrackSelect btnTrackSelect[16]; |
18 | |
19 | #include <Bounce.h> |
20 | Bounce btnShift = Bounce(btnShiftPin, 10); // 10 ms debounce |
21 | |
22 | void setup() { |
23 | // 4051 - ctrl |
24 | pinMode(muxPin1, OUTPUT); |
25 | pinMode(muxPin2, OUTPUT); |
26 | pinMode(muxPin3, OUTPUT); |
27 | pinMode(muxPinInh, OUTPUT); |
28 | |
29 | // 4051 - INPUT PINS |
30 | pinMode(btnTrackSelectPin, INPUT); |
31 | pinMode(btnShiftPin, INPUT_PULLUP); |
32 | |
33 | Serial.begin(9600); |
34 | while ( !Serial && (millis() < 4000) ) { |
35 | // .. |
36 | } |
37 | Serial.println("SERIAL PORT INITIALIZED"); |
38 | } |
39 | |
40 | void loop() { |
41 | pollShift(); |
42 | |
43 | for(int i = 0; i <= 7; i++) { |
44 | // count through MUX |
45 | digitalWrite(muxPinInh, HIGH); |
46 | MuxBit1 = bitRead(i, 0); |
47 | MuxBit2 = bitRead(i, 1); |
48 | MuxBit3 = bitRead(i, 2); |
49 | digitalWrite(muxPin1, MuxBit1); |
50 | digitalWrite(muxPin2, MuxBit2); |
51 | digitalWrite(muxPin3, MuxBit3); |
52 | digitalWrite(muxPinInh, LOW); |
53 | delayMicroseconds(40); |
54 | |
55 | btnTrackSelect[i].btnStatus = digitalRead(btnTrackSelectPin); |
56 | |
57 | if (btnTrackSelect[i].btnStatusOld != btnTrackSelect[i].btnStatus) { |
58 | |
59 | Serial.print(i); Serial.print(" : "); Serial.println(btnTrackSelect[i].btnStatus); |
60 | btnTrackSelect[i].btnStatusOld = btnTrackSelect[i].btnStatus; |
61 | } |
62 | } |
63 | |
64 | } |
65 | |
66 | |
67 | /* Polls Shift-Button and sets Status-Var */ |
68 | void pollShift() { |
69 | if (btnShift.update()) { |
70 | if (btnShift.fallingEdge()) { |
71 | shiftStatus = true; |
72 | Serial.println("Shift pressed.."); |
73 | } else { |
74 | shiftStatus = false; |
75 | Serial.println("Shift released.."); |
76 | } |
77 | } |
78 | } |
:
Bearbeitet durch User
> int btnTrackSelectPin = 15; > int btnShiftPin = 14; Im "Schaltplan" sind die umgekehrt ...
General E. schrieb: >> Es dürfte UNMÖGLICH sein, dies simple Schaltbild >> noch schlechter und unübersichtlicher zu zeichnen... Stimmt leider. > > ja sorry :( .. bin echt noch n kompletter neuling.. > vielleicht kannst du mir konkreter verraten was ich > besser machen könnte. * Versorgungsspannungen werden i.d.R. als (waagerecht) durchgehende "Stromschienen" dargestellt, nicht als hundertmal abgeknickte Labyrinthlinien. * Positive Spannungen gehören nach oben. * Negative Spannungen gehören nach unten. * Wenn GND = -Ub, dann ist Masse (GND) unten; ansonsten in der Nähe der Mitte. * Eingänge kommen nach links. * Ausgänge kommen nach rechts. --> Signalflussrichtung ist von links nach rechts. Ist üblich und schön, aber kein Dogma. * Masseverbindungen werden, wo möglich, durch das Massesymbol (dieses umgedrehte große "T") dargestellt. * Schalter und Last werden, wenn möglich, als gerade durchgehender Strompfad dargestellt. Ist kein Dogma, erhöht aber die Übersicht.
Egon D. schrieb: > * Versorgungsspannungen werden i.d.R. als (waagerecht) durchgehende > "Stromschienen" dargestellt, nicht als hundertmal abgeknickte > Labyrinthlinien. Oder noch viel besser: man nimmt diese speziellen Symbole für die Versorgungsspannung(en).
Genau, das würde ich nicht machen! Masse ist nicht gleich Masse und Ub nicht gleich Ub.
General E. schrieb: > das poblem ist, dass wenn man einen schalter drückt, an allen > 4051-input-pins ein HIGH gemessen wird. Hast Du schon daran gedacht, daß der 4051 kaputt sein könnte?
Egon D. schrieb: > General E. schrieb: > >>> Es dürfte UNMÖGLICH sein, dies simple Schaltbild >>> noch schlechter und unübersichtlicher zu zeichnen... > > Stimmt leider. > >> >> ja sorry :( .. bin echt noch n kompletter neuling.. >> vielleicht kannst du mir konkreter verraten was ich >> besser machen könnte. > > * Versorgungsspannungen werden i.d.R. als (waagerecht) > durchgehende "Stromschienen" dargestellt, nicht als > hundertmal abgeknickte Labyrinthlinien. > * Positive Spannungen gehören nach oben. > * Negative Spannungen gehören nach unten. > * Wenn GND = -Ub, dann ist Masse (GND) unten; ansonsten in der > Nähe der Mitte. > * Eingänge kommen nach links. > * Ausgänge kommen nach rechts. > --> Signalflussrichtung ist von links nach rechts. Ist üblich > und schön, aber kein Dogma. > * Masseverbindungen werden, wo möglich, durch das Massesymbol > (dieses umgedrehte große "T") dargestellt. > * Schalter und Last werden, wenn möglich, als gerade durchgehender > Strompfad dargestellt. Ist kein Dogma, erhöht aber die Übersicht. ja super :) lieben dank. ich werde mal einen neuen anfertigen. der schreckliche Sven schrieb: > General E. schrieb: >> das poblem ist, dass wenn man einen schalter drückt, an allen >> 4051-input-pins ein HIGH gemessen wird. > > Hast Du schon daran gedacht, daß der 4051 kaputt sein könnte? ja ich habe den IC mal ausgetauscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.