Hallo, ich verwende meinen ATMega16 um zwei Spannungswerte von einem Joystick (ADC0 und ADC1) einzulesen. Wenn der Joystick dran ist, funktioniert alles gut, wenn der Joystick nicht angeschlossen ist werden Werte verschieden von Null(oder von mir aus fast Null) eingelesen... Eigentlich erwarte ich bei einem nicht angeschlossenen Pin dass die eingelesene Spannnung Null ist. hier die ADC Initialisierung: { ADCSRA |= (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); ADCSRA |= (1<<ADEN); ADMUX |= (1<<REFS0); ADMUX &= ~(1<<REFS1); } Stichwort Pull-up: Ich habs auch schon mit DDRA = 0x00 und PORTA=0, probiert, aber es aendert nix. Wenn man den ADWandler wie oben konfiguriert müsste er ja selber wissen, dass seine Pins inputs sind. warum frag ich? ich will feststellen ob das Joystick angeschlossen ist oder nicht. Danke für Tipps! mg, Johannes
Hi ein offener Eingang ist im Prinzip eine Antenne und die empfängt die umgebenden Mobiltelefone, UKW-Sender und WLAN-Stationen. Du brauchst extern einen kleinen PullDown (100k) mit dem du deinen Eingang an Masse legst. Wenn der Widerstand die normale Messung nicht beeinflussen soll musst du ihn abschaltbar machen oder den verursachten Fehler rausrechnen. Matthias
Joysticks müssten eigentlich relativ niederohmig sein (unterer/mittlerer Kiloohmbereich; messen...), dann würde der Pulldown mit 100k nicht wirklich ins Gewicht fallen...
Hab das Problem folgendermassen geloest: Ich hab einen weiteren Pin verwendet und einen externen pull-up (10k) drangelegt. Den Stecker des Juysticks hab ich so erweitert, dass er GND mit diesem Pin kurzschliesst. Wenn also das Joystick dran ist hab ich sicher 0V, ansonsten sicher 5 Volt am Pin und das laesst sich einfach und eindeutig feststellen. Und die Messung wird sicher nicht beeinflusst. und das schoenste daran: es funktioniert :) mg, Johannes
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.