Forum: Mikrocontroller und Digitale Elektronik Beleuchtung Disco-Brille.Farbwechsel bleibt stecken


von Lukas S. (mogfox)


Lesenswert?

Hallo,
ich habe mir eine Disco-Brille gebaut. Diese tut soweit alles was sie 
soll außer dass sie öfters hängen bleibt. Leider kann ich den Fehler 
nicht finden.

Aufbau:
Die Disco-Brille besteht aus einem alten 3D-Brillenrahmen auf dem ich 
viele kleine SMD-LED's in den Farben Rot, Blau und Gelb befestigt habe. 
Jeweils alle LED's einer Farbe sind parallel geschalten und werden von 
einem Mikrokontrouler gesteuert. Dieser ist in Basic mit Bascom-AVR 
programmiert und wählt verschiedene Farbkombinationen random(zufällig) 
aus.

Funktion:
Die LED's blinken in unterschiedlichen Abständen und Farbkombinationen.

Problem:
Aus unerklärlichen Gründen bleibt der Farbwechsel oft einfach 
stecken(ca. 20 Sekunden lang). Dies passiert aber immer nur wenn gerade 
die Farbe Gelb alleine leuchtet. Da der Ablauf des Farbwechsel mit einem 
"Systhem-Randomizer" generiert wird, ist die Abfolge der Farben bei 
jedem Neustart gleich. Wann die Brillenbeleuchtung stecken bleibt ist 
aber nie gleich, trotzdem passiert es immer nur wenn Gelb leuchtet. 
Manchmal bleibt es schon nach paar Sekunden stecken oder manchmal kann 
es bis zu 3 minuten dauern.

Da wahrscheinlich das alles sehr schwer zum Vorstellen ist habe ich ein 
klienes Video gemacht in dem viele Bilder der Brille sind und auch der 
Schaltplan + Code vom Mikrokontrouler ist.
Link: https://youtu.be/wD37maJuNms

Ich hoffe, dass mir jemand helfen kann :-)
Mfg Lukas

PS: bin 14 Jahre alt und kenne mich jetzt noch nicht so gut aus in 
Elektronik also bitte nicht auf kleine, unwichtige Fehler achten:-)

von Zweifler (Gast)


Lesenswert?

Lukas S. schrieb:
> PS: bin 14 Jahre alt und kenne mich jetzt noch nicht so gut aus in
> Elektronik

Dann solltest Du jetzt gleich lernen, dass zu einer Frage in einem Forum 
Dein Programm, ein Bild vom Aufbau und alle weiteren wichtigen 
Informationen gehören.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Den Code habe ich mir jetzt nicht aus dem Video raus extrahiert.
Normal sollte es reichen, wenn der PullUp des Reset-Pin eingeschaltet 
wird oder Reset extern auf High gezogen wird, um den µC sicher am Leben 
zu halten.

Benutzt Du GOSUB und GOTO in Deinem Code?
Ggf. springst Du aus der Gelb-Szene per Goto raus, was irgend wann einen 
Stack-Überlauf zur Folge hat.
Wenn das Programm hängt, kümmert sich der Watchdog nach einigen Sekunden 
darum, daß es weiter geht.

Wäre mir recht, wenn Du den Code hier posten könntest.
Den Aufbau kann man, so meine ich, im Video ausreichend gut erkennen.

MfG

PS: Ich zweifle, daß der Zweifler den Video-Link gefunden hat :O

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Lukas S. schrieb:
> bin 14 Jahre alt

Immerhin LED-Vorwiderstände, aber nur 1 und dann alle LEDs einer Farbe 
direkt parallel -> nicht gut, jede LED braucht ihren eigenen 
Vorwiderstand.

Das ist aber wohl nicht die Ursache, sondern:

Stützkondenstaor am uC vergessen.

Es sei denn, du überlastet deine Stromversorgung und die Spannung bricht 
ein, wenn gerade gelb an ist. Das könnte man ja mit einem Voltmeter am 
uC messen.

von Lukas S. (mogfox)


Angehängte Dateien:

Lesenswert?

Danke für die Schnellen antworten!

