Mein Sohn hat seinen PC im Schreibtisch eingebaut. Dem Schreibtisch wird über einen Lüfter Frischluft zugeführt. Die Steuerung sorgt dafür das bis 23°C der Lüfter langsam vor sich hinläuft. Von 23 - 28° C wird er in Stufen hochgefahren und dreht ab 28°C mit Umax.
Hier die Software:
'Aktueller Softarestand 30.10.2012
$regfile = "attiny13.dat"
$crystal = 4000000
$hwstack = 32
$swstack = 32
$framesize = 40
Dim Mess As Byte
Dim Regel As Byte
Dim Upm As Byte
Config Portb.0 = Output
Config Timer0 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Do
Mess = Getadc(2)
If Mess < 47 Then Mess = 47
If Mess > 57 Then Mess = 57
Regel = Mess - 47
Upm = Lookup(regel , Dta0)
Ocr0a = Upm
Loop
End
Dta0:
Data , 50 , 60 , 70 , 80 , 90 , 100 , 120 , 140 , 170 , 210 , 255
Erläuterung:
Getadc liefert bei 23°C 47 und bei 28°C den Wert 57
Ist Mess kleiner 47 wird er auf 47 gesetzt bei grösser 57 auf 57.
Die Subtraktion von 47 liefert mir die Zahlen 0 - 10 mit denen ich den passenden Wert für PWM DATA0 auslese.
Betrieb am PC Netzteil. Im Schaltbild fehlt noch der Kondensator über der Betriebspannung und man sollte eine Schutzdiode üben den Ausgang löten.