Danke Ratber, ich werds mal ausprobieren!
du meinst die Software ?
Hier mal ein einfaches Testprogramm
Damit kannste etwas Experimentieren.
Mit den Zeilen
"Ocr1a = A" und "Ocr1b = A" wird der jeweilige Wert (0-255 für 0-100%) gesetzt.
Code:'PWM Test für Attiny26 'Je eine LED von Pin B0-3 nach masse. $regfile = "At26def.dat" $crystal = 1000000 Dim A As Byte Tccr1a = &B01010011 'Manuelle Konfiguration von OC1a Tccr1b = &B10000101 'Manuelle Konfiguration von OC1b Ocr1c = 255 'Ddrb.0 = 1 'Port b.0 als Ausgang 'Ddrb.1 = 1 'Port b.1 als Ausgang 'Ddrb.2 = 1 'Port b.2 als Ausgang 'Ddrb.3 = 1 'Port b.3 als Ausgang. Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Do Gosub Pwm Loop Pwm: For A = 0 To 255 Ocr1a = A Ocr1b = A Waitms 2 Next Return End
Gruß
Ratber
Danke Ratber, ich werds mal ausprobieren!
*Ausgrab*
Habe nun die Schaltung fertig und auch den Controller schon beschrieben. Nur leider läuft mein Lüfter durchgehend auf 12V (genauer gesagt 11,97V ^^). In der Schaltung habe ich keinen Fehler gefunden und wenn ich das Programm simuliere, funktioniert es auch. Außerdem müsste ja zumindest der Taster "An/Aus" funktionieren.
Hier einmal der Code, vllt ist ja einfach nur ein kleiner Fehler drin... wenn ihr wollt, kann ich auch Fotos von der Schaltung machen
Code:'Definitionen & Konfigurationen $regfile = "at15def.dat" $tiny Config Pinb.6 = Output Config Pinb.2 = Input Config Pinb.3 = Input Config Pinb.4 = Input 'Timer Tccr1 = &B01010011 Tcnt1 = &B10000111 Ddrb.1 = 1 'Aliases Ausgang Alias Pinb.6 Tasterhoch Alias Pinb.2 Tasterrunter Alias Pinb.3 Tastervoll Alias Pinb.4 'Variablen Dim Aout As Iram Byte Dim Bvar As Iram Byte Dim Cfull As Iram Byte Dim Bouncer1 As Iram Bit Dim Bouncer2 As Iram Bit Dim Bouncer3 As Iram Bit 'Var-Werte Bvar = 10 Cfull = 255 Aout = 150 'Programm Do 'Spannungserhöhung If Tasterhoch = 0 And Bouncer1 = 0 Then If Aout > 245 Then Aout = Cfull Else Aout = Aout + Bvar End If Else nop Bouncer1 = 1 End If If Tasterhoch = 1 Then Bouncer1 = 0 End If 'Spannungsverminderung If Tasterrunter = 0 And Bouncer2 = 0 Then If Aout < Bvar Then Aout = 0 Else Aout = Aout - Bvar End If Else nop Bouncer2 = 1 End If If Tasterrunter = 1 Then Bouncer2 = 0 End If 'Volle 12V If Tastervoll = 0 And Bouncer3 = 0 Then If Aout = Cfull Then Aout = 0 Else Aout = Cfull End If Else nop Bouncer3 = 1 End If If Tastervoll = 1 Then Bouncer3 = 0 End If Loop End
Ja ,wundert auch nicht.
Ich dachte das hatte ich schon erwähnt.
Nicht den Pin ansteuern sondern den Timer über seine Register.
Mit
Compare1a = 100
oder
Pwm1a = 100
oder
OCR1A =100
Gehts dann auch.
Gruß
Ratber
D.h. mit der Konfiguration sollte der Lüfter sich nicht drehen:
ersetzte, sollte sich der Lüfter nicht drehen oder? Oder wie setzt man Ocr1a ein?!Code:'Definitionen & Konfigurationen $regfile = "at15def.dat" $tiny Config Pinb.1 = Output 'Timer Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 64 Do Ocr1a = 0 End Loop
Ja genau.
0 = 0% also ständig Low.
255 =100% ständig High.
Die Werte dazwischen ergeben ein entsprechendes Tastverhältnis.
aber oben in dem Tiny26 Beispiel kannste dir das nochmal anschauen.
Gruß
Ratber
Hm komischerweise dreht sich auch der Lüfter, auch wenn der Code wie oben gepostet auf den Chip geschrieben ist. Einen Fehler in der Schaltung kann ich nicht entdecken, kann es sein, dass vllt. einer im Schaltbild ist?![]()
Kann ich dir sagen wenn du mir sagst was du denn nun aufgebaut hast.
Gruß
Ratber
Habe exakt deine Schaltung nachgebaut. Für die PWM habe ich einen 100nF Kondensator und einen 820Ohm Widerstand benutzt.
Dann lass die RC-Kombi erstmal weg und schau ob das PWM läuft.
Gruß
Ratber
Lesezeichen