Spannung durch Spannungsteiler messen. Arduino

Gast #4172204
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
Gast #4172245
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.
Gast #4172256
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!
#4172414
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
Gast #4172467
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
Gast #4172501
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!
(Firma: Manfred) #4172508
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.
Gast #4172540
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.
Gast #4172551
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.....
Gast #4172567
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.
Gast #4172592
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.
Gast #4172697
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!
#4172716
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
#7371803
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

#7371884
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.

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren