Forum: Analoge Elektronik und Schaltungstechnik was passiert in meiner schaltung? oO


von General E. (generalerror)


Angehängte Dateien:

Lesenswert?

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.

von AchDuHimmel (Gast)


Lesenswert?

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?

von Jim Beam (Gast)


Lesenswert?

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...

von General E. (generalerror)


Lesenswert?

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
von foobar (Gast)


Lesenswert?

> int btnTrackSelectPin = 15;
> int btnShiftPin = 14;

Im "Schaltplan" sind die umgekehrt ...

von Egon D. (Gast)


Lesenswert?

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.

von frisch ans Werk (Gast)


Lesenswert?

Egon D. schrieb:
> * (...etc.)

+1 (*****)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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).

von Flitz (Gast)


Lesenswert?

Genau, das würde ich nicht machen!

Masse ist nicht gleich Masse und Ub nicht gleich Ub.

von der schreckliche Sven (Gast)


Lesenswert?

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?

von General E. (generalerror)


Lesenswert?

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
Noch kein Account? Hier anmelden.