Forum: Mikrocontroller und Digitale Elektronik Zwischen Potentiometer und Microcontroller umschalten


von Tom M. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich suche nach einer einfachen Möglichkeit, eine Motordrehzahlsteuerung 
über einen Mikrocontroller (ESP32 wäre praktisch) zu steuern, aber auch 
weiterhin über das original Potentiometer.

Der Motor steht still, wenn das Poti auf 5k Ohm steht (Mittelstellung), 
0 Ohm und 10k Ohm entspricht Vor- und rückwärts. Das Poti ist vermutlich 
als Spannungsteiler angeschlossen und ein Mikrocontroller (ATTINY85, 
Wischer vom Poti ist an einem Analog-Input, 0-5V) misst die Spannung und 
regelt den Motor entsprechend.

Nun würde ich gerne eine Schaltung erstellen die wie eine Weiche 
funktioniert. Ist mein eigener Mikrocontroller ausgeschaltet oder sendet 
kein Signal, dann soll das Potentiometer durchgeleitet werden. Ist der 
Mikrocontroller eingeschaltet und sendet ein Signal, dann soll 
stattdessen dieses durchgeleitet werden.

Ich habe leider wenig Ahnung von Elektrotechnik – wie man sicher schon 
heraushören kann – daher wäre ich sehr dankbar über ein paar 
Denkanstöße, Ideen oder Begriffe die ich gut googeln kann :)

Habe selbst schon mal gesucht und bin dabei auf Analogschalter gestoßen.
Ich weiß nur nicht, ob das eine 'gute' Lösung ist bzw. ob sie überhaupt 
funktioniert...

Ein weiteres Problem wird die unterschiedliche Spannung zwischen ESP32 
und ATTINY85 sein. Wenn ich den integrierten DAC vom ESP32 verwenden 
möchte, dann muss ich vermutlich das Signal von 3.3V auf 5V verstärken? 
Oder lieber ein Digitalpotentiometer verwenden?

Danke!

Viele Grüße

Tom

von HildeK (Gast)


Lesenswert?

Wenn es so ist, dass die Motorsteuerung eine analoge Spannung zwischen 
0V und 5V benötigt, dann kann man das gut mit einem Analogschalter 
lösen.

Und du vermutest auch richtig, dass das DAC-Ausgangssignal nicht mehr 
als 3.3V haben wird. Es ist also ein Verstärker notwendig.
Dazu kann man einen R2R Operationsverstärker nehmen, der als nicht 
invertierender Verstärker beschaltet wird mit v = 5/3.3 und natürlich 
mit 5V betrieben werden muss. Hier findest du unter b) die Schaltung: 
https://www.mikrocontroller.net/articles/Operationsverst%C3%A4rker-Grundschaltungen#Grundbeschaltung_mit_Berechnung

Ebenso mit 5V muss der Analogschalter versorgt werden.
Ein CD4066 hat z.B. vier Schalter im Gehäuse. Du musst zwei mit den 
Controleingängen betreiben, die jeweils gegenphasig angesteuert werden. 
Einen in Reihe zum OPA, einen in Reihe zum Poti-Schleifer.

von Georg (Gast)


Lesenswert?

Tom M. schrieb:
> Das Poti ist vermutlich
> als Spannungsteiler angeschlossen

Für eine brauchbare Lösung müsste man das schon genau wissen. Wird 
dagegen der Widerstand gemessen, wird das schwieriger, weil ein 
Prozessor nicht ohne weiteres einen Widerstand simulieren kann. Und man 
muss auch wissen, welche Spannungen am Poti anliegen (können), sonst 
kann man die vorhandene Steuerung beschädigen.

Georg

von Wolfgang (Gast)


Lesenswert?

Tom M. schrieb:
> Nun würde ich gerne eine Schaltung erstellen die wie eine Weiche
> funktioniert. Ist mein eigener Mikrocontroller ausgeschaltet oder sendet
> kein Signal, dann soll das Potentiometer durchgeleitet werden. Ist der
> Mikrocontroller eingeschaltet und sendet ein Signal, dann soll
> stattdessen dieses durchgeleitet werden.

Meinst du nicht, dass es einfacher wäre, per Software zwischen 
berechneten Werten aus deinem µC und Potiwerten umzustellen?

Dann kämest du mit einem Widerstand und einem Kondensator aus.

von Frank K. (fchk)


Lesenswert?

Ganz andere Idee:

Es gibt Potis, die Du per Hand drehen kannst, die aber auch per Motor 
gedreht werden können. Werden bei Mischpulten etc eingesetzt.

Kurzes Googeln ergibt:

https://www.amazon.de/stereo-RK16812MG-Dreh-Poti-10KBx2-linear/dp/B00SLQT092

fchk

von Tom M. (Gast)


Lesenswert?

HildeK schrieb:
> Wenn es so ist, dass die Motorsteuerung eine analoge Spannung zwischen
> 0V und 5V benötigt, dann kann man das gut mit einem Analogschalter
> lösen. ...

Super, vielen Dank! Das hilft mir schon enorm weiter. Ich werde die 
Begriffe mal nachschlagen und hoffen das ich alles verstehe. Ob es 
wirklich 0-5V sind, werde ich mal messen. Ich werde mal versuchen eine 
Schaltung mit den von Dir genannten Bauteilen aufzuzeichnen schwitz.


Georg schrieb:
> Für eine brauchbare Lösung müsste man das schon genau wissen. Wird
> dagegen der Widerstand gemessen, wird das schwieriger, weil ein
> Prozessor nicht ohne weiteres einen Widerstand simulieren kann. Und man
> muss auch wissen, welche Spannungen am Poti anliegen (können), sonst
> kann man die vorhandene Steuerung beschädigen.

Kann ich das mit einem einfachen Multimeter herausfinden, ohne etwas 
kaputtzumachen? Ich muss dafür das Kabel, welches am Wischer des Potis 
angelötet ist, entlöten und dann das Multimeter im Spannungsmessmodus 
dazwischen hängen. Dann den Poti regeln und schauen ob 0-5V gemessen 
wird. Richtig?


Wolfgang schrieb:
> Meinst du nicht, dass es einfacher wäre, per Software zwischen
> berechneten Werten aus deinem µC und Potiwerten umzustellen?
>
> Dann kämest du mit einem Widerstand und einem Kondensator aus.

Das war meine allererste Idee. Aber es wäre schön, wenn mein 
Mikrocontroller nur eine Art sekundäres System ist. Angenommen der ESP32 
hängt in einer Reboot-Schleife (warum auch immer), könnte man so noch 
mit dem Potentiometer steuern, weil der Analogschalter nicht geschaltet 
ist, oder?

von Tom M. (Gast)


Lesenswert?

Frank K. schrieb:
> Es gibt Potis, die Du per Hand drehen kannst, die aber auch per Motor
> gedreht werden können. Werden bei Mischpulten etc eingesetzt.

Danke, die hatte ich auch schon entdeckt. Ist natürlich schön einfach 
und man greift nicht in fremde Elektronik ein. Aber das Potentiometer 
ist an einer Stellstange befestigt, welche ein Eigengewicht hat und 
zusätzlich auch Reibungswiderstand. Danke trotzdem!

von Wolfgang (Gast)


Lesenswert?

Tom M. schrieb:
> Ich werde die Begriffe mal nachschlagen und hoffen das ich alles verstehe.
> Ob es wirklich 0-5V sind, werde ich mal messen.

Es kann durchaus sein, dass das Poti Bestandteil einer Brückenschaltung 
ist und nicht die Spannung, sondern das Teilerverhältnis die Steuergröße 
ist. Das solltest du dann auch bei deiner Ansteuerung berücksichtigen, 
indem du die ebenfalls ratiometrisch machst. Sonst kann es passieren, 
dass der Motor losläuft, weil dein Versorgungsspannung etwas wegdriftet.
Prüfe insbesondere wie groß der Totbereich um die Ruheposition (2.5V?) 
ist.

von Route_66 H. (route_66)


Lesenswert?

Zeige mal das Programm vom Motorcontroller (ATTINY85).
Dann ergibt sich vielleicht eine viel einfachere Lösung!

von Tom M. (Gast)


Lesenswert?

Route_66 H. schrieb:
> Zeige mal das Programm vom Motorcontroller (ATTINY85).
> Dann ergibt sich vielleicht eine viel einfachere Lösung!

Das Programm kenne ich leider nicht, und ich vermute es lässt sich auch 
nicht so leicht auslesen und dekompilieren, oder (fuse bits)? Und falls 
es klappt, wäre ASM die nächste Hürde.

von Route_66 H. (route_66)


Lesenswert?

Tom M. schrieb:
> Das Programm kenne ich leider nicht, und ich vermute es lässt sich auch
> nicht so leicht auslesen und dekompilieren,

Dann mach doch einfach ein neues Programm!
Wenn Du dir schon zutraust, einen ESP32 mit Deinem Wunschprogramm 
auszustatten, sollte der Rest im Tiny85 doch ein Klacks sein...

von HildeK (Gast)


Lesenswert?

Tom M. schrieb:
> Kann ich das mit einem einfachen Multimeter herausfinden, ohne etwas
> kaputtzumachen? Ich muss dafür das Kabel, welches am Wischer des Potis
> angelötet ist, entlöten und dann das Multimeter im Spannungsmessmodus
> dazwischen hängen. Dann den Poti regeln und schauen ob 0-5V gemessen
> wird. Richtig?

Nein, falsch.
Du kannst zwar die Spannung am Potischleifer gegen GND im eingebauten 
Zustand messen. Aber damit lässt sich noch keine Aussage treffen, ob der 
µC einen Widerstand bestimmt oder einfach die Spannung misst. Und so, 
wie du es oben beschrieben hast, wirst du je nach Potistellung zwischen 
0 und 5V messen. Aber es wäre schon mal ein Hinweis.
Diese Wahrscheinlichkeit ist sehr groß, dass der Tiny85 nur mit seinem 
ADC den Wert zwischen 0 und 5V bestimmt, auch weil das nur minimalen 
Aufwand in HW und SW erfordert.

Man könnte den Poti-'Wischer' ablöten und dann z.B. über 1kΩ eine 
externe Spannung auf den Eingang einspeisen und diese zwischen 0V und 5V 
verändern. Wenn sich das genauso verhält wie beim Drehen am Poti, dann 
hast du gewonnen.
Aber ohne die Schaltung zu kennen, kann ich dir nicht garantieren, dass 
dabei nichts kaputt geht.
Kannst du den Teil anschauen (ev. fotografieren), auf dem der 
Potianschluss und der Tiny sitzt oder noch besser, aus dem Layout eine 
Schaltplanskizze erstellen?

