Go Down

Topic: Wie auslesen ob Strom an der 12V Schiene anliegt? (Read 6015 times) previous topic - next topic

TERWI

Nein, ich hab auch auf Windoof-Seite immer noch ne Knopf, mit dem ich COM öffne.
Der Mega liegt immer im Blickbereich.
Wenn ich mit meiner App öffne, blinkt nix auf dem Mega - zumindestens nicht sichtbar.
In der Startsequenz stehen z.Zt. auch noch gleich einige Befehle an, die nach dem öffnen sofort ausgeführt werden und mit passendem Echo auch quittiert werden.
Da kann kein Reset sein ....

Mache ich das mit dem "baugleichen" Terminal oder dem Serial-Monitor, dann schon.
Der Unterschied zwischen App und dem "fertigen" Terminal in Delphi liegen darin, das beim Terminal die grafische Komponente auf der Form liegt - in meiner App habe ich die Komponente in einer nichtgrafischen Unit und initialisiere alles selbst.
Vermutlich wird da unterschiedlich initialisiert .... ich "ziehe" jedenfalls nicht an RTS oder DTR.
To young to die - never to old for rock'n roll

TERWI

#16
Jul 21, 2013, 03:02 pm Last Edit: Jul 21, 2013, 03:06 pm by TERWI Reason: 1
Ich hab das eben mal schnell ausprobiert und mein Proggie ein bischen erweitert.

"Sende DTR" ist hier wohl das Zauberwort. Das veranlasst den Arduino ganz offensichtlich zum Reset !
Das scheint wohl das OS (hier Windoof XP) mal ausnahmsweise NICHT selbst zu machen - da muss der Progger schon tippen ....
Leider kommt kein übliches "Sende DSR Echo" zurück, damit man feststellen kann, wann Herr Arduino mit dem Reset fertig und wieder empfangsbereit ist.

Baut man allerdings in void SetUp so was wie ein
Code: [Select]
Serial.println(F("... ich bin jetzt wach ..."));
mit ein, dann weiß man wann er empfangsbereit ist.
Muss man nur drauf reagieren ... ansonsten gehen ggf. Daten auf den Schnittstellen verloren, was recht unschön ist und wieder separat geprüft werden müsste.

..... vielleicht sollte man mal im BootLoader ein DSR nach Reset implementieren ?

To young to die - never to old for rock'n roll

michael_x

Quote
"Sende DTR" ist hier wohl das Zauberwort. Das veranlasst den Arduino ganz offensichtlich zum Reset !
Das scheint wohl das OS (hier Windoof XP) mal ausnahmsweise NICHT selbst zu machen - da muss der Progger schon tippen ....
Leider kommt kein übliches "Sende DSR Echo" zurück, damit man feststellen kann, wann Herr Arduino mit dem Reset fertig und wieder empfangsbereit ist.
[...]
..... vielleicht sollte man mal im BootLoader ein DSR nach Reset implementieren ?


Ein DTR / DSR Handshake scheitert erstmal daran, dass ein entsprechendes Signal zurückgesendet werden müsste. Über welchen Pin des atmega328 oder  2560 (?).
Und auch beim 16U2 des Arduino UNO ist da nichts vorgesehen. Wohl auch nicht in dessen Software.

Wenn der PC wissen muss, wann "Herr Arduino" bereit ist, sollte der besser was auf Tx senden.
Software-Handshake hiess das früher, und dafür waren die ASCII -Zeichen XON / XOFF mehr oder weniger reserviert.
https://en.wikipedia.org/wiki/Software_flow_control
Kannst natürlich auch was ausführlicheres senden, Sketch-Name+Versionsnummer oder so...


Kann sein, dass dein Prog ( anders als andere ) DTR einfach unverändert lässt, so dass der Arduino gar nichts mitkriegen kann.
Müsste ich mal ausprobieren, ob das in .NET auch hinzukriegen ist.
Fragt sich dann, ob -- angenommen der Arduino war sonstwie stromversorgt -- nicht schon das Aufstecken des USB-Kabels einen Reset auslöst, wenn der PC erkennt, dass jetzt die serielle Schnittstelle existiert.


(Danke rancor, dass wir deinen Thread so nett missbrauchen dürfen.
Reset passiert übrigens vor dem Upload, damit der bootloader überhaupt drankommt)
;)

rancor187


(Danke rancor, dass wir deinen Thread so nett missbrauchen dürfen.
Reset passiert übrigens vor dem Upload, damit der bootloader überhaupt drankommt)
;)


Kein Ding :D

Vllt kann mir noch jem. erklären warum soviel Spannung abfällt beim Optokoppler, das habe ich nicht verstanden.

Danke

michael_x

Quote
kann mir noch jem. erklären warum soviel Spannung abfällt beim Optokoppler


So viel ? Eher warum so wenig, wenn du die Eingangsseite nimmst ?
Eine "normale" LED hat in der Regel einen Spannungsabfall von 1.8V (rot) bis 3.2V (blau/weiss),
die LED in deinem Optokoppler nur typ. 1.2V ( bei IF = 10mA ) Datenblatt 4N36

Quote
Auf der LED-Seite liegen 13,3V (schwankt wohl um 0,5V) mit einem 730Ohm Widerstand an. Beim Messen mit aktivem 4N36 werden daraus allerdings 1,15V und ich weiß nicht warum das so ist .... aber es funktioniert. Auf der Emitter/Collector kann der der Arduino seine eigenen 5V über einen Digitaleingang als HIGH auslesen, wenn Spannung auf der 12V Schiene liegt (10k Ohm Widerstand).


Ich hoffe, du hast den 730 Ohm Widerstand in Reihe mit dem Optokoppler an deinen 13,3V.
Dann teilen sich die 13.3V  in   1.3V am Optokoppler und 12.0V am Widerstand, und es fliessen 12/0.73 = 16.5mA ( Just fine )

rancor187

Das muss ich dann noch überprüfen, ob das so it.

Danke für die Info.

Go Up