PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Control 1.4 MEGA32 Temperaturmessung



Gonzo25
21.03.2010, 07:51
Hallo zusammen.

Ich bin ein absoluter Neuling und habe für ein Schulprojekt da mal ´ne Frage.

Ich möchte eine Temperaturmessung mit einem NTC-Widerstand (2polig)
machen und an diesem Wert eine Logik verknüpfen:

>30°C => Relais betätigen

Ich weiß aber nicht wie so ein Programm mit Bascom aussehen könnte.
Wie spreche ich denn die Ports an? Kann ich mittels Software die Temperatur bestimmen lassen?

Als Referenzwert habe ich bei 30°C am NTC z.b. 100 Ohm gemessen...


Ich finde auch keine brauchbare Beschreibung von dem Controller auf der CD. Wo finde ich denn sowas?

Gruß Gonzo

Richard
21.03.2010, 10:25
Bau einen Spannungsteiler aus einem normalen R und dem NTC in Reihe.
Dann mittels X= Getadc(0) dern wert auslesen und bei x = > 30 Grad
mit einen Transistor und Pordx.y Ausgang ein Relais schalten.

bascom Hilfe getadc , da sind Beispiele!

Gruß Richard

Kampi
21.03.2010, 11:30
Du baust halt wie oben gesagt einen Spannungsteiler auf und schliest den NTC paralell zu einem A/D Port des Controllers an. Wenn der NTC z.B. einen Widerstand von 100 Ohm bei 30 grad hat nimmst du als zweiten Widerstand auch 100 Ohm dann fallen bei 30 grad 2,5 V am NTC ab.

Da der Controller eine Auflösung von 10 Bit hat ergibt das 1024 (2^10). Und da er 5V als referenzspannung hat rechnest du 5/1024 = 0,048. Gerundet 0,05. D.h. das der Wert im A/D Wandler alle 0,05V um eins erhöht wird. Und da am Spannungsteiler 2,5V abfallen haste einen Wert von 512 als Schwelle.
Wenn du den NTC nun an portA.0 hast schreibst du:

T= getadc(0) Damit wird der ADC Wert von PortA.0 in der Varible T gespeichert
Und danach kommt
If T< 512 then PortC.1 =1 Else portc.1= 0 Sobald T größer als 512 also 2,5V ist schaltet der PortC.1 auf 1.
Wenn du die Sachen in ein richtiges Programm packst und die richtigen Werte nimmst dürfte es so funktionieren.

Gonzo25
22.03.2010, 12:24
Vielen Dank erstmal für die Hilfe

Also mal sehen ob ich das richtig verstanden habe. Ich muß mir das
bildlich vorstellen können. . .

- Port A hat bei diesem controller 8 digitale oder 8 analoge Pins,1x 5V und
1x GND
- Port B C & D sind jeweils 8 digitale, 1x 5V und 1x GND

Ich versorge die eine Leitung des NTC mit 5V, die andere pinn ich auf GND.
Dann zweige ich zwischen NTC und GND eine Leitung zu portA.0 ab.

Die Spannung, die an portA.0 ankommt müsste sich doch bei Temperaturänderung verändern, und das kann ich mit getADC lesen?

Wofür brauche ich dann den Widerstand?

Ach ja, da hab ich noch eine Frage. Das Board wird ja mit 12V versorgt.

Ich habe 4 Pins, wo ich entweder 2 Motoren oder laut Zeichung 4 Relais anschließen kann, die mit diesen 12V funktionieren.

Mit welchem Befehl steuere ich denn diese Pins an, so das ich jedes Relais einzeln steuern kann?

Gruß Gonzo

Kampi
22.03.2010, 12:45
Also
Wenn du ein fertiges Board hast dann stimmt das mit den 8 Ports + 1x GND und 1x 5V. Wenn du nur den Controller alleine hast hat der nur die 8 Ports da die 5V und der GND z.b. bei dem RN-Control direkt vom SPannungsregler kommen.

Ich nehme mal an du kennst das Ohm´sche Gesetz. Wenn ja weißt du das Spannungen an WIderständen proportional zu den Widerständen sind.
Wenn du jetzt nur den NTC nimmst und den an 5V und GND legst hast du keinen Spannungsteiler. Du willst ja wissen wieviel Spannung bei einer bestimmten Temperatur am NTC abfällt um daraus die Temperatur herleiten zu können.
Wenn du nur den NTC alleine hast fällt ja alles am NTC ab egal wie heiß oder kalt der ist.
Wenn du jetzt aber einen festen Widerstand und einen NTC hast verändert sich ja bei einer Temperaturänderung der Gesamtwiderstand der Schaltung und wenn es z.B. kälter wird steigt ja der Widerstandswert des NTCs und wenns es heißer wird sinkt er.
Ein Beispiel:
Festwiderstand 100 Ohm
NTC Widerstand bei 20 Grad 100 Ohm
NTC Widerstand bei 10 Grad 500 Ohm
Spannung 5V

20 Grad:
I = U/R
I = 5V/200 Ohm (NTC + Festwiderstand da es eine Reihenschaltung ist)
I = 0,025A

U(NTC) = RxI
U(NTC) = 100 Ohm x 0,025A
U(NTC) = 2,5V

Also fallen in diesem Beispiel 2,5V an dem NTC ab wenn dieser 20 Grad warm ist

10 Grad:
I = U/R
I = 5V/600 Ohm
I = 0,008 A

U(NTC) = RxI
U(NTC) = 500 Ohm x 0,008A
U(NTC) = 4,166V

Also fallen am NTC 4,16V ab wenn dieser 10 GRad warm ist.

Den zweiten Widerstand brauchste also damit an diesem die Differenzspannung von 5V und U(NTC) abfallen kann.


Und ja mit dem getADC Befehl kannste diese Spannungsänderung verfolgen, vorrausgesetzt der ist in einer Schleife untergebracht, weil der Controller den sonst nur 1x ausführen wird. Aber wenn der in einer Schleife ist wird die Schleife ja immer und immer wieder wiederholt und der Controller speichert den aktuellen Wert halt in der Variable die du diesem getADC Befehl zuweist.
Bei den Relais kann ich dir leider so auf die schnelle nicht weiterhelfen da muss ich selber erstmal schauen.

Richard
22.03.2010, 14:21
Ich mache besser ne Zeichnung.

Gruß Richard

Gonzo25
31.03.2010, 17:45
So, da bin ich wieder.

Also vielen Dank schonmal für die Hilfe. Jetzt leuchtet mir das mit dem Spannungsteiler auch ein...logisch.

Dann werde ich das Ganze mal testen und später berichten.


Gruß, Gonzo