von Tom M. (Gast)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> Kannst du den Teil anschauen (ev. fotografieren), auf dem der
> Potianschluss und der Tiny sitzt oder noch besser, aus dem Layout eine
> Schaltplanskizze erstellen?

Es sieht aber so aus, als wäre der Potischleifer direkt am Pin 8 vom 
ATTINY angeschlossen. Wie die anderen beiden Pole vom Poti angeschlossen 
sind, ist schwer zu erkennen. Könnte das vielleicht eine GND- und 
VCC-Plane sein? Jedenfalls messe ich jeweils 0 Ohm zwischen den 
vermuteten/markierten Anschlüssen (falls das etwas hilft).

von Tom M. (Gast)


Lesenswert?

Ich habe gerade noch mal genau geschaut. Es handelt sich nicht um einen 
ATTINY85, sondern um einen ATTINY84A SSU.

von Georg (Gast)


Lesenswert?

Tom M. schrieb:
> Könnte das vielleicht eine GND- und
> VCC-Plane sein?

Wenn das so ist, dann müsste der Abgriff des Potis sich beim Durchdrehen 
von GND bis VCC ändern - das kann man ja nachmessen. Ist das so, so 
lässt sich leicht stattdessen eine externe Spannung einspeisen.

Georg

von Dirk B. (dirkb2)


Lesenswert?

Georg schrieb:
> Ist das so, so
> lässt sich leicht stattdessen eine externe Spannung einspeisen.

das kann man ja mit einem Labornetzteil (oder Batterie) probieren.

von Dietrich L. (dietrichl)


Lesenswert?

Dirk B. schrieb:
> Georg schrieb:
>> Ist das so, so
>> lässt sich leicht stattdessen eine externe Spannung einspeisen.
>
> das kann man ja mit einem Labornetzteil (oder Batterie) probieren.

Aber aufpassen, dass man nicht einspeist, wenn der µC noch nicht 
versorgt ist. Sonst kann er kaputt gehen. Also zur Sicherheit besser 
einen Längswiderstand einbauen, Größenordnung einige kΩ.

von Tom M. (Gast)


Lesenswert?

Georg schrieb:
> Wenn das so ist, dann müsste der Abgriff des Potis sich beim Durchdrehen
> von GND bis VCC ändern - das kann man ja nachmessen. Ist das so, so
> lässt sich leicht stattdessen eine externe Spannung einspeisen.
>
> Georg

Vielen Dank.
Habe jetzt mal gemessen, Boardspannung ist tatsächlich 5V.
Und je nach Potistellung messe ich eine Spannung von 0-5V am 
Abgriff/Schleifer.

von HildeK (Gast)


Lesenswert?

Tom M. schrieb:
> Es sieht aber so aus, als wäre der Potischleifer direkt am Pin 8 vom
> ATTINY angeschlossen.

Gut, und das ist der ADC5-Eingang.
Also genau so wie vermutet, der misst die Spannung am Poti und bestimmt 
daraus die Motordrehzahl. Das hätte ich auch so gemacht.
Wie schon andere vorgeschlagen haben: man kann zum Test am Mittelabgriff 
einfach eine Spannung zwischen 0 und 5V anlegen. Das Poti kann dran 
bleiben, wenn du es auf Mittelstellung bringst - besser wäre aber 
ablöten.
Die Spannung über 1k einspeisen, so dass bei (leichter) Fehlbedienung 
nichts kaputt geht.
Wenn sich dann über die Spannungsänderung die Motordrehzahl genau so 
einstellen lässt, dann funktioniert das mit dem DAC und einem kleinen 
OPA als Verstärker von 3.3V auf 5V.

Tom M. schrieb:
> Jedenfalls messe ich jeweils 0 Ohm zwischen den
> vermuteten/markierten Anschlüssen (falls das etwas hilft).

Ob über Plane oder Innenlagen ist egal. Wenn diese Punkte niederohmig 
mit Pin 1 und 14 verbunden sind, dann sind das ganz klar VCC und GND des 
Tiny84. Passt also alles.

Besonders geschickt wäre der TMUX1136 von TI, die Frage ist, wo man den 
bekommt.

von Tom M. (Gast)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> Das Poti kann dran
> bleiben, wenn du es auf Mittelstellung bringst - besser wäre aber
> ablöten.

Okay, ich habe eine Batterie (hat noch 2,7V), ein 10K Drehpoti und einen 
2K Ohm Widerstand wie auf dem Bild angeschlossen. Ich würde dafür den 
Schleifer-Pol ablöten und dafür das grüne Kabel am ADC5-Eingang 
anschließen. Das blaue Kabel, den Minuspol der Batterie, würde ich an 
einen beliebigen Ground-Kontakt vom Board anschließen.

Kann ich das so zum testen benutzen?

Ich habe ein wenig Angst das der Motor sich unkontrolliert Dreht, weil 
der Zustand des ADC5-Eingangs doch kurzzeitig schwebend sein könnte. 
Kann das passieren?

von HildeK (Gast)


Lesenswert?

Tom M. schrieb:
> Okay, ich habe eine Batterie (hat noch 2,7V), ein 10K Drehpoti und einen
> 2K Ohm Widerstand wie auf dem Bild angeschlossen. Ich würde dafür den
> Schleifer-Pol ablöten und dafür das grüne Kabel am ADC5-Eingang
> anschließen. Das blaue Kabel, den Minuspol der Batterie, würde ich an
> einen beliebigen Ground-Kontakt vom Board anschließen.
>
> Kann ich das so zum testen benutzen?

