Forum: Mikrocontroller und Digitale Elektronik Spannung durch Spannungsteiler messen. Arduino


von Marius (Gast)


Lesenswert?

Hallo liebe Community,

ich bin dabei mir eine Ganganzeige für mein Motorrad zu bauen. Dafür 
muss ich die Widerstände im Gangsensor auslesen. Genutzt wird ein 
Arduino Nano 5V, max. 40mA Ein-/Ausgang pro Pin.

Ich habe versucht die von 560 - 15000 Ohm verbauten Widerstände mithilfe 
eines Spannungsteilers, wobei der andere Widerstand bei ca. 3500 Ohm 
liegt messbar zu machen.

Das Multimeter gibt mir nun auch passende, sehr gut auswertbare 
Ergebnisse zurück, jedoch schaltet das Arduino wie wild hin und her.
Entsteht irgendwo ein Fehlerstrom, oder warum ist der Eingang nicht 
konstant?

Bei Bedarf erstelle ich gerne eine Skizze der Schaltung.

Mit freundlichem Gruß
Marius

von Tobias L. (murxwitz)


Lesenswert?

dann erstell die mal

von Wolfgang (Gast)


Lesenswert?

Marius schrieb:
> Das Multimeter gibt mir nun auch passende, sehr gut auswertbare
> Ergebnisse zurück, jedoch schaltet das Arduino wie wild hin und her.

Entweder du hast Störungen auf dem Signal, über die dein Multimeter 
hinweg sieht - dann hilft ein Filter vor dem Arduino - oder dein Arduino 
macht Mist, was oft einfach am Programm liegen kann.

von Marius (Gast)


Angehängte Dateien:

Lesenswert?

A7 ist der Analoge Pin zum messen der Spannung im Verhältnis zu GND.

von Marius (Gast)


Lesenswert?

Nein, das Programm arbeitet sehr gut. Es errechnet selbst den 
Schwellenwert zwischen den Gängen. Bsp. (15k + 6,8k) / 2 = 10,9k
Bis 10,9k Ohm wird also der 5. Gang angezeigt, darüber entsprechend der 
6.
Das Programm hielt in vorherigen Tests ohne den Spannungsteiler die 
Gänge konstant.

Danke für die schnellen Antworten!

von Matz K. (xt-matz)


Lesenswert?

Hallo Marius,

Hast Du die Kiste inzwischen stabil am Laufen?
Im Bordnetz muss Du mit kräftigen Störungen rechnen, wie Wolfgang auch 
schon vermutete.
Zwei Ansatzpunkte gibt es da:

1) Deine Stromversorgung auf dem Board, die aus den "12V" (die ja bis zu 
14.xV betragen können + Störspitzen) die Controller Versorungsspannung 
macht, sollte so beschaffen sein, dass ihr Störungen nichts anhaben 
können und Schwankungen nicht auf die Versorgungsspannung des 
Controllers durchschlagen. Eventuell etwas filtern.

2) An A7 könnte ein Kondensator nach GND helfen, um 
Schwankungen/Störungen am Analogeingang abzupuffern.

Vielleicht hilft das weiter.

Gruß
Matz

: Bearbeitet durch User
von Marius (Gast)


Lesenswert?

Nein, leider habe ich das Problem bisher nicht lösen können.
Sowohl beim 12V - Input, als auch beim A7 - Eingang sollte ich also mit 
einem Kondensator arbeiten, wenn ich das richtig verstehe. Leider bin 
ich in der gesamten Materie recht unerfahren und berufe mich da auf 
Schulwissen... Wie sollte ich den Kondensator für A7 beispielsweise 
dimensionieren, sprich Spannung und Kapazität?
Hätte hier noch ein paar 50V, 100mF Kondensatoren rumfliegen.

Grus
Marius

von Ulrich F. (Gast)


Lesenswert?

Marius schrieb:
> ich bin dabei mir eine Ganganzeige für mein Motorrad zu bauen. Dafür
> muss ich die Widerstände im Gangsensor auslesen.

Was ist das für ein Gangsensor?
Ich kenne kein Motorrad mit Widerständen im Gangsensor?

Aber was nicht ist, kann ja noch werden......
Suche selber eine Ganganzeige.
Plante eigentlich Motordrehzahl und Raddrehzahl auszuwerten.

Aber wenns einen besseren Sensor gibt, bin ich dabei!

von Wolfgang (Gast)


Lesenswert?

Marius schrieb:
> Hätte hier noch ein paar 50V, 100mF Kondensatoren rumfliegen.

Das halte ich für unwahrscheinlich. Ein Kondensator 100mF/50V dürfte 
größer als ein Trinkbecher sein.

von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

Ich hatte dasselbe Problem mit meiner Haussteuerung, hier hängt eine 
16-Kanal-Matrixtastatur am Analogeingang des Arduino-Mega.

Getestet mit PC-USB-Stromversorgung - perfekt, mit Bleiakku-perfekt.
Dann mit Schaltnetzteil von Meanwell 12 Volt, 7 Ampere und 
Zusatz-Chinaregler LM2576 auf 5 Volt - Analogport schwankt nur mehr.

