...also mit dimmen hat das ja nix zu tun, mit stufenlos auch nix.
Schaue mal hier:
http://www.dieelektronikerseite.de/u...erleuchten.htm
Und "baue" statt den Tastern dort die Variable von Deinem Analogwandler/Lichtsensor ein
...also mit dimmen hat das ja nix zu tun, mit stufenlos auch nix.
Schaue mal hier:
http://www.dieelektronikerseite.de/u...erleuchten.htm
Und "baue" statt den Tastern dort die Variable von Deinem Analogwandler/Lichtsensor ein
Moin Andree-HB
Ich habe mir was zurecht gebastelt mit einen ( ATtiny2313 ) Später ATtiny13 werden
Hier mein Code, irgendwie kommt und passiert nichts ähm....
Code:$regfile = "attiny2313.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Dim Pwmval As Byte Config Portb.1 = Output Config Portb.0 = Input Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Portb.0 = 1 Compare1a = 255 Pwmval = 50 Do If Pinb.0 = 0 Then If Pwmval < 255 Then Incr Pwmval Waitms 50 : Compare1a = Pwmval End If If Pinb.0 = 0 Then If Pwmval < 180 Then Incr Pwmval Waitms 50 : Compare1a = Pwmval End If If Pinb.0 = 0 Then If Pwmval < 100 Then Incr Pwmval Waitms 50 : Compare1a = Pwmval End If If Pinb.0 = 0 Then If Pwmval > 50 Then Decr Pwmval Waitms 50 : Compare1a = Pwmval End If Loop
Juhu Gibt es Tips oder Ratschläge
Bin Offen für eure tipps
Sorry, ich glaube ich hab den Prozessor/Programmiersprache nicht richtig verstanden,
daher habe ich meinen Beitrag gelöscht um keine Falschinformation zu verbreiten....
Siro
Geändert von Siro (19.09.2020 um 17:46 Uhr)
Hallo Siro
Da ich eine Mail erhalte wie andere auch hab ich mir es durchgelesen und fand es interriesant.
aber danke
Wenn ich halbwegs richtig verstehe, was dein Code machen soll, dann willst du abhängig von der Umgebungshelligkeit deine LED in 50-ms-Schritten runter oder hochdimmen?
Dein Code ist irgendwie unsinnig. Der Ausgangswert von Pwmval ist 50 - Dein Programm müsste jeweils dreimal incrementieren und dann einmal decrementieren. Nach ca. 10 Sekunden müsste 100 erreicht sein, dann müsste das Programm jeweils zweimal incrementieren und einmal decrementieren bis nach 12 Sekunden der Wert 180 erreicht ist. Dann wird je einmal incrementiert und einmal decrementiert - so dass nichts mehr passiert.
Ich nehme an, dass du an irgendeiner anderen Stelle den Phototransistor ausliest und damit feststellst, ob es dunkel, normal oder taghell ist. Abhängig davon soll dann die LED auf 25%, 50% oder 100% hoch oder runter dimmen... also sie soll nicht schlagartig die Helligkeit ändern, sondern in 50-ms-Schritten rauf oder runter dimmen...?
Ich würd das mal in dieser Art probieren:
So müsste die LED von dunkel auf halbe Helligkeit hochdimmen - innerhalb von ca. 6,4 Sekunden.Code:Pwmsoll = 128 //testweise mal 50% Compare1a = 0 Do If Compare1a < Pwmsoll : Incr Compare1a //falls Incr nicht auf das Regsiter anwendbar ist, müsste es mit Compare1a = Compare1a + 1 gehen Else If Compare1a > Pwmsoll : Decr Compare1a // dito Compare1a = Compare1a - 1 End IF Waitms 50 // hier ggf. Phototransistor auslesen und das neue Pwmsoll bestimmen, ungefähr so: If Photo < 300 : Pwmsoll = 50 Else If Photo < 750 : Pwmsoll = 128 Else : Pwmsoll = 256 Loop
Ich kenn mich mit Bascom nicht aus, insofern ist das nur pseudocode.
Noch einfacher wäre es, wenn du den Wert für Comparea1 aus dem Inputwert des Phototransistors direkt berechnest. Dann kannst du dir das Ganze hier sparen
(Pwmcompare = 1/3 Wurzel aus Photo + 0,17 Photo + 25 oder sowas.... vielleicht ist es auch viel einfacher - linear oder so. Da müsstest du halt mal den Phototransistor ausmessen, was der für Werte liefert.)
Geändert von Gnom67 (20.09.2020 um 00:20 Uhr)
Lesezeichen