Forum: Mikrocontroller und Digitale Elektronik Arduino per kurzen Tastendruck einschalten


von Ivoch I. (ivoch)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe einen Arduino Nano (in einem TonUINO), bei dem ein 
Taster an A0 angeschlossen ist, der beim Drücken verschiedene Aktionen 
auslöst.

Jetzt habe ich mir noch eine kleine zusätzliche Schaltung gebaut, die 
ich zum Einschalten des Arduinos benutze. Der Arduino soll mit Strom 
versorgt werden, wenn man den obigen Taster drückt. Das funktioniert 
auch, nur muss ich den Taster 2s lang gedrückt halten, bis der Arduino 
gebootet hat und sich selbst eingeschaltet halten kann. Er kann sich 
dann auch selbst ausschalten.

Die Frage ist, wie kann ich die Schaltung anpassen, so dass der Arduino 
auch nur nach kurzem Tastendruck an bleibt, ohne dabei die sonstige 
Funktionalität des Tasters im laufenden Betrieb zu stören. Dort wird 
nämlich unterschieden, ob der Taster kurz oder lang gedrückt wurde.

Würde es mit einem Kondensator zwischen der Gate des P-MOSFETs und 
GROUND klappen?

[EDIT] Die Schaltung zum Ein-/Ausschalten ist diese - 
https://circuitjournal.com/arduino-auto-power-off#self-power-off-circuit

Die 5V StepUp Schaltung ist ein Teil dieser Schaltung - 
https://easyeda.com/wagiminator/cn3058-lifepo4-power-board-ls-5v.

: Bearbeitet durch User
von Ivoch I. (ivoch)


Lesenswert?

An die Mods - könnt ihr bitte den zweiten Anhang löschen? Habe ich aus 
Versehen doppelt angehängt. Danke

von Stefan F. (Gast)


Lesenswert?

Die Schaltung sieht von vorne bis hinten fehlerhaft aus. ich weiß gar 
nicht, wo ich da anfangen soll.

Vielleicht fange wir mal mit Grundlagen zu Transistoren an
http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf
Kapitel 2.2 und 3.4

In der Zwischenzeit erklärst du mal die Pinbelegung deines 
Spannungswandlers und warum du dessen Pins so beschalten willst, wie 
oben gezeigt.

Das ist übrigens ein sehr häufiger Standard-Fall für den du 
funktionierende Schaltungen massenweise im Internet findest.

von MaWin (Gast)


Lesenswert?

Ivoch I. schrieb:
> Das funktioniert auch,

Eher nicht.

Der ausgeschaltete Arduio zieht über die Eingangsschutzdiode von A0 und 
die Diode das Gate des Power-MOSFETs genau so nach Masse  wie es der 
Einschalttaster machen würde.
Und wie es der Halte-MOSFET täte wenn dessen Source an GND liegen würde.

Schau dir beim Transistortester an, wie man es richtig macht. Achso, der 
verwendet 9V. Also am Ende des Kapitels:

https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29.1

von Ivoch I. (ivoch)


Angehängte Dateien:

Lesenswert?

