PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Stromspannung messen



sulu
30.11.2005, 15:32
Hallo Leute
ich benutze die Rncontrol mit Mega 32. Kennt ihr ein Programm das sozusagen die "Volts" an einem Port (bzw zwischen Gnd und z.b Pa1)
misst ?
Habe nämlich eine Idee wie man aus einer 2 Kanal fernsteuerung eine 8 Kanal machen kann.


Ps: Kann ich eigentlich einfach Strom an einen Port und GND legen (wenn er vorher auf input gestellt wurde? Wenn ja wie viel?

Danke

whitesun
30.11.2005, 17:44
[OT on]
Eine Frage? Was möchtest Du denn nun messen? Ich mußte diese Frage einfach stellen, da es eine Stromspannung nicht geben tut. ;) (Ich weiß fürchterliche Grammatik :-& )

Ich finde es fürchterlich, daß in öffentlich-rechtlichen und privaten Fernsehsendungen und im Rundfunk immer wieder von der Stromspannung gesprochen wird. Wenn man es dann genau nimmt und sich zwischen dem Strom und der Spannung ein Mulitplikationszeichen vorstellt, dann hätten wir eine neue Beschreibung für "Leistung" :D

Das mußte jetzt mal sein :-#
[OT off]

On Topic again:

Du möchtest die Spannung messen.

Gruß

Armin

sulu
30.11.2005, 17:48
Hab darüber halt mal nicht nachgedacht.

Hat mir aber jetzt nicht so wahnsinnig weitergeholfen.
Gruß Simon

sulu
30.11.2005, 18:07
Ach ja , hier meine Idee:
Eine normale Stufenlose 2 Kanalfernsteuerung bekommt ja recht günstig. Wenn man jetzt etwas mit Greifarm oder so (also mit mehreren steuerbaren Elementen) fernsteuern will geht das mit 2 Kanälen ja schlecht. In den Sendern befinden sich ja Potis. Man könnte sie dann auch durch verschiedene Widerstände ersetzen sodass am Empfänger immer genau 0,5 V mehr rauskommen jenachdem welcher Widerstand "aktiviert" ist die Rncontrol misst diese Spannungen(also insgesamt müssten es in diesem Fall 9 verschiedene sein. Wegen 5V / 0,5 wobei die 0V nicht mitgezählt wird. Dann gibt das Board halt verschiedene wie vielleicht Servo 1 nach rechts oder so.

Torsten_G
30.11.2005, 18:34
...
In den Sendern befinden sich ja Potis. Man könnte sie dann auch durch verschiedene Widerstände ersetzen sodass am Empfänger immer genau 0,5 V mehr rauskommen jenachdem welcher Widerstand "aktiviert" ist
...

Hmmm... ich glaube, Du hast etwas falsche Vorstellungen von der Funktionsweise eines RC-Empfängers.

Der Empfängerkanal wird alle 20ms auf "High" (0V auf 5V) geschaltet, und zwar für den Zeitraum der Pulsweite, die (üblicherweise) je nach Potistellung 1 bis 2ms beträgt.
Dieses Prinzip wird auch PWM (PulsWeitenModulation) genannt.

Also hilft es Dir wenig, Spannungen messen zu wollen, was Du brauchst, ist eine Messung der Pulsweite!

Die 5V sind natürlich praktisch, weil damit der Empfänger direkt TTL-kompatibel ist... \:D/

Im Prinzip:
Wenn Port auf High geht, Timer starten, wenn Port auf Low geht, Timer stoppen und den Timerwert verarbeiten.

Wenn Du mal ein paar Beiträge tiefer schaust, da wird grade diskutiert, wie man eine RC-Kanal ausliest.

Und zur Ansteuerung eines Servos musst Du dann natürlich ein passendes PWM-Signal erzeugen, dass dem Ausgangssignal des Empfängers entspricht.

In Bascom gibt es sogar fertige Funktionen dafür, schau Dir mal "Pulsein" und "Pulseout" an, da hat mich letztens Bruno drauf gebracht...

Und klick mal auf die blauen Links hier im Text - dahinter sind auch Erklärungen verborgen!

Viele Grüße

Torsten

whitesun
30.11.2005, 19:02
Da sulu ja in seinem Sender die normalen Potis gegen Festwiderstände austauschen möchte, wenn ich das richtig verstanden habe, dann sollten doch bei unterschiedlichen Schalterstellungen auch unterschiedliche PWM-Signale am Empfänger ausgegeben werden, die ja dann konstant wären. Diese erzeugen doch auch unterschiedliche Spannungen.

Könnte er diese nicht über den ADC des Controllers einlesen und dann den verschiedenen Spannungen bestimmte Ausgangsbefehle zuordnen?

Gruß

Armin

Andree-HB
30.11.2005, 19:15
Diese erzeugen doch auch unterschiedliche Spannungen


Auch Du solltest Dir mal die generelle Funktionsweise von PWM angucken...da tut sich spannungsmässig nämlich nix ändern tun...nur die Einschaltdauer. :-)

whitesun
30.11.2005, 19:29
Komisch, die Steuerungsrechner unserer Maschinen erzeugen auch PWM Signale, die aber nicht durch eine Einheit ausgewertet werden um dann anschließend auf die Hydraulikventile geschaltet werden.

Diese PWM-Signale werden direkt vom Ausgang des Controllers auf die Ventilspulen gegeben. Damit steuern wir Fahrgeschwindigkeit, Drücke usw. Da ist mir nie bewußt geworden, daß eine Spule auf die Frequenz reagiert.


...da tut sich spannungsmässig nämlich nix ändern tun...

Ein wenig schon. ;)


Wenn die Spannung 12V und die Pulsweite genau 50% beträgt, so bedeutet das, dass der Motor nur für die halbe Zeit mit der Spannung versorgt wird. Dies wäre vergleichbar mit dem Fall, dass der Motor für die volle Zeit mit einer kontinuierlichen Gleichspannung von 6V betrieben würde.

Meiner Meinung nach ist eine PWM nichts anderes wie eine Rechteckspannung, bei der man mit unterschiedlichen ON/OFF-Zyklen die Spannungshöhe variert.

Gruß

Armin

Marco78
30.11.2005, 19:53
Hat mir aber jetzt nicht so wahnsinnig weitergeholfen.
Um dir wirklich helfen zu können, müsste man aber schon fast bei Null anfangen. Das ist auch nicht böse gemeint! Jeder musste so anfangen.
www.elektronik-kompendium.de <--- dort findet man zu (fast) jedem Thema leicht verständliche Erklärungen.

Der maximale Strom einen Pins als Eingang wird durch den Widerstand der Eingangs festgelegt. Du kannst doch nicht mehr Strom reinschieben, als der Pin aufnimmt. Vergleich zur Wasserleitung: Du kannst am anderen Ende noch so viel pressen und schieben, was nicht durch die Leitung passt, geht auch nicht durch.

Was Spannungen messen angeht (Strom kann man sowieso nicht direkt messen, aber da auch noch drauf einzugehen wäre für den Anfang zu viel), da bist du nicht der erste, der das probiert. Auch nicht der erste mit Bascom. Such im Forum mal nach ADC. Dort findest du die Befehle und Beschaltung um Spannungen zu messen.

