So, hab heute nochmal an meinem Code gebaselt. Hab mit den Variablen und dem Timer0 gespielt, und siehe da, es funktioniert!
Hier mein Code:
Vielen Dank euch für die Tipps,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







Zitieren

Lesezeichen