Sorry Stefan F., habe mich beim Zeichnen vertan, Pin 1 des 
Spannungswandlers geht an Masse und nicht Pin 2. Es ist übrigens ein 
QX2303L50E und ich habe ihn genau so geschaltet wie im Link in meinem 
ersten Beitrag 
(https://easyeda.com/wagiminator/cn3058-lifepo4-power-board-ls-5v).

Und die 2 MOSFETs habe ich genau so geschaltet, wie im anderen Link 
beschrieben 
(https://circuitjournal.com/arduino-auto-power-off#self-power-off-circuit) 
und das ganze funktioniert auch, deswegen verstehe ich nicht was so 
falsch sein soll (bis auf den einen Fehler beim Wandler, natürlich)

von Stefan F. (Gast)


Lesenswert?

Wegen der Diode wird dein Arduino niemals Spannungsfrei/Stromlos sein.

Der MOSFET Links unten gehört mit eine "Bein" sicher an GND. Du hast ihn 
nur zweipolig angeschlossen, so macht ein Transistor keinen Sinn.

Der andere Transistor ist auch völlig falsch beschaltet. Der Widerstand 
müsste sein Gate auf 3,2V hoch ziehen. Dann würde aber am Eingang A0 des 
Arduino immer eine Spannung anliegen, was nicht sein darf, solange er 
keine Versorgungsspannung hat.

Da sind bestimmt noch mehr Fehler drin. Die Schaltung ist so eigentlich 
nicht zu retten, muss man nochmal ganz neu machen.

von Kuno (Gast)


Lesenswert?

Ivoch I. schrieb:
> Und die 2 MOSFETs habe ich genau so geschaltet, wie im anderen Link
> beschrieben
> (https://circuitjournal.com/arduino-auto-power-off#self-power-off-circuit)
> und das ganze funktioniert auch, deswegen verstehe ich nicht was so
> falsch sein soll (bis auf den einen Fehler beim Wandler, natürlich)

Deine gezeigte Schaltung kann nicht funktionieren, und weicht deutlich 
von der im Link beschriebenen Schaltung ab. Vergleiche also nochmal.

von Ivoch I. (ivoch)


Angehängte Dateien:

Lesenswert?

Mann ist das peinlich... ich habe die Schaltung falsch gezeichnet (zum 
ersten Mal mit circuit-diagram.org zeichnen UND gleichzeitig von meiner 
Tochter abgelenkt, aber das ist ja keine Entschuldigung) und deswegen 
verstehe ich vollkommen, dass ihr damit Probleme hattet. Sorry!

Aber ich habe sie richtig gelötet, deswegen funktioniert sie auch. Ich 
habe die Zeichnung jetzt angepasst und bin 3 mal drüber gegangen und 
keine Fehler mehr entdeckt. Passt das jetzt?

Ich habe zusätzlich eine Diode zu A0 geschaltet - damit dürfte das von 
Stefan angesprochene Problem mit Spannung auf A0 gelöst sein, oder denke 
ich falsch? Ist erstmal nur in der Zeichnung, gelötet habe ich sie noch 
nicht.

von Stefan F. (Gast)


Lesenswert?

Ivoch I. schrieb:
> Mann ist das peinlich... ich habe die Schaltung falsch gezeichnet

Das ist auch kein Wunder wenn man oben mit unten und links mit rechts 
vertauscht.

Die positive Versorgungsspannung gehört nach oben. GND nach unten.
Signale kommen soweit möglich von links und gehen nach rechts.

Ich denke, so kann es eventuell klappen. Welchen Sinn hat die Diode am 
Spannungswandler zwischen Pin 2 und Pin 3?

von Kuno (Gast)


Lesenswert?

Ivoch I. schrieb:
> Die Frage ist, wie kann ich die Schaltung anpassen, so dass der Arduino
> auch nur nach kurzem Tastendruck an bleibt, ohne dabei die sonstige
> Funktionalität des Tasters im laufenden Betrieb zu stören. Dort wird
> nämlich unterschieden, ob der Taster kurz oder lang gedrückt wurde.
>
> Würde es mit einem Kondensator zwischen der Gate des P-MOSFETs und
> GROUND klappen?

Kondensator kann klappen ist aber relativ undefiniert. Ugs des P-MOSFET 
ist eh schon gering mit den 3,2V-0,7V, dann hängt es vom MOSFET ab, wo 
dessen Threshold liegt. Und du müsstest den 10 kOhm deutlich vergrößern.

Du solltest in deiner Zeichnung noch die Bauteile eindeutig bezeichnen 
(Dx, Rx, Tx) und auch angeben welche Transistoren und Dioden du 
einsetzt. Dann ist eine Diskussion darüber viel einfacher.

Ich nehme für die weitere Beschreibung einfach T1 für den NMOS und T2 
für den PMOS.

Für die 2 Sekunden sehe ich diese Möglichkeiten:
1. Hardwarelösung: Mitkopplung

Ein 1 kOhm Widerstand von T2 Drain nach T1 Gate. Um zu verhindern, daß 
nun Strom in den D7 fließt, wird D7 über einen NPN Transistor 
entkoppelt. D7 geht über 10 kOhm an die Basis des NPN, Emitter an GND, 
und Kollektor an T1 Gate. Ausgeschaltet wird mit HIGH an D7.

2. Softwarelösung: Bootloader austauschen

Es gibt ein Optiboot auch für den Nano ohne die Startverzögerung.

von Ivoch I. (ivoch)


Angehängte Dateien:

Lesenswert?

Stefan ⛄ F. schrieb:
> Ich denke, so kann es eventuell klappen. Welchen Sinn hat die Diode am
> Spannungswandler zwischen Pin 2 und Pin 3?

Ich weiß nicht, ich habe die Schaltung mit dem Spannungswandler nicht 
entworfen, aber die Diode gibts auch in der Referenzschaltung der 
QX2303. Vielleicht eine Schutzfunktion wegen der Spule?

Ich finde momentan keine zweite Diode für die Verbindung zum A0 Pin. 
Kann ich stattdessen einen FET verwenden? Habe hier einen aus einer 
Fernbedienung eines Quadrocopters, den ich sowieso nicht eindeutig 
identifizieren kann. Ich kann aber zwischen Pins 1 und 2 eine 
Diodenfunktion messen und der Widerstand ist in beiden Richtungen 
zwischen 1 und 3 Megaohm. Ich bilde mir ein, mit der Lupe "662" 
auszumachen, was eventuell auf einen 2SK662 JFET hindeuten würde? Dann 
wären Pins 1 und 2 Source und Drain.

Kuno schrieb:
> Kondensator kann klappen ist aber relativ undefiniert. Ugs des P-MOSFET
> ist eh schon gering mit den 3,2V-0,7V, dann hängt es vom MOSFET ab, wo
> dessen Threshold liegt. Und du müsstest den 10 kOhm deutlich vergrößern.

Der MOSFET ist ein IRLML6401, Ugs -0,4 bis -0,95V - hilft das? Warum 
müsste ich den 10 kOhm vergrößern bzw. wieviel sollte er am Ende sein 
und würde die Schaltung dann trotzdem funktionieren?

> Du solltest in deiner Zeichnung noch die Bauteile eindeutig bezeichnen
> (Dx, Rx, Tx) und auch angeben welche Transistoren und Dioden du
> einsetzt. Dann ist eine Diskussion darüber viel einfacher.

Ja, du hast natürlich Recht. Ich konnte auf circuit-diagram.org keine 
Möglichkeit finden die Bauteile zu beschriften, aber ich habe sie jetzt 
in Paint beschriftet. Das nächste mal suche ich mir ein besseres 
Programm aus und mache die Zeichnung auch ordentlicher, wie von Stefan 
angemerkt.

> Ich nehme für die weitere Beschreibung einfach T1 für den NMOS und T2
> für den PMOS.
>
> Für die 2 Sekunden sehe ich diese Möglichkeiten:
> 1. Hardwarelösung: Mitkopplung
>
> Ein 1 kOhm Widerstand von T2 Drain nach T1 Gate. Um zu verhindern, daß
> nun Strom in den D7 fließt, wird D7 über einen NPN Transistor
> entkoppelt. D7 geht über 10 kOhm an die Basis des NPN, Emitter an GND,
> und Kollektor an T1 Gate. Ausgeschaltet wird mit HIGH an D7.
>
> 2. Softwarelösung: Bootloader austauschen
>
> Es gibt ein Optiboot auch für den Nano ohne die Startverzögerung.

Welche Möglichkeit würdest du empfehlen, wenn es mit dem Kondensator 
doch nicht klappt? Ich würde eher zu 2 tendieren, aber nur weil meine 
Platine schon ein bisschen überfüllt ist (hauptsächlich mit Jumper 
Kabeln). Momentan kann ich keine der beiden anwenden, weil ich keine 
bipolaren Transistoren habe und auch keinen Programmer für den 
Bootloader - ich wollte mir sowieso einen bauen, aber das wird etwas 
dauern.

: Bearbeitet durch User
von Kuno (Gast)


Lesenswert?

Ivoch I. schrieb:
> Stefan ⛄ F. schrieb:
>> Ich denke, so kann es eventuell klappen. Welchen Sinn hat die Diode am
>> Spannungswandler zwischen Pin 2 und Pin 3?
>
> Ich weiß nicht, ich habe die Schaltung mit dem Spannungswandler nicht
> entworfen, aber die Diode gibts auch in der Referenzschaltung der
> QX2303. Vielleicht eine Schutzfunktion wegen der Spule?

Welche Referenzschaltung soll das sein, Link? Lass dir doch nicht jede 
Information einzeln aus der Nase ziehen.

> Ich finde momentan keine zweite Diode für die Verbindung zum A0 Pin.
> Kann ich stattdessen einen FET verwenden? Habe hier einen aus einer
> Fernbedienung eines Quadrocopters, den ich sowieso nicht eindeutig
> identifizieren kann. Ich kann aber zwischen Pins 1 und 2 eine
> Diodenfunktion messen und der Widerstand ist in beiden Richtungen
> zwischen 1 und 3 Megaohm. Ich bilde mir ein, mit der Lupe "662"
> auszumachen, was eventuell auf einen 2SK662 JFET hindeuten würde? Dann
> wären Pins 1 und 2 Source und Drain.

Wenn du noch von den NMOS bzw. PMOS Transistoren welche hast, würde ich 
eher die nehmen anstatt einen unbekannten Typ. Gate und Source verbinden 
und mit der Bodydiode richtig herum einsetzen.

> Kuno schrieb:
>> Kondensator kann klappen ist aber relativ undefiniert. Ugs des P-MOSFET
>> ist eh schon gering mit den 3,2V-0,7V, dann hängt es vom MOSFET ab, wo
>> dessen Threshold liegt. Und du müsstest den 10 kOhm deutlich vergrößern.
>
> Der MOSFET ist ein IRLML6401, Ugs -0,4 bis -0,95V - hilft das? Warum
> müsste ich den 10 kOhm vergrößern bzw. wieviel sollte er am Ende sein
> und würde die Schaltung dann trotzdem funktionieren?

Bei 10 kOhm brauchst du einen 680 uF Kondensator um auf knapp über 2 
Sekunden zu kommen. Bei einem Kondensator zwischen T2 Gate und GND muss 
der geladene Kondensator dann über den Taster entladen werden, und da 
fließt dann ein hoher Strom, der dem Taster nicht gut tut.

Und ein weiteres Problem ist, daß sich der Kondensator beim Ausschalten 
(wenn T1 sperrt) über R3 langsam wieder auflädt und somit durch T2 dem 
StepUp langsam die Spannung abdreht. Damit steigt der Strom in den 
StepUp (bis er abschaltet), und es könnte dem T2 recht warm werden.

Je mehr ich darüber nachdenke, desto weniger halte ich von der 
Kondensatorlösung.

>> Für die 2 Sekunden sehe ich diese Möglichkeiten:
>> 1. Hardwarelösung: Mitkopplung
>>
>> Ein 1 kOhm Widerstand von T2 Drain nach T1 Gate. Um zu verhindern, daß
>> nun Strom in den D7 fließt, wird D7 über einen NPN Transistor
>> entkoppelt. D7 geht über 10 kOhm an die Basis des NPN, Emitter an GND,
>> und Kollektor an T1 Gate. Ausgeschaltet wird mit HIGH an D7.
>>
>> 2. Softwarelösung: Bootloader austauschen
>>
>> Es gibt ein Optiboot auch für den Nano ohne die Startverzögerung.
>
> Welche Möglichkeit würdest du empfehlen, wenn es mit dem Kondensator
> doch nicht klappt? Ich würde eher zu 2 tendieren, aber nur weil meine
> Platine schon ein bisschen überfüllt ist (hauptsächlich mit Jumper
> Kabeln). Momentan kann ich keine der beiden anwenden, weil ich keine
> bipolaren Transistoren habe und auch keinen Programmer für den
> Bootloader - ich wollte mir sowieso einen bauen, aber das wird etwas
> dauern.

Ich würde die Lösung 1 nehmen, die reagiert definiert auf einen kurzen 
Tastendruck. Wenn du keinen NPN Transistor hast, kannst du auch einen 
weiteren NMOS nehmen, brauchst dann halt noch einen zusätzlichen 
Pull-down Widerstand zwischen Gate und GND.

von Lux (Gast)


Lesenswert?

Selbsthalteschaltung lautet dein Suchwort.

von Ivoch I. (ivoch)


Lesenswert?

Kuno schrieb:
> Ivoch I. schrieb:
>> Stefan ⛄ F. schrieb:
>>> Ich denke, so kann es eventuell klappen. Welchen Sinn hat die Diode am
>>> Spannungswandler zwischen Pin 2 und Pin 3?
>>
>> Ich weiß nicht, ich habe die Schaltung mit dem Spannungswandler nicht
>> entworfen, aber die Diode gibts auch in der Referenzschaltung der
>> QX2303. Vielleicht eine Schutzfunktion wegen der Spule?
>
> Welche Referenzschaltung soll das sein, Link? Lass dir doch nicht jede
> Information einzeln aus der Nase ziehen.

Hier im Datenblatt habe ich die Referenzschaltung gesehen - 
http://aitendo3.sakura.ne.jp/aitendo_data/product_img/ic/power/QX2303/QX2303-E50B.pdf. 
Ich habe die komplette Schutz-/Ladeschaltung von hier nachgebaut - 
https://easyeda.com/wagiminator/y-cn3058-lifepo4-charger-booster (ich 
hatte oben den falschen Link zu einer neueren Version gepostet), aber 
dort wird ja auch die gleiche Schaltung für den Spannungswandler 
verwendet.

>> Kuno schrieb:
> Je mehr ich darüber nachdenke, desto weniger halte ich von der
> Kondensatorlösung.

Alles klar, dann verwerfe ich die Idee. War ja auch nur ein Gedanke, 
weil mir mangels Erfahrung/Wissen sonst nichts eingefallen ist.

>>> Für die 2 Sekunden sehe ich diese Möglichkeiten:
>>> 1. Hardwarelösung: Mitkopplung
>>>
>>> Ein 1 kOhm Widerstand von T2 Drain nach T1 Gate. Um zu verhindern, daß
>>> nun Strom in den D7 fließt, wird D7 über einen NPN Transistor
>>> entkoppelt. D7 geht über 10 kOhm an die Basis des NPN, Emitter an GND,
>>> und Kollektor an T1 Gate. Ausgeschaltet wird mit HIGH an D7.
> Ich würde die Lösung 1 nehmen, die reagiert definiert auf einen kurzen
> Tastendruck. Wenn du keinen NPN Transistor hast, kannst du auch einen
> weiteren NMOS nehmen, brauchst dann halt noch einen zusätzlichen
> Pull-down Widerstand zwischen Gate und GND.

Ok, dann mache ich das so - N-MOSFETs (IRLML2502) habe ich genug, da 25 
gekauft.

[EDIT] Ich habe doch einen (unbekannten) NPN Transistor auf einer alten 
Platine gefunden also probiere ich es erstmal damit. Aber warum 
eigentlich überhaupt einen Transistor und nicht einfach eine Diode in 
Reihe mit R1 schalten, mit der Anode zu D7?

: Bearbeitet durch User
von Kuno (Gast)


Lesenswert?

Ivoch I. schrieb:

> [EDIT] Ich habe doch einen (unbekannten) NPN Transistor auf einer alten
> Platine gefunden also probiere ich es erstmal damit. Aber warum
> eigentlich überhaupt einen Transistor und nicht einfach eine Diode in
> Reihe mit R1 schalten, mit der Anode zu D7?

Weil du zum Ausschalten das Gate von T1 in Richtung GND ziehen musst, 
dazu musst der zusätzliche Transistor den Strom von 3,2V / 1 kOhm nach 
GND ableiten. Es reicht nicht nur D7 hochohmig zu schalten.

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.