PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Potentiometer an analogen Eingang des Pics anschliesen



tornado
14.03.2007, 12:43
Hallo,
kann mir jemand sagen, wie ich ein Poti an einen Pic anschliessen kann, damit er die Spannung an dem Pin messen kann.

Ich wollte einen Sharp IR Abstandsmesser an den PIC bauen.
Um klein anzufangen wäre es aber wohl erst mal besser einfach nur ein Poti zu nehmen.

Das sollte alles in C programiert werden.

Was muss ich beachten?

Das ist was ich bis jetzt gefunden habe:


setup_adc_ports(ALL_ANALOG); // analoge pins initialisieren
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

delay_ms(5);
int angl;
anlg=read_adc();


Wo steht denn da an welchem Pin gemessen wird?
Das sollte alles am PIC 16F876 funktionieren. Der hat glaube ich 3 Eingänge im Port A die Digital oder Analog sein können.
Ich will jetzt nur einen analogen Eingang und die Voltzahl messen die an diesem Pin sind.

Weiter unten im Programm müsste dann ein " if " stehen (für verschiedene Werte). Ich weis aber nicht wie ein eingehender Wert aussehen könnte.
Also beim Sharp habe ich mal mit dem Multimeter gemessen und da kommen bis zu 2,5V raus.

Viele Grüsse,
Tornado

PsiQ
16.03.2007, 13:59
das poti wird angeschlossen, wie im anhang sichtbar.

der 1k widerstand dient nur zum schutz des eingangs, kann entfallen
(spannung sollte nicht größer als 5V sein,siehe datenblatt)
Der Kondensator puffert schwankungen des signalwertes, je nach größe stärker.
Als Poti kannst du zb ein 10k Poti nehmen

Die meßspannung sollte von 0-5V gehen, nciht unter 0, nciht über 5V, die 2,5V liegen da gut drin.
Vorwiderstände machen nichts, in den port wird ja nur eine spannung eingelesen, es wird kein stromfluß benötigt. (ca 1-4,7k-ohm)

Allerdings sollte man beachten, dass der interne kondensator mit dem der Analog-digital-wandler arbeitet auch erst umgeladen werden muß auf die anliegende spannung, also sollte zwischen einzelnen abfragen der ports genug wartezeit sein, damit sich die spannungen nicht gegenseitig verfälschen.

Zum C-Code kann ich dir leider nicht helfen..

Beispiele findest du auf spruts seite www.sprut.de