Das bringt ja keine Erkenntnis. Ich glaube, das kann man sich 
tatsächlich sparen, weil es ja kaum was anderes ist als das Poti, das 
bereits verbaut ist. Den GND-Pol muss man bei jedem Test anschließen.

Tom M. schrieb:
> Ich habe ein wenig Angst das der Motor sich unkontrolliert Dreht, weil
> der Zustand des ADC5-Eingangs doch kurzzeitig schwebend sein könnte.
> Kann das passieren?

Ja, ist leicht möglich. Wie ich oben schon mal schrieb: Poti drin lassen 
und auf Mittelstellung (Motor aus), dann hat sich das erledigt. Du 
brauchst rund 2.5V, damit der Motor steht. Alternativ: wenn du das Poti 
abklemmst, nimm zwei gleiche Widerstände als Spannungsteiler und schalte 
sie als Potiersatz, z.B 2x22k. Damit hast du bei offenem Eingang die 
2.5V und damit die Ruhestellung. Wenn du jetzt mit einem Netzteil oder 
einer, zwei oder drei AA-Zellen eine Spannung anlegst (über 1k zur 
Sicherheit!), muss der Motor entsprechend drehen.

von Tom M. (Gast)


Lesenswert?

HildeK schrieb:
> Ja, ist leicht möglich. Wie ich oben schon mal schrieb: Poti drin lassen
> und auf Mittelstellung (Motor aus), dann hat sich das erledigt. Du
> brauchst rund 2.5V, damit der Motor steht. Alternativ: wenn du das Poti
> abklemmst, nimm zwei gleiche Widerstände als Spannungsteiler und schalte
> sie als Potiersatz, z.B 2x22k. Damit hast du bei offenem Eingang die
> 2.5V und damit die Ruhestellung. Wenn du jetzt mit einem Netzteil oder
> einer, zwei oder drei AA-Zellen eine Spannung anlegst (über 1k zur
> Sicherheit!), muss der Motor entsprechend drehen.

Super, das werde ich morgen oder übermorgen ausprobieren und berichte 
dann!
Das ganze ist eher ein Freizeitprojekt und unter der Woche habe ich 
leider nicht allzu viel Zeit :(

Vielen Dank nochmal an Euch alle!

von Tom M. (Gast)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> Ein CD4066 hat z.B. vier Schalter im Gehäuse. Du musst zwei mit den
> Controleingängen betreiben, die jeweils gegenphasig angesteuert werden.
> Einen in Reihe zum OPA, einen in Reihe zum Poti-Schleifer.

Hi,

könntest Du mir erklären, was gegenphasiges Ansteuern bedeutet, wofür 
ich es benötige und wie ich das praktisch umsetzen kann?

Ich hatte inzwischen etwas Zeit um einen Schaltplan zu zeichnen. Anstatt 
eines CD4066 habe ich allerdings einen anderen Analogschalter gewählt 
(NLAS4684, Wechsler, SPDT). Ist das eine gute Wahl und würde damit das 
gegenphasige ansteuern entfallen?

Anbei der Schaltplan.

Viele Grüße

von Markus M. (adrock)


Lesenswert?

Ich denke der NLAS4684 könnte das leisten, das gegenphasige Schalten des 
4066 entfällt dann natürlich. Ist allerdings nicht ganz einfach zu 
beschaffen, Mouser hat ihn aber z.B.

Der Schalter macht allerdings ein "Break Before Make", d.h. der Ausgang 
des Schalters (also auch der Eingang des Motor-Controllers) "schwebt" 
ganz kurz. Das aber nur für max. 15ns. Das könntest Du allerdings mit 
einem Tiefpass am Ausgang noch verhindern (Tiefpass == Widerstand in 
Reihe und dahinter Kondensator nach Masse).

: Bearbeitet durch User
von Tom M. (Gast)


Lesenswert?

Markus M. schrieb:
> Ich denke der NLAS4684 könnte das leisten, das gegenphasige Schalten des
> 4066 entfällt dann natürlich. Ist allerdings nicht ganz einfach zu
> beschaffen, Mouser hat ihn aber z.B.

Hi,

ich habe ihn für 5€ inkl. Versand bei eBay gefunden. Werde noch mal nach 
einer günstigeren Alternative suchen. Im Prinzip sollte ja jeder SPDT 
Analogschalter funktionieren, richtig? Welche Eigenschaften sind noch 
wichtig? Low On-Resistance, low leakage current?

Markus M. schrieb:
> Der Schalter macht allerdings ein "Break Before Make", d.h. der Ausgang
> des Schalters (also auch der Eingang des Motor-Controllers) "schwebt"
> ganz kurz. Das aber nur für max. 15ns. Das könntest Du allerdings mit
> einem Tiefpass am Ausgang noch verhindern (Tiefpass == Widerstand in
> Reihe und dahinter Kondensator nach Masse).

Das hatte ich auch schon vermutet. Die Software der Motorsteuerung lässt 
den Motor aber weich An- und Auslaufen. Ich vermute das dadurch das 
kurze Schweben wenig Einfluss hat.

von Markus M. (adrock)


Lesenswert?

Ja, das sollte dann wohl i.O. sein.

Also die wichtigen Eigenschaften des Analogschalters sind eigentlich nur 
dass Vcc 5V sein muss und er Spannungen zwischen 0V und Vcc schalten 
kann.

Der Widerstand ist eher sekundär, da der Strom ziemlich klein sein 
dürfte.

Du könntest z.B. auch was von TI nehmen, gibt es auch bei Conrad:

TS5A3157

Ist aber SMD (SOT-23-6). Gibt es auch bei eBay, aber durch die 
Versandkosten einfach ähnlich teuer.

von HildeK (Gast)


Lesenswert?

Tom M. schrieb:
> könntest Du mir erklären, was gegenphasiges Ansteuern bedeutet, wofür
> ich es benötige und wie ich das praktisch umsetzen kann?
Das gilt nur für Schalter, die nur Ein/Aus können. Du musst einen 
einschalten und gleichzeitig den anderen Aus. Man braucht dafür entweder 
2 Controller-Pins oder muss einen Schalter mit einem Inverter ansteuern.

> Ich hatte inzwischen etwas Zeit um einen Schaltplan zu zeichnen. Anstatt
> eines CD4066 habe ich allerdings einen anderen Analogschalter gewählt
> (NLAS4684, Wechsler, SPDT). Ist das eine gute Wahl und würde damit das
> gegenphasige ansteuern entfallen?

Ja, damit entfällt das.

Tom M. schrieb:
> Low On-Resistance, low leakage current?

Beides dürfte nicht besonders wichtig sein. Der Quellwiderstand des 
Potis ist maximal 5kΩ (in Mittelstellung) und dein OPA-Ausgang ist ja 
ganz niederohmig. Damit fallen Probleme wegen Leakage Current weg und 
besonders niederohmig muss der Schalter auch nicht sein, den der ADC am 
Tiny ist ja hochohmig.
Was ich noch tun würde: einen Widerstand, z.B. 470R oder 1k, vor den 
Eingang C2 in Reihe zum Tiny legen als kleinen Schutz. Dann kannst du am 
AD-Eingang auch 10n nach GND zum Halten während der Umschaltzeit 
hinzufügen.

Sollte so zum Erfolg führen ...

von Sebastian S. (amateur)


Lesenswert?

Wenn Du einen vernünftigen GND-Bezug herstellen kannst:
Wie wäre es mit einem Digitalpotentiometer und einem Multiplexer?
Wenn es noch sicherer werden soll mit einem Relais, welches "noch" 
sicherer umschaltet bzw. beim Ausfall der Versorgung, eine definierte 
Lage einnimmt.

von Tom M. (Gast)


Lesenswert?

Markus M. schrieb:
> Also die wichtigen Eigenschaften des Analogschalters sind eigentlich nur
> dass Vcc 5V sein muss und er Spannungen zwischen 0V und Vcc schalten
> kann.
>
> Der Widerstand ist eher sekundär, da der Strom ziemlich klein sein
> dürfte.
>
> Du könntest z.B. auch was von TI nehmen, gibt es auch bei Conrad:
>
> TS5A3157

Ah okay, ich dachte schon, dass der Umschalter nicht ganz "dicht" 
schaltet/schließt :D

Super, dann würde sich ja ein Ausflug zum Conrad lohnen. Da würde ich 
auch gleich einen OPA und den Kondensator kaufen!

HildeK schrieb:
> Das gilt nur für Schalter, die nur Ein/Aus können. Du musst einen
> einschalten und gleichzeitig den anderen Aus. Man braucht dafür entweder
> 2 Controller-Pins oder muss einen Schalter mit einem Inverter ansteuern.

Ah, vielen Dank für die Klarstellung! Das ganze mit nur einem Pin zu 
steuern ist natürlich schöner :)

HildeK schrieb:
> Was ich noch tun würde: einen Widerstand, z.B. 470R oder 1k, vor den
> Eingang C2 in Reihe zum Tiny legen als kleinen Schutz. Dann kannst du am
> AD-Eingang auch 10n nach GND zum Halten während der Umschaltzeit
> hinzufügen.

Tausend Dank, ich werde die Schaltung später mal aktualisieren und hier 
posten!

von Tom M. (Gast)


Angehängte Dateien:

Lesenswert?

Markus M. schrieb:
> Du könntest z.B. auch was von TI nehmen, gibt es auch bei Conrad:
>
> TS5A3157
>
> Ist aber SMD (SOT-23-6). Gibt es auch bei eBay, aber durch die
> Versandkosten einfach ähnlich teuer.

SO8 habe ich schon gelötet, aber SOT23 ist noch etwas kleiner, oder? 
Aber das wird schon, einen kleinen Lötkoblben mit feiner Spitze habe ich 
zumindest.

Habe sowieso gerade gelesen, NLAS4684's größte Bauform ist MICRO10 
(MSOP?), das kann ich glaube vergessen :D

Dann lieber den TS5A3157, den ich aber bei Conrad nicht gefunden habe. 
Bei eBay finde ich ihn. Er ist sogar günstiger als der NLAS4684.


Sebastian S. schrieb:
> Wenn Du einen vernünftigen GND-Bezug herstellen kannst:
> Wie wäre es mit einem Digitalpotentiometer und einem Multiplexer?

Sorry, bin Anfänger. Digitalpoti damit ich keinen DAC und OPA benutzen 
muss?
Worin unterscheidet sich Multiplexer und Analogschalter?


Sebastian S. schrieb:
> Wenn es noch sicherer werden soll mit einem Relais, welches "noch"
> sicherer umschaltet bzw. beim Ausfall der Versorgung, eine definierte
> Lage einnimmt.