Manf
30.11.2005, 19:56
PWM wird in der Codierung für Fernsteuersignale verwendet (oben) und als Tastverhältnis das gleich von einem Leistungsschalter ausgewertet werden kann (unten).
Wenn man auf PWM klickt ist man gleich im Wikibereich mit der Erklärung, die andere steht bei Servos. [-(
Gut das das jetzt passiert, man muss also über "RN-Wissen Artikelbereich" (https://www.roboternetz.de/wissen) in der Kopfzeile gehen. Oder da gleich zu
Motoren (https://www.roboternetz.de/wissen/index.php/Kategorie:Motoren).
Manfred


http://kos.informatik.uni-osnabrueck.de/download/report/img34.gif
-----------------------------------------------------------------------------------

https://www.roboternetz.de/wiki/uploads/Main/pwm.gif

whitesun
30.11.2005, 20:16
So langsam klärt sich das auf.

Durch meine berufliche Vorbelastung, gehe ich bei PWM halt immer von einer Ansteuerung mit variabler Spannungshöhe aus. :-k

Dann kann sulu also nur die Zeit der Impulsdauer auswerten. Und wieder was gelernt. ;)

Gruß

Armin

Vogon
30.11.2005, 20:29
.. gehe ich bei PWM halt immer von einer Ansteuerung mit variabler Spannungshöhe aus.

Jetzt komme ich aber ins Grübeln.

Wenn die Abkürzung für Pulsweitenmodulation = PWM ist.

Dann ist die Spannungsmodulation = Amplitudenmodulation = AM ?

Oder bin ich da jetzt daneben ?

Manf
30.11.2005, 20:36
Die beiden oben sind leider beide PWM.
AM und FM gibt es natürlich beim Rundfunksignal wo der Träger amplitudenmoduliert oder frequenzmoduliert ist.
Es gibt dann noch die Phasen-Modulation und die Puls-Code Modulation ....... ..... ...... .....
Manfred

whitesun
30.11.2005, 20:48
Bei der Leistungs-PWM wird bei einer Spannungshöhe von, sagen wir mal 5V nur das Puls/Pause-Verhältnis geändert. 5V bei 100% Einschaltdauer = 5V, bei einer Einschaltdauer von 50% = 2,5V und als letztes, bei einer Einschaltdauer von 25% = 1,25V. Siehe Zeichnung mit den roten Kurven ein paar Artikel weiter oben. Ganz links die Einschaltdauer von ~25% dann nach rechts rüber wird die Einschaltdauer immer länger und somit die Spannung immer höher.

Bei der Amplitudenmodulation wird über eine Grundfrequenz ein Nutzsignal gelegt und übertragen. Auf dem Bild kann man das gut sehen:

http://upload.wikimedia.org/wikipedia/de/thumb/6/64/Addition_schaltung.png/600px-Addition_schaltung.png

Was nun die Nutz- und welches die Trägerfrequenz kann ich jetzt nicht direkt sagen. Ist ein Funktechniker hier, der das mal erklären kann?!?Help!


....Es gibt dann noch die Phasen-Modulationund die Puls-Code Modulation ....... ..... ......

Jetzt wird das verwirrend und macht mir Angst 8-[ ;)

Gruß

Armin

Torsten_G
30.11.2005, 21:46
Könnte er diese nicht über den ADC des Controllers einlesen und dann den verschiedenen Spannungen bestimmte Ausgangsbefehle zuordnen?


Klar, zumindest theoretisch:
Man glättet das PWM-Signal des Empfängers mit einer R-C-Kombination, allerdings leidet darunter die Dynamik ein wenig, weil der Kondensator den Signalwechsel dämpft. Dann kämpft man noch die Restwelligkeiten nieder und glättet das ganze noch Softwaretechnisch durch Mittelwertbildung o. ä.

Und all das, damit man einen ADC-Port mit einem RC-Signal quälen kann - naja... wenn man die Schmerzen braucht... :mrgreen:

Grüße

Torsten

whitesun
01.12.2005, 07:04
...das PWM-Signal des Empfängers...

Nachdem ich da nun mal nachgelesen habe in der Abteilung: Motoren ist das nun auch ein wenig verständlicher geworden. Da macht es aber wohl weniger Sinn das Signal auf Spannungshöhe auszuwerten und durch diverse Glättung- und Aufbereitungsstufen zu schicken, nur um nachher evtl. festzustellen, daß die Differenzen zwischen den einzelnen Spannungen nur minimal sind.


Und all das, damit man einen ADC-Port mit einem RC-Signal quälen kann

Stimmt, dann reicht auch ein Pin zur Auswertung der Impulsdauer.


- naja... wenn man die Schmerzen braucht...

http://www.smilies-world.de/smilies/smilies_Picture/computer/5.gif

Gruß

Armin

Manf
01.12.2005, 07:23
Nur noch kurz zur Aplitudenmodulation:
Manfred
http://www.ieap.uni-kiel.de/plasma/ag-piel/elektronik/V17.html
http://images.google.de/images?q=tbn:TxDp2ydt_vkJ:http://www.ieap.uni-kiel.de/plasma/ag-piel/elektronik/f17_3.jpg (http://www.ieap.uni-kiel.de/plasma/ag-piel/elektronik/f17_3.jpg)

Vogon
01.12.2005, 11:01
Meine Grübelei und googeln hat doch noch was gebracht !

Pulse Amplitude Modulation (PAM)
http://robotics.eecs.berkeley.edu/~sastry/ee20/modulation/node6.html

sulu
01.12.2005, 13:33
Zitat:
"da tut sich spannungsmässig nämlich nix ändern tun...nur die Einschaltdauer."

Hä, was geht ab?
Es muss sich doch die Spannug ändern. Der Motor dreht sich doch im Rc Auto auch immer schneller . Man muss doch die Spannung die am Drehzahlsteller rauskommt mit der Rncontrol messen können.

Werner_Just
01.12.2005, 14:27
Hallo Sulu,

> Es muss sich doch die Spannug ändern. Der Motor dreht sich doch im Rc
> Auto auch immer schneller . Man muss doch die Spannung die am
> Drehzahlsteller rauskommt mit der Rncontrol messen können.

Nein, bei PWM ändert sich die Spannung nicht!
Was sich ändert ist der Gleichanteil des PWM-Signals duch die Änderung des Impuls / Pausen Verhältnisses.

Mehr ist PWM nicht.

Aber weils so schön geht, nutz man PWM häufig zur Erzeugnung von varaiablen Spannungen.

Dafür wird einfach mit einem Tiefpass, der Wechselspannungsanteil ausgefiltert. Übrig bleibt der Gleispannungsanteil, der schön linear zum Impuls / Pausen Verhältnis ist.

Mehr steckt nicht dahinter.

Naja, ein bisschen schon. Man kann auch den Strom statt der Spannung Filtern. Dann nimmt man halt 'ne Spule, die praktischerweise im Motor schon drin ist.

Ciao,
Werner

Torsten_G
01.12.2005, 19:36
Zitat:
...
Es muss sich doch die Spannug ändern. Der Motor dreht sich doch im Rc Auto auch immer schneller . Man muss doch die Spannung die am Drehzahlsteller rauskommt mit der Rncontrol messen können.

Man muß nicht zwingend die Spannung regeln, um die Drehzahl eines Motors zu regeln oder eine Lampe zu dimmen.

Nehmen wir mal die Lampe in Deinem Zimmer. Lichtschalter an, schon ist es hell, wir alle kennen das... O:)

Und weil wir uns hier die Realität zurechtbiegen können, wie wir wollen, nehmen wir außerdem noch vereinfachend an, wir betreiben die Lampe mit 230V Gleichstrom, damit uns die blöde Netzfrequenz nicht reinspukt... :-b

Jetzt stell Dir mal vor, Du hättest verdammt flinke Finger und wärst in der Lage, den Lichtschalter 500x in der Sekunde ein- und auszuschalten, und zwar genau so lange, wie Du das möchtest, von 0 (0% Einschaltdauer) bis 2 Millisekunden (100% Einschaltdauer).

Sagen wir mal, Du schaltest bei 500Hz für jeweils 1ms ein, das würde einem Puls-Pausen-Verhältnis von 50% entsprechen.
Die Spannung im Kabel würde logischerweise immer entweder 0V oder 230V betragen, aber trotzdem hätte die Lampe nicht die Zeit, ihre volle Lichtstärke zu entwickeln.

Nichts anderes macht PWM!
Im Drehzahlregler entsprechen die MosFet´s dem Lichtschalter und der µC (oder eine andere Logik) übernehmen die "Betätigung", weil es eben für uns doch etwas schwierig ist, ein paar hundert oder tausend mal pro Sekunde auf einem Taster rumzutappen... :mrgreen:

Und folgerichtig kommt der Motor nicht voll auf Touren, weil er immer wieder kurz an- und wieder ausgeschaltet wird! :idea:

Für die Experten:
Natürlich ist das Beispiel ziemlich vereinfacht, aber es trifft hoffentlich den Kern der Sache...

Viele Grüße

Torsten

Marco78
01.12.2005, 20:05
Fakt ist aber auch, das die Modulation nach einem Tiefpass mit einem ADC messbar ist.
Und das ist u.U. noch einfacher zu programmieren als die Pulsweite zu messen (zumindest für jemanden, der schon Probleme mit ADC's hat)

whitesun
01.12.2005, 20:19
Natürlich ist das Beispiel ziemlich vereinfacht, aber es trifft hoffentlich den Kern der Sache...

Eine sehr schöne Erklärung und trifft es. ;)

Und jetzt noch ein wenig Hardcore zum Berechnen des arithmetischen Mittelwertes der Spannung:

Vt = ti / (ti + tp)

Vt = Tastverhältnis
ti = Impulszeit
tp = Pausenzeit

Uav = u * Vt

Uav = arithmetischer Mittelwert der Spannung
u = Spannungshöhe

Beispiel:

ti = 1ms
tp = 1ms
u = 5V

Vt = ti / (ti +tp) = 1ms / (1ms + 1ms) = 0,5

Uav = u * Vt = 5V * 0,5 = 2,5V

Gruß

Armin

Torsten_G
01.12.2005, 20:46
...
Eine sehr schöne Erklärung und trifft es. ;)
...

Joho... PWM zum Selberbasteln, sozusagen... :mrgreen:

@Marco:

Dazu würde doch bestimmt ein Stückchen Hardware gehören, wie legt man einen solchen Tiefpass-Filter aus?

Viele Grüße

Torsten

Guy
02.12.2005, 11:05
Ach ja , hier meine Idee: In den Sendern befinden sich ja Potis. Man könnte sie dann auch durch verschiedene Widerstände ersetzen
Die Idee ist nicht schlecht, aber du kannst keine Zwei oder mehr Steuersignal gleichzeitig haben. Oder du müßtest in der Fernsteuerung mit einem Takt die einzelne Widerstände anschalten oder abschalten. Aber was geschieht wenn du von dem höchsten Widerstand auf den Niedrigsten schaltest? Dann wird wahrscheinlich die Pulslänge progressive von 2ms auf 1ms gehen, und all deine Zwischenstellungen einmal schalten.

Das auswerten im Controller währe kein Problem. Die Pulslänge messen, und je nach Dauer Servo 1 ,2, oder 3 ansteuern.

Torsten_G
02.12.2005, 15:38
...
Aber was geschieht wenn du von dem höchsten Widerstand auf den Niedrigsten schaltest? Dann wird wahrscheinlich die Pulslänge progressive von 2ms auf 1ms gehen, und all deine Zwischenstellungen einmal schalten.
...

Das könnte man verhindern, in dem man im Programm nicht gleich auf die erste Wertänderung reagiert, sondern z. B. 5x der gleiche Wert gemessen sein muss, bevor man ihn verarbeitet.

Die käuflichen Systeme takten alle Schalter/Potis durch und übertragen somit pro Empfängertakt eine Stellung. Hat natürlich zur Folge, dass die Reaktionszeit dieser Schaltmodule entsprechend höher ist.

Viele Grüße

Torsten

sulu
18.12.2005, 12:39
@Guy:
Tutmir leid das ich mich jetzt erst hier wieder melde.
Also ich wollte ein Steuerpult mit tastern bauen, wo immer nur ein Signal gesendet wird.
Du meinst das Auswerten ist kein Problem?
weißt du ungefähr wie?