Forum: Mikrocontroller und Digitale Elektronik Problem mit LED Schaltung, ich komme einfach nicht dahinter


von Simon S. (havoc2k)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin leider mit meinem Latein am Ende. Ich kenne mich auch gernell 
recht wenig mit elektronik aus aber nun brauche ich echt eure Hilfe.

Folgendes soll passieren:

Ein Meta32 steuert eine matrix aus 25x3 Leds. Dazu sind diese Leds (blau 
ca 3,1V in reihe gelötet und mit 82 OHM Widerstand) an einem ULN2003 
angeschlossen.

Ich habe auch eine skizze des schaltplans aufgemacht. aktuell kommt auch 
noch ein quarz zum einsatz.

Sollte der Mega32 nun auf einem Port 5v ausgeben soll der ULN eben masse 
durschalten und der led verbund soll leuchten.

Ansich geht das ganze auch NUR glimmen die LEDs nur, wenn eben 5V vom 
Mega kommen. Hier erstmal das Programm (geschrieben in Bascom)

$regfile = "m32def.dat"
$regfile = "m32def.dat
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600

Config Portd = Output
Config Portc = Output


Dim Warten As Byte                                          '


Warten = 2
Warten2 = 75

Do
   Wait Warten

   Porta.0 = 1
   Portd.5 = 1
   Portd.6 = 1
   Wait Warten

   Porta.0 = 0
   Portd.5 = 0
   Portd.6 = 0
Loop
End

Das ganze sieht so aus: bei "aus" sind die leds aus, bei "1" glimmen sie 
jedoch nur.

Wenn ich nun aber 5v vom netzteil an den stiftleiste und daher den pin 
des ULN2003 halte leuchten die leds normal, also sollte hier kein fehler 
sein.

wenn ich nur das board mit dem mega betreibe und das flachbandkabel 
entferne sehe ich schön eine schwankung vom 1,4V bei "aus" und 5,07V bei 
"an". stecke ich nun das kabel drauf ist die schwankung von 0v bei aus 
zu 0.9v bei an.

ich kann es mir nicht mehr erklären, in meinem augen gehen beide boards 
zusammen jedoch nicht zusammen, warum bitte ist das so?

ich hoffe das mir hier echt wer helfen kann :(

mfg
Simon

von Willy (Gast)


Lesenswert?

Hallo,

ich sehe keinen Anschluß beim ULN Comon (PIN 9 )

willy

von Simon S. (havoc2k)


Lesenswert?

der ist auch nicht angeschlossen, hier meinte die Leute die mir hier mal 
weitergeholfen haben da müsste nichts dran.


was muss ich denn mit dem common verbinden? wenn ich mir das so anschaue 
müssen hier auch +12v drauf oder?

mfg
Simon

von Willy (Gast)


Lesenswert?

Na deine +12 V denke ich.


Willy

von holger (Gast)


Lesenswert?

>ich kann es mir nicht mehr erklären, in meinem augen gehen beide boards
>zusammen jedoch nicht zusammen, warum bitte ist das so?

Weil du PORTA nicht auf Ausgang schaltest?

von Simon S. (havoc2k)


Lesenswert?

Willy schrieb:
> Na deine +12 V denke ich.
>
>
> Willy

gemacht, bringt leider nichts. nach wie vor nur ein glimmen der led

von Andreas H. (Gast)


Lesenswert?

@ Willy:
Datenblatt lesen ist wohl aus der Mode gekommen? Pin 9 wird nur bei 
induktiven Lasten benötigt, da hängen die Kathoden der internen 
Freilaufdioden dran. Am Verhalten der LEDs hat Pin 9 überhaupt keinen 
Einfluss.

@ Simon:
Der Grund für das "Glimmen" wird wohl in deinem Programm liegen. Was 
soll denn das Programm deiner Meinung nach tun? Hast du deine Portpins 
schon mal mit einem Oszi angesehen?

von MaWin (Gast)


Lesenswert?

> Ich kenne mich auch gernell recht wenig mit elektronik aus

Keine Sorge. Du kennst dich offenbar eherblich besser aus als
Dummbatz Willy.

> Dazu sind diese Leds (blau ca 3,1V in reihe gelötet und mit
> 82 OHM Widerstand) an einem ULN2003 angeschlossen.

Macht theoretisch satte 30mA, das müsste also hell sein.

> Config Portc = Output
> Porta.0 = 1

Wohl eher

Config Porta = Output

von Simon S. (havoc2k)


Lesenswert?

holger schrieb:
>>ich kann es mir nicht mehr erklären, in meinem augen gehen beide boards
>>zusammen jedoch nicht zusammen, warum bitte ist das so?
>
> Weil du PORTA nicht auf Ausgang schaltest?

...........

kopf -> tisch

aber sowas von !!!!

oh man, danke für die einfache aber sehr deutliche lösung....

es geht


edit: die leds sind mit bis zu 30ma angegeben ;) und dank ca 0,5v 
sättigungsspannung des uln2003 kommen da gemessene 22ma an

mfg :D

von Simon S. (havoc2k)


Lesenswert?

ich muss den thread nochmal hochheben.

folgendes problem nun:

c5,c2,c4,c3 sowie d0 machen auch nicht das was ich will.