Also wenn die Stromversorgung ausfällt, dann steht der Motor sowieso 
still, es hängt alles an der selben Batterie. Oder was meinst du?
Es könnte passieren das meine Software nicht funktioniert, oder der 
ESP32 in einer Reboot-Schleife hängt. In diesem fall würde ich den ESP32 
einfach ausschalten (An-Aus-Schalter), wodurch das HIGH Signal ja nicht 
mehr am Analogschalter anliegt. Dadurch sollte die manuelle Steuerung 
(Drehpoti) ja wieder aktiviert werden, oder? (s. Schaltung)


HildeK schrieb:
> Eingang C2 in Reihe zum Tiny legen als kleinen Schutz. Dann kannst du am
> AD-Eingang auch 10n nach GND zum Halten während der Umschaltzeit
> hinzufügen.
>
> Sollte so zum Erfolg führen ...

Ist das so richtig oder ist der Kondensator an der falschen Stelle? (s. 
Bild)
So ganz versteh ich es nicht, muss ich gestehen :D

von HildeK (Gast)


Lesenswert?

Tom M. schrieb:
> Ist das so richtig oder ist der Kondensator an der falschen Stelle? (s.
> Bild)

Ja, so hatte ich das gemeint.

> So ganz versteh ich es nicht, muss ich gestehen :D
Wenn dein Schalter für einige ms keinen Kontakt mit einem der beiden 
Eingänge hat, so hält der Kondensator die zuletzt anliegende Spannung 
über diese kurze Zeit.
Der Widerstand soll verhindern, wenn z.B. das Poti auf 0V steht und dann 
auf den OPA umgeschaltet wird, der 5V ausgibt, dass dann der Ladestrom 
dieses Kondensators den OPA zu sehr belastet. Außerdem mögen OPAs keine 
kapazitiven Lasten: sie neigen dann zum Schwingen.
Der 1k kann auch kleiner sein, je nach dem max. Ausgangsstrom des OPA.

von Dirk B. (dirkb2)


Lesenswert?

Ein externer Pull-up/down Widerstand beim Schalteingang wäre noch 
sinnvoll, damit ein sicherer Zustand erreicht wird, wenn der 
Mikrocontroller nicht angeschlossen ist.

von Tom M. (Gast)


Lesenswert?

HildeK schrieb:
> Wenn dein Schalter für einige ms keinen Kontakt mit einem der beiden
> Eingänge hat, so hält der Kondensator die zuletzt anliegende Spannung
> über diese kurze Zeit.
> Der Widerstand soll verhindern, wenn z.B. das Poti auf 0V steht und dann
> auf den OPA umgeschaltet wird, der 5V ausgibt, dass dann der Ladestrom
> dieses Kondensators den OPA zu sehr belastet. Außerdem mögen OPAs keine
> kapazitiven Lasten: sie neigen dann zum Schwingen.

Ahhh, das ist der Tiefpassfiler von dem Markus M. ja schon gesprochen 
hatte! Danke für die doppelte/dreifache, aufühliche Erklärung, hat mir 
geholfen...


> Der 1k kann auch kleiner sein, je nach dem max. Ausgangsstrom des OPA.

Ich google morgen mal lieber wie dieser Wert berechnet wird und nerve 
euch nicht damit :D
Muss ja irgendwie im Verhältnis zum max. Ausgangsstrom des ESP3 (ich 
glaube 12mA) und OPA stehen. Ansonsten nehmen ich den 470k Ohm den du 
vorgeschlagen hast.

von HildeK (Gast)


Lesenswert?

Tom M. schrieb:
> Muss ja irgendwie im Verhältnis zum max. Ausgangsstrom des ESP3 (ich
> glaube 12mA) und OPA stehen. Ansonsten nehmen ich den 470k Ohm den du
> vorgeschlagen hast.

Nicht ganz.
Meine Betrachtung ging nur dahin, dass wenn die 10n 0V haben - weil das 
Poti am linken Anschlag stand - und der OPA 5V am Ausgang hat und man 
dann umschaltet von Poti auf den OPA, dann fließt ein Strom aus dem OPA 
mit dem Anfangswert 5V  1k oder 5V  470R (nicht 470k, das ist zu 
hoch!) Dieser Strom muss vom OPA geliefert werden können ohne ihn zu 
überlasten. Man muss also im Datenblatt schauen, was der OPA treiben 
kann/darf.
Mit dem ESP hat das nichts zu tun, der treibt ja nur den sehr 
hochohmigen OPA-Eingang.

von Tom M. (Gast)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> Nicht ganz.
> Meine Betrachtung ging nur dahin, dass wenn die 10n 0V haben - weil das
> Poti am linken Anschlag stand - und der OPA 5V am Ausgang hat und man
> dann umschaltet von Poti auf den OPA, dann fließt ein Strom aus dem OPA
> mit dem Anfangswert 5V  1k oder 5V  470R (nicht 470k, das ist zu
> hoch!) Dieser Strom muss vom OPA geliefert werden können ohne ihn zu
> überlasten. Man muss also im Datenblatt schauen, was der OPA treiben
> kann/darf.
> Mit dem ESP hat das nichts zu tun, der treibt ja nur den sehr
> hochohmigen OPA-Eingang.

Hi, sorry für die lange Pause..

Ich habe inzwischen mal geschaut welchen OPA ich bei Conrad kaufen kann.

Würde der z.B. der TS922IDT von den Daten her passen? Im Datenblatt habe 
ich max. Stromausgang 80 mA entdeckt, ist das der Wert den wir suchen? 
Außerdem R2R und Versorgungsspannung 2,7-12V.
Also passt ein 470R doch, oder lieber kleiner?

