Nach langer Pause (bin im prüfungsstress) melde ich mich auch mal wieder.
Also ich lese die spannung von einem Spannunsteiler ab (3x 10k) dadurch sind 15V möglich. Für dich düfte wohl nur Spannung interressant sein. Die Zeile B = E * 3 ist eben weil ich die Spannung durch 3 teile und sie nun wieder verdreifacht werden muss.Das Grün, Gelb,... sind nur leds um die spannung in drei farben darzustellen wie sie ca ist. Piep() dient dazu ein warnsignal auszugeben wenn die spannung zu tief ist.Code:$regfile = "m32def.dat" $framesize = 60 $swstack = 60 $hwstack = 60 $crystal = 1000000 Config Lcd = 16 * 1 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 Config Lcdbus = 4 Config Adc = Single , Prescaler = Auto Start Adc Config Portc.5 = Output Config Portc.4 = Output Config Portc.3 = Output Config Portb.2 = Output Config Pinb.1 = Input Dim W As Integer Dim A As Single Dim B As Single Dim C As Single Dim D As Single Dim E As Single Declare Sub Piep() Declare Sub Spannung() Portb.1 = 1 Do W = Getadc(1) If 390 < W Then Portc.3 = 1 'Grün End If If 340 < W And W < 390 Then Portc.4 = 1 'Gelb End If If W < 340 Then Portc.5 = 1 Call Piep 'Rot End If Call Spannung Loop End Sub Piep() Config Timer1 = Pwm , Pwm = 8 , Compare B Pwm = Clear Up , Prescale = 1 Pwm1b = 180 Wait 1 Pwm1b = 0 Wait 1 End Sub Sub Spannung() A = 4.95 / 1024 C = W * A D = C * 100 E = Round(d) E = E / 100 B = E * 3 Cursor Off Cls Locate 1 , 1 Lcd Fusing(b , "#.##") ; "V" 'Spannung Wait 1 End Sub
mfg







Zitieren

Lesezeichen