Inhaltsverzeichnis
Luftdruck messen mit RN-Control´er 1.4
Erforderliche Ausstattung
Board: RN-Control 1.4
Luftdrucksensor: Eingang 5V Ausgang (Messspannung) 2,5V
LCD Display: an Port B (auf dem Board)
LDE's: 3 Leuchtdioden (auf dem Board)
Terminalprogramm zum Auslesen der Werte
Ich habe eine Software geschrieben, die wie folgt funktioniert:
Der Aktuelle Luftdruck wird über den Sensor gemessen und der gemessene Wert wird im EEProm ab gelegt. Dann wird der vorhergehende Wert mit dem Aktuellen verglichen und das Ergebnis von 3 LED's ausgegeben:
- LED -> Luftdruck steigt
- LED -> Luftdruck gleichbleibend
- LED -> Luftdruck sinkt
Dazu werden die Werte Ak. - Aktueller Luftdruck, Vor.- Vorhergehender Wert auf dem LCD ausgegben.
Der Programmablauf nach dem EInschalten:
Auf dem LCD erscheinen 2 Mögliche Eingaben die über die Taster 1 und 2 gewählt werden können:
1 -START startet das Programm und die Aufzeichnung des Luftdrucks beginnt
2 -EEPROM liest die Ergebnisse einer Aufzeichnung aus dem EEprom aus (hier sollte ein Terminalprogramm über die RS232 Schnittstelle angeschlossen sein, denn sonst sieht man nix !! Die ausgelesenen Werte können dann in z.B.- Exel kopiert werden und schon kann man eine Grafik anlegen !
HINWEIS: Man kann auch während des Programmablaufes die Werte durch drücken des Tasters 1 auslesen !
Luftdrucksensor:
Ich habe hier einen Sensoren verwendet den ich noch aus alten Projekten liegen hatte.Den genauen Typ kann ich leider nicht mehr angeben, da findet man sicherlich was zu den oben beschriebenen Werten im Netz oder beim Elektronik-Höker! Viel Spaß beim vorschen und auf das der Luftdruck steigt !!
Das Programm
$regfile = "m32def.dat"
$hwstack = 32
$framesize = 32
$swstack = 32
$crystal = 16000000
$baud = 9600<
Config Adc = Single , Prescaler = Auto
Config Pinc.2 = Output
Config Pinc.1 = Output
Config Pinc.0 = Output
Start Adc
Portc.3 = 0
Dim W As Word
Dim C As Byte
Dim D As Byte
Dim A As Byte
Dim R As Word
Dim L As Byte
Dim K As Word
Dim H As Word
Dim T As Byte
Dim U As Integer
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1
'-----------------------------------------------Display
Config Lcdpin = Pin , Db4 = Portb.4 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
'-----------------------------------------------Display
Cc:
Cls
Cb:
Lcd "1-START"
Locate 2 , 1
Lcd "2-EEPROM"
T = Getadc(7)
Select Case T
Case 150 To 155 'Range für Tasteneingabe
Sound Portd.7 , 400 , 500
Waitms 500
Goto Ax
Case 80 To 90
Sound Portd.7 , 400 , 700
Goto Aa
End Select
Goto Cb
<br/>
Ax:
For D = 0 To 200 Step 2 'Menge der Zyklen
<br/>
W = Getadc(0)
U = W + 670
Print "Channel -> " ; U
<br/>
Writeeeprom U , D
<br/>
'Sound Portd.7 , 400 , 500
Readeeprom U , D 'EEProm auslesen
Print " Aus EEPROM: " ; W ; "- - - - - - Wert aus FOR: " ; D
H = D - 2
Readeeprom K , H
Print "vorheriger Wert: " ; K 'K ist der vorhergehende Wert !
Print " "
Cls
Cursor Off
Lcd "Ak." ; U
Locate 2 , 1
Lcd "Vor." ; K
Select Case W
Portc.2 = 1
Portc.1 = 1
Portc.0 = 1
<br/>
Case Is > K : Portc.2 = 0
Case Is = K : Portc.1 = 0
Case Is < K : Portc.0 = 0
<br/>
End Select<br/>
For R = 0 To 1800 'Zeiteistellung ob jede Stunde oder
'halbe Stunde gelesen wird 3600= 1Std 1800= 1/2Std
L = Getadc(7)
Select Case L
Case 170 To 185
Sound Portd.7 , 400 , 500<
Goto Aa
End Select
If L = 152 Then Goto Aa
Wait 1
Next R
Next D
Aa:
Cls
Lcd "EEPROM-"
Locate 2 , 1
Lcd "auslesen"
Portc.3 = 1
For D = 0 To 100 Step 2
Readeeprom U , D
Print U
Waitms 20
Next D
Goto Cc
Autor
Siehe auch