PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfache Spannungsüberwachung...



ejbs
26.12.2005, 11:56
Hallo,

Ich bin recht neu was die Elektronik angeht, ich hab jedenfalls ein Atmel Evaluation Bsoard, und da sitzt grad nen ATMega16 drauf, wollt jetzt grad mal das mit der Spannungsüberwachung machen, aber ich hab kp wie ich das machen soll.

Wollt zum testen mal nen Fotowiederstand benutzen, und je nachdem leuchtet dann die LED oder nit. Wie soll ich den Fotowiderstand jetzt anschliesen bzw an welchen Pins ?

Hier mein Code:


$regfile = "m16def.dat"
$framesize = 16
$swstack = 16
$hwstack = 32
$crystal = 8000000 'Quarzfrequenz
$baud = 9600

Config Adc = Single , Prescaler = Auto
Config Pina.0 = Input
Porta.0 = 1
Config Pind.6 = Output
Portd.6 = 0

Start Adc

' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
If Getadc(0) > 900 Then
Portd.6 = 1
Else
Portd.6 = 0
End If

hacker
26.12.2005, 12:51
Du brauchst dafür einen Spannungsteiler, der deine Spannung auf ein akzeptables Level für dein ADC - Port bringt. Ein Widerstand des Spannungsteiler kann ja dein LDR sein.

ejbs
26.12.2005, 16:22
Danke für die Antwort, also mein Problem ist:

Ich die LED leuchtet leider immer solang der ADC Wert <1200 ist ? das wären doch 12 Volt oder nit ? oder sind das nur 1,2Volt ? Mein anderes Problem ist, wo muss ich den Stromkreis anschliessen ? zwischen Porta.0 und ? Bzw ich hab ja jetzt ein externes netzteil, wenn ich da jetzt eine Spannung von sagen wir ma 2 Volt anleg, dann muss ich den Pluspol an was legen ? und den Minuspol an ? GND ?

Sorry für so ne Frage =/ aber irgendwie muss ichs ja ma lernen :)

Vielen Dank jedenfalls!

hacker
26.12.2005, 16:48
Zu deiner ersten Frage:

An dem Port liegt ja eine analoge Spannung an. Der Microcontroller arbeitet aber digital. Er kennt nur definierte Stufen. Hier kommt der ADC - Port ins Spiel. Er wandelt dir deine analoge Spannung in ein digitales Signal um, und zwar mit einer Auflösung von 10 Bit. Somit hast du 1024 Stufen. Und das ist auch das, was in deinem Code mit 900 steht. Um das umzurechnen in die eigentlich Spannung musst du nur noch Dreisatz rechnen können:

Spannung = Vref*ADC/1024

Vref ist deine Referentspannung. Wenn du keine exterene bereitstellst wirds wohl die interne mit 2.5V sein.

erstmal soweit. Wenn du das obengeschrieben verstanden hast, dann wirste hoffentlich selbst merken, dass dein ADC Wert < 1200 immer zutrifft, weil der Wert höchstens 1024 annehmen kann.

Ausserdem kannst du nur max. soviel Volt an dem Pin messen, wie du deine Referenzspannung Vref eingestellt hast. In dem Fall nur ca. 2.5V. Um aber trotzdem höhere Spannungen messen zu können, bedient man sich einem Spannungsteiler. Dieser teilt die Spanung in einem bestimmten Verhälltnis, dass zum Beispiel statt deinen 12V Versorgungsspannung nur noch 1.2V an dem Pin anliegen (/10) Nachher rechnest du einfach deine Spannung noch *10.

Gruss Hacker