Ein bisserl Abhilfe bringt:
- AREF mit 0,1 uF Kondensator an Masse
- Analogeingang mit 0,1 uF Kondensator an Masse
- Tauschen des Chinareglers gegen einen hochwertigen Spannungsregler
- das Widerstandsnetzwerk eher niederohmig auslegen, ich hab einen 1k 
Widerstand gegen Masse und die anderen Widerstände liegen zwischen 
0-3,3k gegen VCC.

Und vielleicht tausch ich noch den sch... 12V-Schaltregler gegen einen 
herkömmlichen Trafo.. leider erzeugen gerade die Schaltnetzteile jede 
Menge Störungen...

Bei dir ists halt nicht so einfach... da müsstest dann das Moped 
tauschen.
Oder vielleicht probier deine Schaltung mal mit einer eigenen 
Batterieversorgung.

: Bearbeitet durch User
von Marius (Gast)


Lesenswert?

Hallo Ulrich,
selbstverständlich gibt es solche sensoren. Ich verwende den von der 
Suzuki SV650 bj2003. http://www.sv-ati.de/images/gangsensor.gif
Rate dir allerdings von deiner Methode ab, da Auskuppeln das Ergebnis 
verfälscht und die Auswertung des Geschwindigkeitsensors und 
Kurbelwellensensors schwieriger ist.

Wolfgang, entschuldigung da hat mich wieder die Eile gepackt.. ich 
meinte natürlich uF!

Manfred, das kann gut sein, denn am USB-Port meines PCs lief es 
tatsächlich problemlos. Da mein Motorrad noch ein paar Jahre bleiben 
soll, bin ich gut gewillt deinen Ratschlägen zu folgen.
Leider ist der Spannungsregler auf dem Arduino untergebracht, so dass 
ich da vorerst nicht dran rum fummeln will. Probiere jetzt Kondensatoren 
zwischen +5V und GND aus.

von Ulrich F. (Gast)


Lesenswert?

Danke!
Wird untersucht, ob der für meine Yamaha FJ1200 anzupassen ist.

Marius schrieb:
> Rate dir allerdings von deiner Methode ab, da Auskuppeln das Ergebnis
> verfälscht
Das ist kein Drama.
Problematischer ist der Schlupf, wenn die 130PS mal Auslauf bekommen..

Marius schrieb:
> und die Auswertung des Geschwindigkeitsensors und
> Kurbelwellensensors schwieriger ist
Och nöö...
Zählen geht schon...
Vorderradimpulse kann ich vom Reedkontakt des Tachos abnehmen, Original 
vorgesehen für die automatische Blinkerrückstellung der US Modelle.
Zündimpulse Von der Primärseite der Spulen. Ist noch eine TCI, keine 
CDI.

Die eigentlich wichtige Information, welche ich brauche, ist eine "Bin 
im letzten Gang" Information bei Schleichfahrt. Im Blümchenpflückmodus 
fehlt mir der 6te Gang, als Beruhigungsgang. Will immer 
hochschalten.....

von Ulrich F. (Gast)


Lesenswert?

Nachtrag:
Da du eine Suzuki fährst, könnte ich dir noch einen Tipp geben.

Die alten GS 750 Haben den gleichen Sensor, aber ohne Widerstände, da 
werden die 7 Kabel nach außen geführt. (serienmäßige Ganganzeige).
Gilt glaube ich auch für die GSX Kartana.
http://www.tiger-lowrider.de/xtc/images/product_images/popup_images/5366_0.JPG

Auch die neuere GS500E hat diese Kontaktplatte, da wird allerdings nur 
der Leerlauf raus geführt. Den Rest müsste man noch anlöten.

von Marius (Gast)


Lesenswert?

Da noch weitere Funktionalitäten folgen sollen, kann ich leider keine 
Eingange verschwenden und werde weiter den Vorhandenen Gangsensor 
nutzen. Zuvor wollte ich wie von Ulrich dagelegt mehrere Eingänge 
nutzen, jedoch ist die Anzahl an Pins am Arduino Nano zu knapp. Neben 
der 3farbigen 7segment anzeige (11pins), fällt ein Pin für 
Schaltblitz-LED und 2Pins für entsprechende auswertung weg.

Ulrich F. schrieb:
> Die eigentlich wichtige Information, welche ich brauche, ist eine "Bin
> im letzten Gang" Information bei Schleichfahrt.

Diese Information ist für mich auch am wichtigsten, der Rest läuft nach 
Gehör.

von Marius (Gast)


Lesenswert?

Ihr lieben,

es ist kaum zu glauben, aber es funktioniert prima mit einem 100uF 
Kondensator zwischen GND und A7. Hatte noch einen 16v aus einer 
Ferbedinung. "Magie = Physik / Wollen"

Ich weiß nicht ob ich den Thread schließen muss, oder Beiträge als 
hilfreich kennzeichnen muss, bin ja neu hier. Lasst es mich kurz wissen.

Danke für eure ausgiebige Hilfe!

von Ulrich F. (Gast)


Lesenswert?

Ach ....
Dein Dank ist uns Belohnung genug!