Patrick J. schrieb:
> Wäre mir recht, wenn Du den Code hier posten könntest

Der Code ist jetzt im Anhang :-)

Patrick J. schrieb:
> Benutzt Du GOSUB und GOTO in Deinem Code?

Gar keines von beiden. Ich verwende einen Loop oder ist das eine Methode 
von den zwei?

Michael B. schrieb:
> Immerhin LED-Vorwiderstände, aber nur 1 und dann alle LEDs einer Farbe
> direkt parallel -> nicht gut, jede LED braucht ihren eigenen
> Vorwiderstand.

oh das ist dumm. Ich kann das jetzt nur noch sehr schwer ändern weil 
alle LED's angeklebt sind. Ist es sehr wichtig das alles noch zuändern?

Michael B. schrieb:
> Stützkondenstaor am uC vergessen.
>
> Es sei denn, du überlastet deine Stromversorgung und die Spannung bricht
> ein, wenn gerade gelb an ist. Das könnte man ja mit einem Voltmeter am
> uC messen.

Hab schnell nach gemessen und keinen Spannungseinbruch festgestellt. 
Außerdem wäre es unlogisch weil Gelb am aller wenigsten Strom zieht und 
außerdem nehme ich an dass im Netztgerät solche Kondensatoren schon 
verbaut sind. Aber zur Sicherheit kann ich paar Kondensatoren dazu 
pfuschen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Lukas S. schrieb:
> zusammen.png

Code als Screenshot? Denk' darüber nochmal ernsthaft nach.

von Lukas S. (mogfox)


Lesenswert?

Tut mir leid,

Hier der code:
1
$regfile = "attiny13.dat"
2
$crystal = 1000000
3
$hwstack = 8
4
$swstack = 4
5
$framesize = 4
6
7
Dim R As Byte
8
Dim Z As Word
9
10
Config Portb.0 = Output
11
Config Portb.1 = Output
12
Config Portb.2 = Output
13
14
Orange Alias Portb.2
15
Gelb Alias Portb.1
16
Blau Alias Portb.0
17
18
Orange = 0
19
Gelb = 0
20
Blau = 0
21
22
Do
23
   R = Rnd(9)
24
   Z = Rnd(500)
25
   Z = Z + 100
26
27
   If R = 1 Then
28
      Orange = 1
29
      Blau = 0
30
      Gelb = 0
31
      Waitms Z
32
33
   Elseif R = 2 Then
34
      Orange = 0
35
      Blau = 1
36
      Gelb = 0
37
      Waitms Z
38
39
   Elseif R = 3 Then
40
      Orange = 0
41
      Blau = 0
42
      Gelb = 1
43
      Waitms Z
44
45
   Elseif R = 4 Then
46
      Orange = 1
47
      Blau = 1
48
      Gelb = 0
49
      Waitms Z
50
51
   Elseif R = 5 Then
52
      Orange = 0
53
      Blau = 1
54
      Gelb = 1
55
      Waitms Z
56
57
   Elseif R = 6 Then
58
      Orange = 0
59
      Blau = 1
60
      Gelb = 1
61
      Waitms Z
62
63
   Elseif R = 7 Then
64
      Orange = 1
65
      Blau = 0
66
      Gelb = 1
67
      Waitms Z
68
69
   Else
70
      Orange = 1
71
      Blau = 1
72
      Gelb = 1
73
      Waitms Z
74
   End If
75
76
Loop
77
End
Mfg Lukas

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Den Code als Bild ... gewöhnungsbedürftig.
Was spricht gegen Text?

Die Stützkondensatoren sind keramisch und sollten so nahe wie möglich an 
den µC.
Die sind dafür da, den µC 'zu stützen', wenn intern irgend was 
geschaltet wird.
Dort muß auch jeder Transistor etwas Strom haben und bis Dieser von 
Außen nachgeflossen ist, kann der µC schon eine Unterspannung erkannt 
haben.
Wir reden hier von winzigsten Strömen, Die aber sehr schnell benötigt 
werden.
Der Kondensator im Netzteil (bei einem SNT aber eher auch nur ein 
kleiner Elko) ist dafür viel zu weit weg und viel zu träge.

MfG

von Lukas S. (mogfox)


Lesenswert?

Patrick J. schrieb:
> Was spricht gegen Text?

sorry hab nicht nachgedacht aber hab jetzt eh den Code schon als text 
gepostet.

Patrick J. schrieb:
> Die Stützkondensatoren sind keramisch und sollten so nahe wie möglich an
> den µC.

Gut, dann löte ich die Kondensatoren schnell dazu. Passen 2 x 
100µF(=200µF)? Oder sollten es mehr sein?

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Siehe dazu:
http://rn-wissen.de/wiki/index.php/Abblockkondensator
https://www.mikrocontroller.net/articles/Kondensator#Entkoppelkondensator

PS: Der Code sollte machen, wofür Er gedacht ist.
Denke, es ist hier kein Software Problem.

MfG

: Bearbeitet durch User
von Schlauberger (Gast)


Lesenswert?

Dass nur ein Widerstand sowohl für alle LEDs einer Farbe, als auch 
gleichzeitig für die Erhöhung des Eingangswiderstandes der 
Transistor-Kollektorschaltung verwendet wird (Einsparung des 
Basiswiderstandes), finde ich gar nicht so doof.

Ganz im Gegenteil, dadurch kann die Schaltung kleiner aufgebaut werden 
und wenn dann noch die LEDs aus der gleichen Produktionsserie mit 
annähernd gleichem Spannungsabfall sind, dürfte es keine nennenswerten 
Probleme geben, wie man im Film schön sehen kann.

Bis auf den Kondensator würde ich an der Schaltung nichts mehr ändern.

Ich finde die Brille jedenfalls gut und werde mir über die 
Weihnachtsfeiertage evtl. auch so eine bauen, vielleicht aber nur mit 
einem 4017, wegen der Einfachheit (Wegfall des Programms).

von Lukas S. (mogfox)


Lesenswert?

Patrick J. schrieb:
> Siehe dazu:
> http://rn-wissen.de/wiki/index.php/Abblockkondensator

Danke, die Seite hat mir sehr geholfen. Habe auch im Datenblatt des MC 
nachgeschaut aber da ist nichts genaues gestanden. Ich werde die 
Kondensatoren jetzt anlöten...irgendwie dazu pfuschen, weil die Platine 
neu ätzen würde zu lange dauern :-). Hoffentlich klappt es dann.

Patrick J. schrieb:
> PS: Der Code sollte machen, wofür Er gedacht ist.
> Denke, es ist hier kein Software Problem.

Das ist gut. Es ist immer sehr mühsam den SMD-MC raus zu nehmen und zu 
verkabeln damit man ihn programmieren kann.

Mfg Lukas

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Ein Umprogrammieren sollte doch bei der minimalen Beschaltung auch in 
der Schaltung gehen?
Da Du eh sogar mit SMD rumhantierst , kannst Du Dir eine Aufsatz-Platine 
mit Pogo-Pins bauen - dann musst Du 'nur' die Beinchen treffen und 
während des Programmieren nicht so doll zittern.
Alternativ das ISP-Interface - zumindest die Lötaugen dafür - auf der 
Platine irgendwo hinpacken - Die trifft man auch besser mit den 
Pogo-Pins.

MfG und viel Erfolg.

PS: Kann es sein, daß 'der Zufall' es will, daß Du x Sekunden Gelb 
bekommst?

Ok, da ein Umprogrammieren akut noch etwas umständlich ist, wohl nur per 
Ersatz-Chip verifizierbar.
Bei der Zwischenplatine hätte eine DIP-Version aber auch nicht so viel 
Unterschied gemacht, oder?

: Bearbeitet durch User
von Lukas S. (mogfox)


Lesenswert?

Es funktioniert jetzt mit den Kondensatoren. Vielen Dank an alle die mir 
geholfen haben :-)

