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
Hallo, ich sehe keinen Anschluß beim ULN Comon (PIN 9 ) willy
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
>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?
Willy schrieb: > Na deine +12 V denke ich. > > > Willy gemacht, bringt leider nichts. nach wie vor nur ein glimmen der led
@ 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?
> 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
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
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
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
Grauslicher Code... PD1 sollte eigentlich auch nicht gehen.
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
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
Dann nimm $baud raus, damit Du PD0 bekommst.
MWS schrieb: > Dann nimm $baud raus, damit Du PD0 bekommst. rausgenommen, jtag ausgeschaltet geht alles, ihr seid die größsten! mfg
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 |
Dank euch geht nun echt alles, hier mal ein kleines Video was die schaltung machen soll ;) http://www.youtube.com/watch?v=YGt0Fpogehk
Ich finds cool ! Das Ergebnis zählt !
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.