andere anderen bis in dieser reihe: a0-7,b0-7,c0-7,d0 tun genau das was 
ich will.

kann es sein das hier durch fusebits oder ähnliches 5 oben genannte pins 
nicht wirklich aus output arbeiten?

mfg
Simon

P.s hier der code, diesmal hoffentlich fehlerfrei

$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600

Config Porta = Output
Config Portd = Output
Config Portc = Output
Config Portb = Output

Dim Warten As Byte                                          '


Warten = 2
Warten2 = 75

Do
   Wait Warten

   Porta.0 = 1
   Porta.1 = 1
   Porta.2 = 1
   Porta.3 = 1
   Porta.4 = 1
   Porta.5 = 1
   Porta.6 = 1
   Porta.7 = 1
   Portb.0 = 1
   Portb.1 = 1
   Portb.2 = 1
   Portb.3 = 1
   Portb.4 = 1
   Portb.5 = 1
   Portb.6 = 1
   Portb.7 = 1
   Portc.0 = 1
   Portc.1 = 1
   Portc.2 = 1
   Portc.3 = 1
   Portc.4 = 1
   Portc.5 = 1
   Portc.6 = 1
   Portc.7 = 1
   Portd.0 = 1
   Portd.6 = 1
   Wait Warten

   Porta.0 = 0
   Porta.1 = 0
   Porta.2 = 0
   Porta.3 = 0
   Porta.4 = 0
   Porta.5 = 0
   Porta.6 = 0
   Porta.7 = 0
   Portb.0 = 0
   Portb.1 = 0
   Portb.2 = 0
   Portb.3 = 0
   Portb.4 = 0
   Portb.5 = 0
   Portb.6 = 0
   Portb.7 = 0
   Portc.0 = 0
   Portc.1 = 0
   Portc.2 = 0
   Portc.3 = 0
   Portc.4 = 0
   Portc.5 = 0
   Portc.6 = 0
   Portc.7 = 0
   Portd.0 = 0
   Portd.6 = 0
Loop
End

von Oliver J. (skriptkiddy)


Lesenswert?

Jtag per fuse aktiviert?

von Simon S. (havoc2k)


Lesenswert?

Oliver J. schrieb:
> Jtag per fuse aktiviert?

auf jeden fall nicht deaktiviert, der mega32 hat die 
"werksteinstellungen" nur eben mit ext. quarz statt dem internen

von MWS (Gast)


Lesenswert?

Grauslicher Code...
PD1 sollte eigentlich auch nicht gehen.

von Oliver J. (skriptkiddy)


Lesenswert?

Simon Schwarz schrieb:
> auf jeden fall nicht deaktiviert
Wenn JTAG aktiviert ist, dann werden die von dir genannten Pins vom 
JTAG-Interface in Beschlag genommen und du kannst vom Programm aus nicht 
auf sie zugreifen.

Gruß Oliver

von Simon S. (havoc2k)


Lesenswert?

MWS schrieb:
> Grauslicher Code...
> PD1 sollte eigentlich auch nicht gehen.

pd1 nicht getestet, brauche ich auch nicht

der code dient nur zum test ob alle leds gehen, wird später durch alias 
und co ersetz und übersichtlich gemacht ;)

mfg

von MWS (Gast)


Lesenswert?

Dann nimm $baud raus, damit Du PD0 bekommst.

von Simon S. (havoc2k)


Lesenswert?

MWS schrieb:
> Dann nimm $baud raus, damit Du PD0 bekommst.

rausgenommen, jtag ausgeschaltet

geht alles, ihr seid die größsten!

mfg

von Oliver J. (skriptkiddy)


Lesenswert?

So ist es kürzer:
1
Do
2
   Wait Warten
3
4
   Porta = &B11111111
5
   Portb = &B11111111
6
   Portc = &B11111111
7
   Portd.0 = 1
8
   Portd.6 = 1
9
   Wait Warten
10
11
   Porta = &B00000000
12
   Portb = &B00000000
13
   Portc = &B00000000
14
   Portd.0 = 0
15
   Portd.6 = 0
16
Loop
17
End

von Simon S. (havoc2k)


Lesenswert?

Dank euch geht nun echt alles, hier mal ein kleines Video was die 
schaltung machen soll ;)

http://www.youtube.com/watch?v=YGt0Fpogehk

von Thomas D. (thomasderbastler)


Lesenswert?

Ich finds cool ! Das Ergebnis zählt !

von Oliver J. (skriptkiddy)


Lesenswert?

Schau dir mal das DATA statement in bascom an. Damit kann man Werte im 
Flash speichern. Das wäre eine elegante Methode deine Leuchtmuster im 
AVR abzulegen. Also für jeden PORT ein Array im Flash und dann ungefähr 
so:
1
Porta_Muster:
2
Data &H00 , &HFF , &H10 [...]
3
4
Portb_Muster:
5
Data &H01 , &H11 , &H10 [...]
6
7
Portc_Muster:
8
[...]
9
10
11
12
Dim i  As Byte
13
14
Do
15
  For i  = 1  To 3  Step 1
16
    Porta = Lookup(i, Porta_Muster)
17
    Portb = Lookup(i, Portb_Muster)
18
    [...]
19
    WAITMS 1000
20
  Next i
21
Loop

Gruß Oliver

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.