Dirk B. schrieb:
> Ein externer Pull-up/down Widerstand beim Schalteingang wäre noch
> sinnvoll, damit ein sicherer Zustand erreicht wird, wenn der
> Mikrocontroller nicht angeschlossen ist.

Oh, vielen Dank! Habe einen eingezeichnet, hoffentlich an der richtigen 
Stelle, beim Wert war ich mir wieder nicht sicher.

Der Analogschalter würde der TS5A3157DBVR bleiben. Habe die IC-Namen im 
Schaltplan aktualisiert, die fehlende Versorgungsspannung des 
Analogschalters hinzugefügt und auch noch einen "bypass capacitor" 
eingebaut (wurde so im Datenblatt empfohlen).
Findet ihr noch weitere Fehler in der Schaltung?

Außerdem: stimmt es, dass selbst ein R2R OPA keine vollen 5V erreichen 
wird (also nicht 100% der Betriebsspannung), sondern nur annähernd?

Schönen Abend noch!

von HildeK (Gast)


Lesenswert?

Tom M. schrieb:
> Würde der z.B. der TS922IDT von den Daten her passen?
Ja. Der gehört schon zu den besseren (Rauschen, Bandbreite), was du 
nicht zwingend brauchst, aber schaden tut es nicht.
Auch der Analogschalter erscheint sehr geeignet.

> Also passt ein 470R doch, oder lieber kleiner?
Ja, der passt.
Der Wert ist nicht so kritisch, aber kleiner heißt halt mehr 
Stromverbrauch, das muss nicht sein. Unter Umständen kann man den auch 
1k oder 10k wählen, das hängt aber von der nicht ganz zuverlässig 
bekannten Beschaltung des Tiny ab (vielleicht ist auf der Unterseite 
noch was).

Tom M. schrieb:
> Habe einen eingezeichnet, hoffentlich an der richtigen
> Stelle, beim Wert war ich mir wieder nicht sicher.
Die Stelle ist richtig. Ich würde eher auf 10k gehen.

Tom M. schrieb:
> Der Analogschalter würde der TS5A3157DBVR bleiben. Habe die IC-Namen im
> Schaltplan aktualisiert, die fehlende Versorgungsspannung des
> Analogschalters hinzugefügt und auch noch einen "bypass capacitor"
> eingebaut (wurde so im Datenblatt empfohlen).
> Findet ihr noch weitere Fehler in der Schaltung?
Über Bypass hatten wir noch gar nicht geredet. Der ist natürlich immer 
notwendig, auch an dem OPA sollte einer sein.

> Außerdem: stimmt es, dass selbst ein R2R OPA keine vollen 5V erreichen
> wird (also nicht 100% der Betriebsspannung), sondern nur annähernd?
Ja, das stimmt und auch keine exakten 0V. Du wirst keinen finden, der 
das erreicht.
Laut Datenblatt vom TS922 wird garantiert, dass sich der Ausgang im 
Bereich 50mV ... 4.9V bewegen kann, bei ≥10k Last und über den ganzen 
Temperaturbereich. Tatsächlich wird das bei deiner hochohmigen Last 
sogar ein wenig besser sein.
Wenn du 0.00V bzw. 5.00V brauchst, dann musst du ihn mit etwas mehr als 
5V versorgen und ebenso mit einer kleinen negativen Spannung. Bist du 
auf die fehlenden max. 100mV oben bzw. 50mV unten angewiesen?

Noch was: ich kenne den ESP32 nicht, was macht dessen DAC-Ausgang im 
Reset-Zustand bzw. bevor er konfiguriert wird?
Wenn er dabei hochohmig sein sollte, dann würde ich noch je einen PU und 
PD an diesen Ausgang machen, so dass er dann auf die Mitte gezogen wird. 
Als PU und PD können da 100k zum Einsatz kommen.

Insgesamt sieht es aber gut aus!

von Tom M. (Gast)


Lesenswert?

HildeK schrieb:
> Ja, das stimmt und auch keine exakten 0V. Du wirst keinen finden, der
> das erreicht.
> Laut Datenblatt vom TS922 wird garantiert, dass sich der Ausgang im
> Bereich 50mV ... 4.9V bewegen kann, bei ≥10k Last und über den ganzen
> Temperaturbereich. Tatsächlich wird das bei deiner hochohmigen Last
> sogar ein wenig besser sein.
> Wenn du 0.00V bzw. 5.00V brauchst, dann musst du ihn mit etwas mehr als
> 5V versorgen und ebenso mit einer kleinen negativen Spannung. Bist du
> auf die fehlenden max. 100mV oben bzw. 50mV unten angewiesen?

Naja, wäre schon schön wenn der Motor auch seine volle Drehzahl 
erreichen kann, sehr wichtig wäre es aber nicht. Jetzt wo wir die 
Schaltung/Motorsteuerung aber besser verstehen, würde ein 
Digitalpotentiometer nicht mehr Sinn ergeben?

Wie ich gerade gelesen habe, hat der DAC vom ESP32 hat auch nur 8 Bit 
und der ADC vom ATTINY hat 10 Bit. Wäre es nicht sinvoller, ein 10 Bit 
Digipoti zu benutzen, den OPA einzusparen und damit auch die Auflösung 
besser zu treffen?
Dadurch könnte man die Schaltung bei bedarf auch mit Mikrocontrollern 
ohne integriertem DAC und anderer VCC steuern, oder? Dies hatte ja auch 
schon Sebastian S. im Thread vorgeschlagen. Was meinst Du?

