Aus RN-Wissen.de
Version vom 1. April 2006, 16:49 Uhr von Giesbert (Diskussion | Beiträge) (Luftdruck wurde nach Projekte verschoben)

Wechseln zu: Navigation, Suche
Rasenmaehroboter fuer schwierige und grosse Gaerten im Test

Luftdruck messem mit RN-Controler 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:

1. LED -> Luftdruck steigt 2. LED -> Luftdruck gleichbleibend 3. 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 RS 232 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 ! ZUM 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 ober beschriebenen Weten im Netz oder beim Elektronik-Höker! viel Spaß beim vorschen und auf das der Luftdruck steigt !! GIESBERT

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 
 
Ax: For D = 0 To 200 Step 2 'Menge der Zyklen
W = Getadc(0) U = W + 670 Print "Channel -> " ; U
Writeeeprom U , D
'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
Case Is > K : Portc.2 = 0 Case Is = K : Portc.1 = 0 Case Is < K : Portc.0 = 0
End Select
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

LiFePO4 Speicher Test