Multiplexer 74HC4051

Hallo zusammen und Mahlzeit,

bin neu hier im Forum und suche Hilfe zum Thema Multiplexer.

Also, ich möchte 4 NTC Widerstände ( 10K ) an einen Analog Pin ( A7) des Arduino Nano anschließen, per serial.Print auslesen und diese Werte dann im Arduino verarbeiten und zur Steuerung eines DC - Motors via H-Brücke verwenden.

Im Endeffekt sollte es dann so aussehen, das wenn einer der 4 Werte einen Vorgabewert überschreitet sich der Motor einschaltet und wenn wiederum ein Vorgabewert unterschritten wird sich der Motor wieder ausschaltet. Es muss kein PWM -Signal ausgegeben werden für den Motor - er soll einfach einschalten und wieder abschalten können abhängig von den NTC Werten.

Zu den Bauteilen:

  1. Arduino Nano V3
  2. 4 Kanal Optokoppler ILQ 621GB ( schaltet die H - Brücke )
  3. 2 P-Kanal Mosfet´s IRF9530
  4. 2 N-Kanal Mosfet´s IRFZ44N
  5. Multiplexer 74HC4051P
  6. 4 NTC mit 10K
  7. 2 Taster ( Links drehender Motor , rechts drehender Motor)
  8. 2 Gabellichtschranken HOA 0865-L51 ( Endschalter links, Endschalter rechts )

Die Schalter anschließen und der Sketch für eine LED funktionieren.
Die Lichtschranken anschließen und als Schalter für eine Led zu nutzen funktioniert auch mit Sketch.
Die H-Brücke mit Sketch funktioniert auch.
NTC als Schalter funktioniert auch.

ABER EBEN 4 NTC VIA MULTIPLEXER AN EINEN ANALOG PIN AUSLESEN UND DEN MOTOR WERT ABHÄNGIG ANSZUSTEUERN DAS GEHT MIR NICHT IN DEN KOPF !!!!!

Das auslesen der Zustände der NTC Widerstände ist da nicht das Problem, aber die Verarbeitung der Werte bereitet mir Kopfschmerzen.

Vielleicht hat jemand einen Sketch Vorschlag der mir weiterhelfen kann.

Danke schon mal, Michael

Und warum schreist du so ?
In kompletten Sätzen Großbuchstaben zu verwenden gilt als schreien und sollte hier tunlichst unterlassen werden.

Und um dein Problem besser zu umschreiben, solltest du ein Schaltbild liefern, damit wir dich auch besser verstehen.

Edit:
Und warum machst du das mit dem Multiplexer und nicht mit 4 analogen Pins ?
An Pins sparst du nicht richtig was.

Sorry, das wollte ich nicht das ich schon beim ersten mal Mist baue !!

Das Schaltbild muss ich erst zeichnen - es existiert nur in meinem Kopf.

Naja, was passiert wenn 2 Analog Pins zugleich ansprechen ?
Ich denke das es für die interne Steuerung des Arduino einfacher ist -wenn an einem Pin 4 Werte eingelesen und verarbeitet werden müssen als wenn 4 Pins je einen Wert senden der verarbeitet werden muss und im Endeffekt immer die gleichen Ausgangs Pins angesteuert werden müssen.

Daher:

Einschaltpunkt wäre zb. 190 und Ausschaltpunkt zb. 150

Also, A0 sendet als Werte:( nur Beispiel )

0 211 0 198 0 33 0 450 ( am Seriellen Monitor via Multiplexer am Pin A0 )

Angesteuert wird ein Digital Out nun aufgrund von mehreren Werten die den Einschaltpunkt überschritten haben.

Wird nun A0, A1, A2, A3 als Eingangs Pins verwendet:

A0 = 211, A1 = 198, A2 = 33, A3 = 450

So würden ja 3 Pins intern den gleichen Ausgangs Pin des Arduino ansteuern.

Kann das der Arduino dann noch verarbeiten, wenn mehrere Pins das gleiche mit einem Ausgangs Pin machen wollen, oder ist das eine reine Software Sache und stellt für den Arduino kein Problem dar ?????

Gruß Michael

Ps: Ich möchte mir die Elektronik mittels Arduino zum Hobby machen und bin noch totaler Anfänger, also sorry wenn dumme Fragen kommen. Jetzt gehts ans Schaltplan zeichnen und sobald er fertig ist wird er gepostet.

Michael1972:
Im Endeffekt sollte es dann so aussehen, das wenn einer der 4 Werte einen Vorgabewert überschreitet sich der Motor einschaltet und wenn wiederum ein Vorgabewert unterschritten wird sich der Motor wieder ausschaltet.

Die Aufgabenstellung ist in sich ein Widerspruch, also nicht realisierbar.

Wenn 1 Wert überschreitet, sind wohl die anderen 3 Werte noch darunter. Damit wäre Ein- und Ausschaltbedingung gleichzeitig erfüllt und der Ausgang flattert zwischen ein und aus.

Gruß Tommy

Im Endeffekt sollte es dann so aussehen, das wenn einer der 4 Werte einen Vorgabewert überschreitet sich der Motor einschaltet und wenn wiederum ein Vorgabewert unterschritten wird sich der Motor wieder ausschaltet. Es muss kein PWM -Signal ausgegeben werden für den Motor - er soll einfach einschalten und wieder abschalten können abhängig von den NTC Werten.

wert1 = analogRead(A0);
...
wert4 = analogRead(A3);


if( wert1> linit ||wert2> linit ||wert3> linit ||wert4> linit ) 
   Motor Einschalten 
else 
   Motor ausschalten

Ich rate Dir ab eine H-Brücke mit einzelnen Mosfets aufzubauen. Nimm dazu eine fertige H-Brücke.

Grüße Uwe

Hallo Uwe,

gibt es fertige H - Brücken die 12V 10 Ampere aushalten ??

Ich möchte Dir einen Mini Sketch zukommen lassen der einwandfrei funktioniert:

  • Ein NTC steuert hier den Ein - Ausschaltpunkt eines 2 Pin Lüfters.
  • Weiters wie versprochen das Schaltbild.

Ich denke das es auch mit 4 NTC Widerständen via Multiplexer möglich sein wird einen Motor so anzusteuern.

Und noch eine Frage: wo liegt der Unterschied zwischen – 4 Werten an 4Eingängen
und
4 Werten an einem Eingang
???

Vier Werte sind vier Werte und müssen verarbeitet werden, egal von wo sie kommen denke ich mir, oder bin ich da komplett am Holzweg.

1.PNG

Hi

Warum einen Sketch als Bild? (1.PNG)

MfG

Da frage ich mich auch immer, ob das Kopieren von Text (auch Fehlermeldungen) in den Forumseditor so schwer ist, dass manche gedankenlos Bilder draus machen müssen, weil sie das nicht gebacken bekommen.

Gruß Tommy

Hi

Ok - dann will ich Mal ein Lanze für Linux brechen:
Text markieren, das Programm/die Seite, wo dieser Text hin soll, öffnen
Mittlere Maustaste dahin klicken, wo der Text hin soll
fertig

Ganz ohne 'RMB' kopieren, 'RMB' einfügen

Blöd halt, wenn man die URL-Zeile im Browser markiert, um Diese zu löschen, ist genau diese Zeile in der Zwischenablage, Die man mit der mittleren Maustaste einfügt.
Zumindest bei Linux Ubuntu & Mint (basieren Beide auf Debian, ggf. deshalb) und man kann sich daran gewöhnen - alleine in der Win-VM Texte kopieren ist 'nicht immer leicht' ... zumindest danach :wink:

Zu MEHR bin ich in der Linuxwelt noch nicht gekommen - also Ubuntu und Mint - gibt noch tausende andere Linux-Varianten.

MfG

Ich weiß auch nicht, warum immer das Mausschubsen bemüht wird? +C und +V tun es doch auch.

Gruß Tommy

Michael1972:
Hallo Uwe,

gibt es fertige H - Brücken die 12V 10 Ampere aushalten ??

Ich möchte Dir einen Mini Sketch zukommen lassen der einwandfrei funktioniert:

  • Ein NTC steuert hier den Ein - Ausschaltpunkt eines 2 Pin Lüfters.
  • Weiters wie versprochen das Schaltbild.

Ich denke das es auch mit 4 NTC Widerständen via Multiplexer möglich sein wird einen Motor so anzusteuern.

Und noch eine Frage: wo liegt der Unterschied zwischen -- 4 Werten an 4Eingängen
und
4 Werten an einem Eingang
?????

