PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausgang bei gewählter Temperatur schalten ?



2A
10.02.2009, 20:39
Hallo Community


Ich habe folgende Problematik:

Ich möchte für mein aktuelles Projekt einen Ausgang bei einer bestimmten Temperatur schalten.


Temperatur einlesen und auf einem 2x16 Zeilen LCD ausgeben ist kein problem.
Das Display sieht ungefähr so aus:

________________
|W=23C X=20C|
|Y= 22C Z=21C|
_________________

Ich habe 3 Taster:

hoch, runter, und Speichern

wie gebe ich "W" eine Schalttemperatur von zB. 40°C ? über die tasten?

hier ist mal ein codeschnipsel um meine Temperatur auszulesen.

Do
W = Getadc(0)
Volt = W * 5
Volt_d = Volt Mod 10
Volt = Volt / 10
Locate 1 , 1
Lcd Volt ; "," ; Volt_d

Cols = Volt / 2

Das ganze läuft mit einem AT8 und einem LM35cz

über jeden noch so kleinen Tipp wäre ich sehr dankbar

Danke im vorraus und nen schönen Abend noch.
mfg. 2A

ThomasW
10.02.2009, 21:01
Hallo 2A

Frage nicht ganz verstanden.

Geht es um die Programmierung der Taster .... den Ausgabe geht mit
ist X = Y then ...

Mfg

2A
10.02.2009, 21:17
hmm, ich weiß nicht genau wie ich das erklären soll.

ich möchte Bascom sagen, das ich Taster "hoch" drücke und in 1°C schritten die Schalttemperatur für Temperatursensor "W" zuweise. oder halt Taster "runter" um die schalttemperatur niedriger zu deklarieren.

wenn ich nun Taster "runter" für 2 sek dauerhaft drücke, springt er zu Temperatursensor X. dort möchte ich die Temperatur auch einstellen können.

wieder 2 sek. auf "runter" und der cursor springt auf Temperatursensor Y

am ende wenn ich alle 4 Temperatursensoren eingestellt habe, drücke ich auf den Taster Speichern und die Schalttemperaturen sind gespeichert worden.


Ich sollte wohl erwähnen, dass W, X Y Z, einzelne LM35cz darstellen.
Anstelle von W könnte auch wohnzimmer
X könnte Kinderzimmer sein usw....

da ich aber auf einem 2x16 Zeilen LCD nicht so viel platz habe, habe ich einfach WXYZ genommen...

ThomasW
10.02.2009, 21:51
Hab ich mir gedacht, geht um Menu Programmieren

Das ist nicht so einfach zu erklären aber ich versuche es mal.

Ich nehme einen Timer und in diesen wird immer gesprungen und dort wird der Taster abgefragt ob er gerückt ist, je nachdem wie oft er in den Timer springt wird gezählt.

z.B
20 mal pro Sek in den timer und im Timer if Taster X = 0 and Tastertime = 0 then inc x
If x = 40 ( sind dann 2 Sek ) then Tastertime = 1
jetzt hast du Tastertime = 1 und es wird nicht mehr weitergezählt.

in der Hauptschleife z.b

if Tastertime = 1 then .....
lcd x set = ....
taster_up_down_x_freigabe = 1
end if

im Timer musst du dann wieder die Taster up /down abfragen

if Taster_up = 0 then
if taster_up_down_x_freigabe = 1 then
inc y
if y = 10 ( ale 0,5 Sek ) then incr Wert x
end if
end if

usw .......................

Da muss man schon überlegen...

Mfg