So, hab heute nochmal an meinem Code gebaselt. Hab mit den Variablen und dem Timer0 gespielt, und siehe da, es funktioniert!
Hier mein Code:
Code:
'Heizfolien-Temperaturregler
'Heizfolie mit FET an OCR0B (PB1)
'Temperatursensor LM35 an ADC2 (PB4)
'Spannungsmessung an ADC3 (PB3)
'Spannungsanzeige LED an PB2
$hwstack = 32
$swstack =16
$framesize = 40
$regfile = "attiny85.dat"
$crystal = 8000000
Dim U As Word 'Spannungsteiler Vcc--> 4,7 k --> ADC3 --> 2,2 k --> Gnd'
Dim Temp As Single
Dim Messwert As Word 'LM35 an ADC2, gibt 10 mV/°C aus
Dim Tempdiff As Single
Dim Ausgang As Single
Dim Channel As Byte
Channel = 0
Config Portb.2 = Output 'Spannungsanzeige LED
Config Portb.1 = Output 'Ausgang für Heizfolie
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Timer0 = Pwm , Prescale = 1 , Compare B Pwm = Clear Down
Const Faktor = 5 / 1023
Do
Start Adc
U = Getadc(3)
Messwert = Getadc(2)
Stop Adc
Temp = Messwert
If U < 705 Then 'LED an, wenn Spannung unter 10,8 V
Portb.2 = 1
Else
Portb.2 = 0
End If
Temp = Temp * Faktor
'Temp = Messwert * Faktor 'Umrechnung ADC-wert Temp in °C
Temp = Temp / 0.01
Tempdiff = 35 - Temp 'Berechnung Temperaturdifferenz (Solltemperatur 35 °C)
Ausgang = Tempdiff * 51 'Berechnung des PWM-Ausgangs für die Heizfolie
If Ausgang > 255 Then
Ausgang = 255
End If
If Ausgang < 0 Then
Ausgang = 0
End If
Ocr0b = Ausgang
Loop
End
Vielen Dank euch für die Tipps,
Lesezeichen