Hallo Habe ein Problem mit einen Windrichtungsanzeiger altes Conrad teil. Der hat ein Poti eingebaut was sich über 360 Grad durchdreht. bei ca der hälfte des gemessenen ADC wertes entspricht 180-185 Grad läuft der läufer über den Schleifkontakt hinaus bauartbedingt meine Frage wie kann ich das überbrücken so das mein ADC bei dieser Windstellung nicht verückt spielt??? Danke
Schalte nen Passenden R parallel zum Schleifer und einem Poti.Ende In der Poti-Pause erhälst du dann eine Fixen Wert und der ADC eingang kann nicht floaten.
Hallo Habe ich es richtig verstanden so in etwa??? Danke
z.B. aber den wert wenigstens >= dem Potiwert. An welches ende musst du ausprobieren und hängt von der Auswerteschaltung ab. test the best
habe ein 68kohm widerstand dazwischen geschaltet. der bereich ist weg wo mir das poti müll bringt. nur stimmt jetzt meine windrichtungs berechnung nicht. Alles was zwischen 0 und 180 grad ist normal danach kommt bei 270 grad über 30 grad potidrehung immer der gleiche adc wert. 180 und 360/0 sind um 20 grad daneben. kurz gesgat meine lineare funktion ist hinüber. was nun.
Das ist die ganz billige Methode... und wieso nicht einen Drehgeber bzw. eine Lochscheibe mit Opto? Kannst du über die Flanken auswerten welche Richtung und vor allem auch wie schnell...
hallo weil es technisch nicht geht. es ist ein orginal windmesser von elv. Dort ist ein poti drin. es gibt einen kleinen bereich ca 2 grad der mir müll liefert ist der schleifen übergang. Dieser müß überbrückt werden.Er liegt bei 180-182 grad. adc wert 1023=180grad adc wert 1=181 grad adc wert 1 kommt aber erst 2 grad später. dazwischen bekomme ich adc werte von 120-600 im zickzack. gruß herrmann
Ich weiss jetzt nicht, wie hochohmig der Eingang des ADC ist, auch nicht, welchen Wert dein Poti hat. Auf jeden Fall müsstes du den R viel größer machen als den Potiwert und gleichzeitig viel kleiner als den ADC-Eingangswiderstand.
hi, Herrmann, unlösbar ist das Problem, wenn die ist: Die Windrichtungsaneige von 0 bis 360 Grad wir abgebildet auf ein Potentiometer. Dann läßt sich der Sprung von 359,9° auf 0° mit keiner Lineatitätsschaltung überbrücken. Deshalb gibt es Doppelpotis mit 0° Verschiebung dawischen (hatte ich mal in der Hand aus einem Simulator aus der Zeit vor den Transistoren) und Encoder mit Gray-Code. Wenn das gekaufte Gerät die Windrichtung mit Sprung meldet, dann war es wohl von der billigen Sorte. ciao Wolfgang Horn
das poti hat 50kohm. der wiederstand dazwischeen hat 120kohm adc hochomig??? so lese ich den adc aus uint16_t ReadChannel(uint8_t mux) { uint8_t i; uint16_t result; // ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0) ; // Frequenzvorteiler ADCSRA = (1<<ADEN) | (1<<ADPS0) ; // Frequenzvorteiler // setzen auf 8 (1) und ADC aktivieren (1) ADMUX = mux; // Kanal waehlen //ADMUX |= (1<<REFS1) | (1<<REFS0) ; // interne Referenzspannung nutzen ADMUX |= (1<<REFS0) ; // interne Referenzspannung nutzen /* nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen" */ ADCSRA |= (1<<ADSC); // eine ADC-Wandlung while ( ADCSRA & (1<<ADSC) ) { ; // auf Abschluss der Konvertierung warten } result = ADCW; // ADCW muss einmal gelesen werden, // sonst wird Ergebnis der nächsten Wandlung // nicht übernommen. /* Eigentliche Messung - Mittelwert aus 4 aufeinanderfolgenden Wandlungen */ result = 0; for( i=0; i<4; i++ ) { ADCSRA |= (1<<ADSC); // eine Wandlung "single conversion" while ( ADCSRA & (1<<ADSC) ) { ; // auf Abschluss der Konvertierung warten } result += ADCW; // Wandlungsergebnisse aufaddieren } ADCSRA &= ~(1<<ADEN); // ADC deaktivieren (2) result /= 4; // Summe durch vier teilen = arithm. Mittelwert return result; } mux =adc6 mega 8 danke
> das poti hat 50kohm. > der wiederstand dazwischeen hat 120kohm > adc hochomig??? Der ADC hat einen Eingangswiderstand von mindestesn 55 MOhm und typisch 100 MOhm. Du kannst also R2 gerne noch etwas größer wählen. Alternativ könntest den Linearitätsfehler vom AVR herausrechnen lassen. Dann ist die Größe von R2 nicht so wichtig. Ein Problem wird aber bei dieser Einzelpotilösung immer bleiben: Der Übergang von 5 V nach 0 V beim Wechsel des Schleifers von der Widerstandsbahn in die Lücke erfolgt nicht sprunghaft, sondern kontinuierlich innerhalb eines kleinen Winkelintervalls, da der Schleiferkontakt eine gewisse Ausdehnung hat. Innerhalb dieses Winkelintervalls wirst du alle Spannungswerte zwischen 5 V und 0 V messen, so dass die Messung nicht eindeutig ist. Soll der ausgelesene Wert nur angezeigt und nicht in einem Regler o.ä. weiterverarbeitet werden, dürfte das aber nicht so schlimm sein. Es gibt noch eine andere Möglichkeit, den störenden Effekt zu mindern: Du kennst etwa die maximale Winkelgeschwindigkeit des Windrichtungs- anzeigers unter normalen Bedingungen und damit die maximale zeitliche Spannungsänderung. Am Übergang macht die Spannung i.Allg. größere Sprünge, die durch die Auswertesoftware auf dem AVR erkannt werden können. Eventuelle Zwischenwerte an dieser Stelle werden dann einfach nicht ausgegeben bzw. durch den letzten sinnvollen Messwert (5 V bzw. 0 V) ersetzt.
>Der Übergang von 5 V nach 0 V beim Wechsel des Schleifers von der >Widerstandsbahn in die Lücke erfolgt nicht sprunghaft ... Warum nicht. Wird da der Schleifer nicht 'sprunghaft' ins 'Niemandsland' gestellt, sobald er den Kontakt mit beiden Endpunkten verliert. Und er muss ihn verlieren, da er sonst einen Schluss über dem Poti erzeugt. Wenn ein hochohmiger Widerstand eingesetzt wird (1 Meg unter den gannten Bedingungen wäre ganz brauchbar), dann ziehts den ADC-Eingang auf Null und er hat für 1-2° die Anzeige 181° Windrichtung. Ist an der Stelle ein kleiner Schönheitsfehler - aber nur unwesentlich falsch. Der 1-Meg macht dann bei 0° resp. 360° den größten Fehler von rund 1,2% (statt 2,5V kommen dann nur 2,47V am Poti heraus - wieder 2° Fehler in der Windrichtung. Der Softwarevorschlag von yalu ist auf jeden Fall sinnvoll als Ergänzung, denn der Sprung an der Stelle bleibt.
Nachtrag: Weiß jemand, wie groß die Linearitätsabweichungen des verwendeten Potis überhaupt sind? Sicher nicht unter 1%!
> Warum nicht. Wird da der Schleifer nicht 'sprunghaft' ins > 'Niemandsland' gestellt, sobald er den Kontakt mit beiden Endpunkten > verliert. Und er muss ihn verlieren, da er sonst einen Schluss über > dem Poti erzeugt. Bevor er den Kontakt komplett verliert, wächst der Übergangswiderstand zwischen Bahn und Schleifer, da die Kontaktfläche abnimmt. Befindet sich der Schleifer an Punkt 3 in obiger Schaltung, bildet der veränderliche Übergangswidersand mit R2 eine Spannungsteiler, an dessen Ausgang theoretisch alle Spannungen von 0 V bis nahe 5 V möglich sind.
Danke - ich geb dir recht. Allerdings hatte der OP vorher über rund 2° Drehwinkel einen offenen ADC-Eingang mit beliebigem Ergebnis. Das ist insofern besser geworden, dass es jetzt nur noch Bruchteile eines Grades sind und so dein SW-Vorschlag noch besser zum Tragen kommt.
hallo es lässt sich wohl nur per software regeln habe mal was probiert. ich habe ein array für 3 messungen. also auch 3 durchläufe. hat der erste messwert eine differenz und der zweite und 3 sind gleich hat der wind gedreht.Ist der erste und 2 und dritte unterschiedlich bin ich auf dem gewisssen punkt und gebe 180 grad zurück. so klappts auch ganz gut.messungsintervall 1 sec dh jede 3 sec bekomme ich eine windberechnung,ich denke das kann man verkraften. nur habe ich jetz noch bemerkt das mein poti an einer gesissen stelle ca 40 grad breit immer den gleichen adcwert liefert??? kann ein poti verschleißen ?? windmesser ist ca 8 jahre alt und hat ca 3 jahre im freien dauerbetrieb geleistet damals noch mit elv funksender innenleben. danke
> kann ein poti verschleißen ??
Ernst gemeint?
Da wird ein Schleifer über eine Widerstandsbahn gerieben...
Hallo Habe heute mein 360Grad Poti 50Kohm von Conrad bekommen das gleiche in grün. bei einen ADC wert von 786(mit den obigen code) kann ich das poti ca 40Grad dgrhen ohne das sich der adc wert ändert. zwischen adc 1023 und 0 sind wieder die blöden werten diese habe ich aber per software unterdrückt das geht ganz gut. nur was mache ich mit den lücken dies betrifft umgerechnet den bereich von 270-300 grad???Der Bereich von adc 0 bis zu 768 läßst sich schön regeln. nach den 768 auch wieder bis 1023. Liegt es am ADC des Mega 8 ???? WIe kann man das kompensieren oder abschalten oder liegts am poti???? POTI 50K 1W TYP 357 Danke
Habe es rausgefunden der Vorteiler war zu klein habe diesen auf 8 gesetzt 16/8 nun habe ich keine lücken mehr eine Lineare kurve und eine genaue umrechnung ist jetz möglich. Danke
>Lineare kurve
Interessant, wusste nicht, dass es sowas gibt ;)
Der optimale Arbeitsbereich des ADC geht bis 200kHz, d.h. Vorteiler
darauf einstellen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.