Vier Werte sind vier Werte und müssen verarbeitet werden, egal von wo sie kommen denke ich mir, oder bin ich da komplett am Holzweg.

Ja, es gibt fertige H-Brücken für diese Werte.

Ich verstehe nicht wieso Du eine H-Brücke brauchst wenn Du einen Lüfter nur ein und ausschalten willst. (nicht Drehrichtung ändern). Dazu genügt ein Logic Level MOSFET wie der IRLZ44.

Der Vorteil von 4 analogen Eingängen ist, daß Du keinen Analogmultiplexer dazwischen hast und diesen auch nicht ansteuern mußt. Weniger Teile heißt weiger Teile die kaputgehen können oder Probleme machen.

Grüße Uwe

Hi Uwe, du scheinst der einzige zu sein der normale Antworten geben kann !!

Die H-Brücke möchte ich verwenden weil ich aus dieses Schaltungs Konzept dann in weiterer Folge in eine Garagentor Steuerung mit 433 Mhz Sender und natürlich Empfänger ausbauen möchte und weil ich wissen will ob mein Anfänger wissen und Deine Hilfe uns ans Ziel bringen. Die NTC´s werden dann als Thermo - Schalter fungieren.

Was wäre eine passende " fertige H-Brücke " , bekomm ich sowas bei Co....ad oder Reic....elt zu kaufen ??

Ich möchte mich bei Dir bedanken für Deine Antworten , denn es sind Antworten die brauchbar sind und mit denen ich als Anfänger auch was anfangen kann !!!!

Grüße, Michael

PS: Ist der Schaltplan soweit korrekt oder habe ich Bauteile vergessen oder falsche Leitungen gezogen ??
Wenn dieser korrekt ist werde ich das ganze mal aufs Steckbrett übertragen und eventuell eine fertige
H-Brücke darauf verbauen, wäre weniger Kabel Salat und wie Du sagst logischer Weise weniger
Fehlerquellen.

Ach ja, ich wollte ja noch den Sketch als Text zukommen lassen.

Sketch NTC als Schalter

int ntcWert;

void setup() {
 
 pinMode(12, OUTPUT);
 Serial.begin(1200);
}

void loop() {
 ntcWert = analogRead(A1);
 Serial.println(ntcWert);

 if (ntcWert > 120){
   digitalWrite(12, HIGH);
 }
 else 
 
   if (ntcWert < 110){
   digitalWrite(12, LOW);
   }
   
   }

Lichtschranke als Schalter

int lsPin = A1;
int lsValue = 0;
int luefterPin = 12;

void setup()
{ 
pinMode(luefterPin, OUTPUT);
Serial.begin(1200);
}

void loop()
{ 
lsValue = analogRead(lsPin);
Serial.println(lsValue);

if (lsValue < 50) {
digitalWrite(luefterPin, LOW);
}
else 
 if(lsValue > 600){
digitalWrite(luefterPin, HIGH);
}
}

Diese beiden Sketche funktionieren einwandfrei.

Der H-Brücken Sketch wird noch geschrieben und sobald er fertig ist sende ich ihn Dir.

Grüße, Michael

Setze den Sketch bitte in Codetags(</>-Button im Forumseditor). Dann ist er für alle besser lesbar.
Das kannst Du auch hinterher noch korrigieren - Sketch markieren und </> drücken.

Gruß Tommy

Michael1972:
.....

PS: Ist der Schaltplan soweit korrekt oder habe ich Bauteile vergessen oder falsche Leitungen gezogen ??
Wenn dieser korrekt ist werde ich das ganze mal aufs Steckbrett übertragen und eventuell eine fertige
H-Brücke darauf verbauen, wäre weniger Kabel Salat und wie Du sagst logischer Weise weniger
Fehlerquellen.

Ich sehe kein Schaltbild.

Und wenn du 4 analoge Pins zum Einlesen deines Projektes verwendest, ist der Programmieraufwand für dich einfacher, als noch zusätzlich einen Multiplexer zu steuern. Wie du schreibst, hast du da keine Idee.

HotSystems:
IUnd wenn du 4 analoge Pins zum Einlesen deines Projektes verwendest, ist der Programmieraufwand für dich einfacher, als noch zusätzlich einen Multiplexer zu steuern.

Genau. Wozu der Multiplexer vor dem eingebauten Multiplexer?