Forum: Mikrocontroller und Digitale Elektronik Atmega32 + ULN2803a + LED


von Julien J. (drankaner)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich versuche LED´s über einen ULN2803a zu verwenden.
Sobald ich dies mit einem µc Versuche klappt es nicht mehr.

Vorher habe ich das ganze mit einem Labornetzteil getestet.

Im Bild seht ihr meine Schaltung!

Oben Links die PIN Belegung vom Wannenstecker:
Pin1: +5V
Pin2: Masse
Pin3: PA0
Pin4: PA1
Pin5: PA2
usw.

Verwendet wird der Atmega 32.

Könnt ihr mir helfen?

von Karl H. (kbuchegg)


Lesenswert?

Ich sehe da 3 mögliche Fehlerquellen

* der tatsächliche Hardware Aufbau ist anders als im Schaltbild
* Fehler in der Verdrahtung
* Fehler im Programm

von Alex W. (a20q90)


Lesenswert?

Warum sind eigendlich die Eingänge vom ULN alle zusammengeschaltet?

von Julien J. (drankaner)


Lesenswert?

@Karl:

Das ganze ist 1 zu 1 so aufgebaut, auch die LED´s sind richtig gepolt.
Verwende ich +5V zum durchschalten funktioniert es.
Nutze ich einen PIN der High geschaltet ist funktioniert es nicht.

@Alex:
Die Pin´s sind vom ULN zusammen geschaltet, damit an jedem Input ein 
Signal anliegt.
Ist dies nicht der Fall kann es zu Fehlern kommen.

von Karl H. (kbuchegg)


Lesenswert?

Julien J. schrieb:
> @Karl:
>
> Das ganze ist 1 zu 1 so aufgebaut, auch die LED´s sind richtig gepolt.

Das sagst du, aber ich kann es von dieser Seite des Monitors aus nicht 
kontrollieren.
Im Laufe der Jahre hab ich mir angewöhnt, auch in die Richtungen zu 
denken, die vom Fragesteller kategorisch ausgeschlossen werden. Manchmal 
ist das tatsächlich ein 'Bingo' (tm Christoph Walzl).

> Verwende ich +5V zum durchschalten funktioniert es.

OK. Akzeptiere ich mal so.

> Nutze ich einen PIN der High geschaltet ist funktioniert es nicht.

Tja. dann wirst du eben den Pin nicht High-schalten.

Aber da du den Wink mit dem Zaunpfahl nicht verstanden hast:
Zeige dein Programm!

Alles andere ist Kaffeesudleserei und nicht zielführend. Wenn die 
Verdrahtung stimmt, du am richtigen Port bist, den Portpin auf Ausgang 
gestellt hast und den Pin dann auch noch auf High geschaltet hast, dann 
müssen die LED leuchten. Da sie es nicht tun, ist irgendwo ein Fehler 
vorhanden. Den werden wir aber nicht finden, wenn du immer nur 
behauptest, dass eh alles richtig ist und mit nichts rüber kommst, mit 
dem man arbeiten könnte.

: Bearbeitet durch User
von Julien J. (drankaner)


Angehängte Dateien:

Lesenswert?

So habe den Wink mit dem Zaunfall schon verstanden ;)
Wollte nur den ganzen auskommentierten Müll rausschmeißen, den ich nicht 
verwende.

Nicht wundern das ich alle PIN´s durch die Schleife schicke, hatte es 
mal so versucht um die anderen PIN´s zu testen.

von Karl H. (kbuchegg)


Lesenswert?

Dachte ich mirs doch.

Du hast den Pin nicht auf Ausgang gestellt.
Was dein Programm macht: Es schaltet den Pullup zu. Mehr nicht.
Mit einem Voltmeter kannst du da unbelastet tatsächlich 5V messen. Aber 
sobald da dann ein paar mA fliessen sollen ....


Warum postest du dein Programm eigentlich als PNG.
Das ist für dich mehr Arbeit und für uns auch.
Denn jetzt kann ich alles neu tippen, anstatt mir die Teile aus deinem 
Programm zusammenzukopieren. Häng dein C-File einfach so an wie es ist.
1
#include <avr/io.h>
2
3
int main()
4
{
5
  DDRA = 0xFF;
6
7
  PORTA = 0xFF;
8
9
  while( 1 )
10
  {
11
  }
12
}

Wenn deine LED wirklich am Port A hängen, dann kannst du dich jetzt an 
leuchtenden LED erfreuen.

Und deine diversen set... Funktionen. Die hebst du dir für später auf, 
wenn du sie wirklich mal brauchst und es keine andere Möglichkeit gibt. 
Denn die willst du so nämlich nicht wirklich haben.

: Bearbeitet durch User
von Julien J. (drankaner)


Lesenswert?

Super ich danke dir :)

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.