> Noch was: ich kenne den ESP32 nicht, was macht dessen DAC-Ausgang im
> Reset-Zustand bzw. bevor er konfiguriert wird?
> Wenn er dabei hochohmig sein sollte, dann würde ich noch je einen PU und
> PD an diesen Ausgang machen, so dass er dann auf die Mitte gezogen wird.
> Als PU und PD können da 100k zum Einsatz kommen.

Gute Frage, habe noch nicht mit dem DAC des ESP32 gearbeitet. Laut 
Datenblatt sind die beiden möglichen DAC Pins beim und nach Reset, sowie 
die meisten anderen Pins "oe=0, ie=0" (out- und input enabled = 0, 
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf, 
Seite 50). Der Ausgang sollte also schweben.

Viele Grüße

Tom

von HildeK (Gast)


Lesenswert?

Tom M. schrieb:
> Jetzt wo wir die
> Schaltung/Motorsteuerung aber besser verstehen, würde ein
> Digitalpotentiometer nicht mehr Sinn ergeben?

Kann sein, dazu kann ich aber nichts sagen. Ich habe noch nie eines 
verwendet und erst recht nicht vermessen.

Zumindest geht in jede Variante auch die Stabilität und Genauigkeit der 
Betriebsspannung und der Komponenten ein. Um die 1-2% Rest nach VCC bzw. 
GND relevant werden zu lassen, müssen die Versorgung des DAC und des OPA 
ja auch eine kleinere Toleranz haben - was bereits eine Herausforderung 
ist. Auch die Widerstände am OPA zur Verstärkungseinstellung wären dann 
mit 0.1% zu wählen.
Zudem, würdest du merken, wenn der Motor nur 98% seiner Maximaldrehzahl 
erreicht?

von Tom M. (Gast)


Lesenswert?

HildeK schrieb:
> Kann sein, dazu kann ich aber nichts sagen. Ich habe noch nie eines
> verwendet und erst recht nicht vermessen.
>
> Zumindest geht in jede Variante auch die Stabilität und Genauigkeit der
> Betriebsspannung und der Komponenten ein. Um die 1-2% Rest nach VCC bzw.
> GND relevant werden zu lassen, müssen die Versorgung des DAC und des OPA
> ja auch eine kleinere Toleranz haben - was bereits eine Herausforderung
> ist. Auch die Widerstände am OPA zur Verstärkungseinstellung wären dann
> mit 0.1% zu wählen.
> Zudem, würdest du merken, wenn der Motor nur 98% seiner Maximaldrehzahl
> erreicht?

Wahrscheinlich würde ich es nicht merken. Hauptsächlich habe ich den 
Digitalpoti vorgeschlagen, weil man dann unabhängiger vom treibenden 
Mikrocontroller ist, man keinen OPA und DAC braucht. Mir war außerdem 
nicht klar, das der DAC nur 8 Bit kann, sorry. Also jeweils 128 Stufen 
in jede Fahrtrichtung. Der ADC vom ATTINY hingegen hat 10 Bit, also 512 
Stufen in jede Richtung - das ist ein großer Unterschied. Ein 'feines' 
steuern der Geschwindigkeit ist mir wichtiger als das Erreichen der 
Maximalgeschwindigkeit.

von Fragezeichen (Gast)


Lesenswert?

Wenn der ESP doch sowieso entscheidet, ob Poti oder ESP die 
Steuerspannung bestimmen, dann kann ich doch das Poti direkt an den ESP 
packen und der erzeugt dann per gefilterter PWM die Spannung fuer den 
Tiny und entscheidet, woher der (Soll-)Wert kommt.
Wenn die Tiny-SW von jemandem mit etwas Grips entwickelt wurde, dann 
wird sie um den Nullpunkt (=halbe Spannung) ja wohl einen gewissen 
'toten Bereich' haben.
Das sollte fuer die PWM Loesung von Vorteil sein.

Ist aber nur mein ganz eigener Loesungsansatz...

von Tom M. (Gast)


Lesenswert?

Fragezeichen schrieb:
> Wenn der ESP doch sowieso entscheidet, ob Poti oder ESP die
> Steuerspannung bestimmen, dann kann ich doch das Poti direkt an den ESP
> packen und der erzeugt dann per gefilterter PWM die Spannung fuer den
> Tiny und entscheidet, woher der (Soll-)Wert kommt.
> Wenn die Tiny-SW von jemandem mit etwas Grips entwickelt wurde, dann
> wird sie um den Nullpunkt (=halbe Spannung) ja wohl einen gewissen
> 'toten Bereich' haben.
> Das sollte fuer die PWM Loesung von Vorteil sein.
>
> Ist aber nur mein ganz eigener Loesungsansatz...

Hi,

das hat Wolfgang in Beitrag #4 auch schon vorgeschlagen.

Die Schaltung soll aber nur als Weiche fungieren. Es soll unabhängig 
sein. Wenn der µC nicht angeschlossen ist, oder kein Signal zum 
Übernehmen der Steuerung ausgegeben wird, dann soll das normale Poti wie 
gewohnt funktionieren.

Danke trotzdem für den Vorschlag.

Vielleicht sollte ich die letzte gepostete Schaltung einfach mit einem 
10 Bit DAC ausstatten. Oder ein Digitalpoti (z.B. MAX5481?)..

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.