Schlauberger schrieb:
> Ganz im Gegenteil, dadurch kann die Schaltung kleiner aufgebaut werden
> und wenn dann noch die LEDs aus der gleichen Produktionsserie mit
> annähernd gleichem Spannungsabfall sind, dürfte es keine nennenswerten
> Probleme geben, wie man im Film schön sehen kann

Ja, die LED's sind alle die selben und waren auch nicht die 
billigsten.Bis jetzt hatte ich noch keine Probleme damit.

Schlauberger schrieb:
> Bis auf den Kondensator würde ich an der Schaltung nichts mehr ändern.

Kondensatoren sind jetzt oben und alles funktioniert also wird jetzt die 
Arbeit eingestellt :-)

Schlauberger schrieb:
> Ich finde die Brille jedenfalls gut und werde mir über die
> Weihnachtsfeiertage evtl. auch so eine bauen

Freut mich zu hören.Finde die Brille auch ziehmlich cool.

Patrick J. schrieb:
> kannst Du Dir eine Aufsatz-Platine
> mit Pogo-Pins bauen

Gute Idee. Werde ich machen :-)

Patrick J. schrieb:
> PS: Kann es sein, daß 'der Zufall' es will, daß Du x Sekunden Gelb
> bekommst?

Ja kann sein

Patrick J. schrieb:
> Bei der Zwischenplatine hätte eine DIP-Version aber auch nicht so viel
> Unterschied gemacht, oder?

Nein eigentlich nicht aber die Platine ist so doch kleiner und flacher., 
vorallem wenn man einen Sockel für den MC verwendet hätte. Außerdem 
wollte ich es einfach mal in SMD machen weil es doch bisschen 
schwieriger ist und es mir Spaß macht :-)


Hätte nicht gedacht dass das Problem so "einfach" zu lösen gewesen wäre.
 [strong] Wäre darauf alleine warscheinlich nie gekommen.Danke an alle 
die mir geholfen haben :-)!!! [strong]

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Lukas,

Denk noch mal (in deinem Video) über das Wort Beläuchtung nach ...

Ansonsten: die Brille ist nett. Wie versorgst du die mit Strom?

: Bearbeitet durch User
von Lukas S. (mogfox)


Angehängte Dateien:

Lesenswert?

Wegstaben V. schrieb:
> Denk noch mal (in deinem Video) über das Wort Beläuchtung nach ...

Ja da ist ein Rechtschreibfehler drin. Hab das leider erst bemerkt als 
das Video schon oben war und ich den Link schon gepostet hatte. Da 
wollte ich nicht wieder alles ändern und hab eigentlich gehofft dass es 
niemand bemerkt :-)

>Ansonsten: die Brille ist nett. Wie versorgst du die mit Strom?

Mit 3 x Batterien AAA(1,5V) = (4,5V) in einem Batteriehalter. Diesen 
verbinde ich über einen kleinen Stecker mit der Brille. Den 
Batteriehalter kann man sich mit einem Magneten auf sein T-shirt klemmen 
damit er nicht stört.

Mfg Lukas

von dudley (Gast)


Lesenswert?

"Es ist immer sehr mühsam den SMD-MC raus zu nehmen und zu
verkabeln damit man ihn programmieren kann."

wenn man öfter solche Basteleien macht empfiehlt es sich einen SMD 
Programmieradapter zu nutzen

einfach ein Reststück einer Platine nehmen das Layout von dem 
µController
und ein paar Anschlüsse für Steckverbinder drauf ätzen. Während des 
flashen kann man den µC mit einer Wäscheklammer auf den Smd Pads 
fixieren

von Lukas S. (mogfox)


Lesenswert?

dudley schrieb:
> wenn man öfter solche Basteleien macht empfiehlt es sich einen SMD
> Programmieradapter zu nutzen

Werde ich mir anschauen, nur leider sind diese Teile nicht gerade 
billig.

dudley schrieb:
> einfach ein Reststück einer Platine nehmen das Layout von dem
> µController
> und ein paar Anschlüsse für Steckverbinder drauf ätzen. Während des
> flashen kann man den µC mit einer Wäscheklammer auf den Smd Pads
> fixieren

Das klingt viel besser. Werde das gleich machen.

Mfg Lukas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.