von Matz K. (xt-matz)


Lesenswert?

Hallo Marius,

Manfred S. schrieb:
> Ein bisserl Abhilfe bringt:
> - AREF mit 0,1 uF Kondensator an Masse
> - Analogeingang mit 0,1 uF Kondensator an Masse
> ...

Wie Dein Board aussieht, weiß ich nicht: wegen AREF usw. Wie Manfred 
schreibt, sollte auch an VREF mit einem Kondensator geglättet werden.

An A7 (Analogeingang) aber auf jeden Fall einen Kondensator. Die 
Geschichte ist ja relativ hochohmig (3,5k / ...bis 15k) und kann sich 
dann in so einem rauhen Umfeld jede Menge Müll einfangen (z.B. neben 
Schwankungen auf der 12 V Seite auch aus dem Störfeld der irgendwo in 
der Nähe erzeugten Zündspannung usw.).

Klappt es besser, wenn der Motor nicht läuft?

Die Werte für die Kondensatoren sind erstmal nicht so wichtig. Wichtiger 
finde ich, dass Du zunächst herausfindest, ob das eine Besserung bringt 
und Du auf dem richtigen Weg bist. Die Ereignisse (Gänge schalten) 
treten ja nicht so hochfrequent auf, so dass Du auch durchaus mal einen 
100uF für einen Test dranhängen kannst. Da Du mit 5V arbeitest, reicht 
für einen Test zunächst auch ein 6,3V Typ. (Ansonsten würde ich für die 
"Serie" nachher einen höheren Spannungswert nehmen).

Filterung der 12V Spannung:

Pragmatische Lösung fürs Erste wenn Du keine große Bauteilauswahl wie 
Induktivitäten hast (nicht sehr stylish aber ggf. hilfreich) ist ein 
Tiefpaß am 12 V Eingang aus Serienwiderstand und Kondensator, z.B. 10 
Ohm in Serie und dann auf 100µF nach GND.
Der 10 Ohm muss nur den Strom abkönnen und darf nur soviel Spannung 
schlucken, dass es für die nachfolgende Schaltung noch reicht. D.h. 
Strom Deiner Schaltung messen und ein bischen rechnen. (z.B. bei 100mA 
ergäbe sich 0,1W im Widerstand und 1V Spannungsverlust.)

Schönen Sonntag und viel Erfolg.
Gruß Matz

von Matz K. (xt-matz)


Lesenswert?

Mmh, war ich wohl zu spät. Mein Beitrag hat sich überschnitten.
Na gut: hauptsache es hats gebracht.

von Justus (justus_s)


Lesenswert?

Hallo Marius,

ich bin gerade auf deinen Beitrag gestoßen, weil ich so ziemlich das 
Gleiche bauen möchte. Ich habe die selben Widerstandswerte und möchte 
mit einem Raspberry Pi Pico insgesamt 6 LEDs für die jeweiligen Gänge 
ansteuern.
Würdest du deinen Code dafür bereitstellen?

Gruß Justus

von Helmut -. (dc3yc)


Lesenswert?

Nach 8 Jahren?????????

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Justus schrieb:
> Ich habe die selben Widerstandswerte und möchte
> mit einem Raspberry Pi Pico insgesamt 6 LEDs für die jeweiligen Gänge
> ansteuern.

Mal wieder mit Orbitalkanonen auf interstellare Staubteilchen 
schießen?!? ;-)
Sowas macht selbst ein oller ATtiny24 mit links und langweilt sich noch 
tierisch dabei.

> Würdest du deinen Code dafür bereitstellen?

Ob der OP hier noch aktiv ist?

Das Programm ist selbst für einen Anfänger mit der Arduino-IDE machbar. 
Nur Mut. Die Schaltschwellen der Gänge kann man vorher mit Excel 
ausrechnen. Siehe Spannungsteiler.

Die "Lösung" des OP mit 100uF am Analogeingang war aber Zufall und 
Murks. Dort packt man eher einen RC-Tiefpass aus 10kOhm + 100nF dran. 
Siehe Anhang.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Hmm, ich war dann mal so frei, siehe Anhang.

von Justus (justus_s)


Lesenswert?

Cool, vielen Dank euch!
Raspberry pico kostet 5 Euro und ich hab da am meisten Ahnung von. 
Wollte den Umfang gering halten :)
Werde mir den ATtiny dennoch mal zu Gemüte führen.

Gruß
Justus

von Justus (justus_s)


Lesenswert?

Helmut -. schrieb:
> Nach 8 Jahren?????????

Wollte eigentlich einen neuen Thread erstellen, da wurde mir dieser 
Beitrag von Marius vorgeschlagen. Ein hoch also auf die Suchfunktion!

von Helmut -. (dc3yc)


Lesenswert?

Justus schrieb:
> Helmut -. schrieb:
>> Nach 8 Jahren?????????

> Wollte eigentlich einen neuen Thread erstellen, da wurde mir dieser
> Beitrag von Marius vorgeschlagen. Ein hoch also auf die Suchfunktion!

Trotzdem ist das Leichenfledderei!

: Bearbeitet durch User
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.