12V Dimmer spielt "Fotoblitz"

Im Unterforum Projekte im Selbstbau - Beschreibung: Selbstbau von Elektronik und Elektro

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 13 5 2024  06:57:14      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Projekte im Selbstbau        Projekte im Selbstbau : Selbstbau von Elektronik und Elektro

Gehe zu Seite ( 1 | 2 Nächste Seite )      


Autor
12V Dimmer spielt "Fotoblitz"
Suche nach: dimmer (2651)

    







BID = 1062489

Kleinspannung

Urgestein



Beiträge: 13342
Wohnort: Tal der Ahnungslosen
 

  


Hallo liebe Kollegen!

Hab mir (wieder) mal einen 12V Dimmer für paar LED Streifen gebaut.
Und zwar so,wie ich das immer mache.
Tiny,Poti bzw. Stufenschalter,Treibertransistor,bissl Hühnerfutter > färdsch.
Leider blitzen die Streifen so alle 3-5min mit voller Helligkeit kurz auf,wenn niedrig gedimmt.
Stromlieferant ist ein 100W Hutschinennetzteil.
Software schließ ich eigentlich aus,die tut anderswo auch zufriedenstellend.
Sieht aus,als ob sich ein C schlagartig entladen würde.
Ist aber am Ausgang gar keiner dran...
Jemand ne Idee,wie ich dem Störenfried auf die Schliche komme?
Wenn ich testweise nur ne einzelne LED anschließe,passiert das nicht.
Oder es fällt nicht auf,kann ja nun nicht ewig auf einen Punkt starren.

_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)

BID = 1062490

Jornbyte

Moderator



Beiträge: 7085

 

  

Du hast nen Tiny drinne. Haste da Schleifen drinne die bis 255 oder 65535 gehen? Oder popelt da PWM?

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

[ Diese Nachricht wurde geändert von: Jornbyte am 13 Feb 2020 21:01 ]

BID = 1062492

Jornbyte

Moderator



Beiträge: 7085

Ach... Poti am AD der Ausgang an den Timer für die PWM.
100µ und 100n haste dem Tiny sehr nah an VCC / GND spendiert?

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 1062493

Kleinspannung

Urgestein



Beiträge: 13342
Wohnort: Tal der Ahnungslosen


Zitat :
Jornbyte hat am 13 Feb 2020 21:00 geschrieben :

Ach... Poti am AD der Ausgang an den Timer für die PWM.

Na genau so.
Der ADC wird periodisch ausgelesen,und der Wert ins compare Register für die PWM geschrieben.
Jeweils nur 8 bit.
Und das Ding hat momentan auch nur drei Stufen für die PWM.
255,140 und 10.

Zitat :

100µ und 100n haste dem Tiny sehr nah an VCC / GND spendiert?

100n hab ich immer drin,ich weiß es genau.
Ob da noch ein 100µ Platz hatte,da muß ich morgen bei Licht erstmal auf die Leiter krabbeln und nachsehen.
Die Platine mußte so klein wie möglich werden,sonst hätte es nicht gepaßt.
Und da ich nur DIL und bedrahtete Bauteile verarbeiten kann...
Aber was mir grad aufgefallen ist:
Bei voller Helligkeit macht er das auch,nur das es dann kurz dunkler wird.
Vermutlich hab ich doch nen Bock in der Software,nur ist das irgendwie noch nie aufgefallen...

Edith sagt grad:
Zumindest laut Layout ist am Ausgang des 78L05 ein 47µ drin.
Und von da bis zum Tiny sinds nur 15mm...



_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)

[ Diese Nachricht wurde geändert von: Kleinspannung am 13 Feb 2020 21:32 ]

BID = 1062494

Jornbyte

Moderator



Beiträge: 7085

Du sagst 255,140 und 10.
255 ist aber Überlauf, ein gern gemachter Fehler.
0 bis 254 sind 255, denn 0 ist ja auch ein Wert.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 1062495

Kleinspannung

Urgestein



Beiträge: 13342
Wohnort: Tal der Ahnungslosen


Zitat :
Jornbyte hat am 13 Feb 2020 21:29 geschrieben :


255 ist aber Überlauf, ein gern gemachter Fehler.

Oh Ka**e,ich elender Depp.
Eigentlich sollte ich das wissen/beachten.
Grad mal in mein Programm gesehen,steht tatsächlich 255 drin.
Erklärt zumindest mal das Problem bei voller Helligkeit.
Ok,dann muß der Tiny morgen mal aufs Programmierboard auswandern...
Und dann schaun wir mal...

_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)

BID = 1062498

IceWeasel

Moderator

Beiträge: 2347

Wenn ich mich mal mit einer Frage einmischen darf?

Wo ist bei 255 der Überlauf?
Bei einer signed Variable wäre das entsprechend -1.

Bei 256 wird doch erst das 9te Bit gesetzt, das wäre ein Überlauf.

Es gibt 256 Werte von 0 bis 255 bei unsigned byte / char.

Übersehe ich da etwas?

_________________
Wenn's kracht und zischt, war das nüscht!

Ich bin kein Berufsgutmensch - ich bin nur zivilisiert und weiß, mich zu benehmen.

BID = 1062533

unlock

Schriftsteller

Beiträge: 901
Wohnort: Mosbach

Hallo,

Offtopic :
ich will auch ma

Was ich mich frage: was geschieht mit den anderen 4 bit?
Wie ist da das Programm geschrieben?
Möglicherwiese sind die Störungen, wenn kein Muster zu erkennen ist, Hardwareseitig (defektes Poti)
Die Programmierung könnte man bei 3 min ja ausschließen, aber wer weis, ob da nicht noch ein Timer im Hindergrund läuft.
Wie auch immer wären Angaben und Photos und/oder Programmcode und/oder genaue Leistungsdaten(Verbraucher) hier sinvoll.

Im übrigen ist der Überlauf kein 9tes bit sondern ein bit im Flagregister "s",aber dies bedingt, dass der adzähler am Ende steht.

Bei signet int verschiebt sich das Ganze nur auf Symmetrische Werte bei 8 bit auf 0- +127 und -128.



_________________
One Flash and you're Ash !

BID = 1062541

IceWeasel

Moderator

Beiträge: 2347


Offtopic :

Zitat :
unlock hat am 14 Feb 2020 18:12 geschrieben :

Im übrigen ist der Überlauf kein 9tes bit sondern ein bit im Flagregister "s",aber dies bedingt, dass der adzähler am Ende steht.

Bei signet int verschiebt sich das Ganze nur auf Symmetrische Werte bei 8 bit auf 0- +127 und -128.


Naja, ich meinte damit nur, es ist ein 9tes Bit notwendig, um die Zahl 256 darzustellen, und das es daher ein Überlauf ist, weil nur 8 Bit "vorhanden" sind.
Für meinen Begriff kommt es aber erst zu einem Überlauf, wenn z.B. 255 + 1, + 2, + X ... gerechnet werden soll, was dann als Flag ins Register "s" (wie du es nennst, ich weiß es nicht) geschrieben wird.
Ein Wert von 255 in 8 Bit Speicher ist einfach 255, 0xFF oder b11111111.
Daher frage ich mich, woher der Überlauf kommen soll.

Da ich eher wenig mit µC zu tun habe, was ist ein "adzähler"?



_________________
Wenn's kracht und zischt, war das nüscht!

Ich bin kein Berufsgutmensch - ich bin nur zivilisiert und weiß, mich zu benehmen.

BID = 1062547

Jornbyte

Moderator



Beiträge: 7085


Zitat :
Es gibt 256 Werte von 0 bis 255

Genau, deshalb darfste du nur bis 254 zählen. 256 ist ja 0x100 also Überlauf.
Unser Hirn sagt 0 ist nix aber in Hex ist es schon ein Wert.
In einer Schleife sind 0 bis 254=255 Zahlen; Zeichen oder sonst was.
Nun kommt es auch auf die Abbruchbedingung an:
if i=255 "mach was anderes, ich umgehe 0x100"
oder
for i=0 to 255 then "fehler da überlauf 0x100"
Bei 8Bit huft der 0x100 auf 0x00, das ist Richtig, das Programm erwartet aber was anderes und es kommt zum Fehlerfall.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 1062548

unlock

Schriftsteller

Beiträge: 901
Wohnort: Mosbach

[quote]
IceWeasel schrieb am 2020-02-14 21:06 :

Zitat :



Da ich eher wenig mit µC zu tun habe, was ist ein "adzähler"?



Mit adzähler meine ich den Zähler, der am Analogeingang so lange hochzählt, bis der Komparator sagt: Wert ist gleich.

"S"Flag ist übrigens Singn und "C" Flag ist Carry(Überlauf) und "z" ist Zerro(0)

_________________
One Flash and you're Ash !

BID = 1062551

IceWeasel

Moderator

Beiträge: 2347

@Jornbyte:

Ich glaube, du verwechselst da etwas.

Was Du wahrscheinlich meinst, ist ein Programmierproblem bei z.b. Schleifendurchläufen, welches z.B. in Verbindung mit Arrays oder Speicherzugriffen und zusätzlichen Zählvariablen eine Fußangel werden kann.
Man kann z.B. von 0 - 254, 1 - 255 oder 0 - 255 zählen lassen, je nach Bedarf.
Das ist auch im Dezimalsystem dasselbe Problem, von 0 bis 10 zählen sind auch 11 Werte, ist also kein "Hexadezimalproblem", wenn ich dich richtig verstanden habe.

0-254 wäre 0x00 bis 0xFE,
1-255 dann 0x01 bis 0xFF,
0-255 dann entsprechend 0x00 bis 0xFF - nicht 0x100, aber 256 WERTE = 0x100.

Was ich jedoch meine ist das Durchschreiten der 8 Bit Grenze des Variablenspeichers oder Registers, diese wird mit dem Wert 255 so ohne weiteres noch nicht überschritten, da lediglich alle 8 Bit gesetzt sind, was 0xFF (= 255) entspricht.

Falls wir doch aneinander vorbei reden, sollten wir per PM fortsetzen, damit der Thread nicht so dick wird.

@unlock:

Danke. Dann war das "s" Flag doch falsch, dann war es auch das Carry Flag, bezüglich Überlauf.
Mit dem "adzähler" muss ich mich mal in Ruhe belesen.

_________________
Wenn's kracht und zischt, war das nüscht!

Ich bin kein Berufsgutmensch - ich bin nur zivilisiert und weiß, mich zu benehmen.

BID = 1062809

Kleinspannung

Urgestein



Beiträge: 13342
Wohnort: Tal der Ahnungslosen

Entschuldigung,aber ich hatte paar Tage keine Zeit,mich mit das Kram zu beschäftigen...

1)
Zu den 255.
So wie ich das gemacht habe (und auch meine gedruckte Literatur sagt)kann man in das Compare Register 255 schreiben.
Das bedeutet dann eben volle Leistung.
0 = ist aus.

2)
Ich hab das jetzt gelöst,weiß aber nicht so genau,warum.
Irgendwie lag das wohl daran,das ich in der Platine paar "Böcke" drin hatte.
Normalerweise mach ich an den Eingang vom ADC nen kleinen C zur "Entprellung".Hier nicht,also nachgerüstet.
Dann hab ich noch nen 100µ am Tiny dazugemurkst.
Schlußendlich hab ich festgestellt,das der Treibertransistor mit der Zeit gut 80° heiß wird.
(die Platine hatte schon nette Farbe )
Also umgebaut auf nen Logik-Level Mosfet.
(Warum nicht gleich?Weil ich keinen hatte...)
Also jetzt gehts,Aber warum genau,weiß ich (noch) nicht.
Und hier noch zur allgemeinen Belustigung der Code:


Code :

$regfile = "ATtiny13.dat"

$crystal = 1200000
$framesize = 20
$hwstack = 15
$swstack = 15

Config Portb.0 = Output
Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear up
enable timer0

dim x as byte

Admux = &B00100010
Adcsra = &B11000110

do
Adcsra = &B11000110
Waitms 35
X = Adch
compare0a=135
if X<40 then
compare0A=9
elseif x>190 then
compare0a=255
end if
waitms 300
loop




_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)

BID = 1062821

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
"S"Flag ist übrigens Singn und "C" Flag ist Carry(Überlauf) und "z" ist Zerro(0)
Nein Carry ist nicht Überlauf, sondern Übertrag!
Das ist etwas anderes als ein Überlauf.
Der Überlauf, gemeinhin als Overflow (V) bezeichnet, zeigt im MSB nach einer Addition oder Subtraktion einen Vorzeichenfehler an.


Offtopic :
Klassisch bei Hasek (Der brave Soldat Schweijk), als der Truppe der Sold ausbezahlt wird, und die Soldaten einzeln aufgerufen werden um das Geld in Empfang zu nehmen.
Unten auf der Seite der Namensliste angekommen ruft der Zahlmeister:
"Iebertrag!
(Pause)
Iiibertrag!
(Pause)
So ein Idiot. Kriegt das meiste Geld und ist nicht da"


https://de.wikipedia.org/wiki/Arithmetischer_%C3%9Cberlauf






[ Diese Nachricht wurde geändert von: perl am 21 Feb 2020  2:19 ]

[ Diese Nachricht wurde geändert von: perl am 21 Feb 2020  2:25 ]

BID = 1062822

IceWeasel

Moderator

Beiträge: 2347

@perl:

Mit dem "v" Overflow und "c" Carry Flag hast du natürlich absolut recht!
Es war schon wieder zu spät zum Denken - das hätte ich selbst merken müssen.
(Der einen eigenen 6502 CPU Disassembler programmiert hat )

_________________
Wenn's kracht und zischt, war das nüscht!

Ich bin kein Berufsgutmensch - ich bin nur zivilisiert und weiß, mich zu benehmen.

[ Diese Nachricht wurde geändert von: IceWeasel am 21 Feb 2020  2:53 ]


      Nächste Seite
Gehe zu Seite ( 1 | 2 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 18 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 181261389   Heute : 5236    Gestern : 21513    Online : 553        13.5.2024    6:57
13 Besucher in den letzten 60 Sekunden        alle 4.62 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.510907888412