PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RGB-LEDs lassen sich nicht gezielt an- oder ausschalten



NMarzian
05.03.2006, 11:50
Hallo zusammen,

das gehört zwar nicht so ganz in die Rubrik Roboter, aber auch hier kommen ein Mikrocontroller, viele bunte LEDs, ein Motor und mehr vor. :-)

Mein Problem ist, daß ich mit meinem Atmega8535 und zwischengeschalteten ULN2804A insgesamt neun Gruppen von jeweils 3x3 (parallelgeschalteten) RGB-LEDs und einen Gleichstrommotor steuern möchte, was aber nicht so recht klappt. Egal, ob ich den Taster drücke oder nicht, die LEDs leuchten immer, und der Motor läuft ebenfalls kontinuierlich.
Das war von mir natürlich nicht vorgesehen. ;-)

Der Atmel sitzt auf dem Evaluationsboard von Pollin (siehe Datenblatt unter http://www.pollin.de/shop/downloads/D810022B.PDF), das unser kompletter Elektronikkurs für dieses Semester bestellt hat.
Urpsrünglich hatte ich ein eigenes Board zusammengelötet, nachdem dies aber nicht richtig funktionierte, habe ich das Pollin-Board ein wenig umgebaut. Auf Seite 8 des PDF-Dokuments ist der Schaltplan zu sehen.
Außerdem habe ich diesem Beitrag einen vereinfachten Schaltplan meiner Anwendung angehängt. Kondensatoren, Widerstände u.a., die bereits in dem PDF aufgeführt sind, habe ich nicht noch einmal explizit angegeben.

Entschuldigt bitte, daß die Verbindungen so kreuz und quer verlaufen, aber durch die Anschlüsse der Wannenstecker zu den jeweiligen Flachbandkabeln war das die beste Lösung.

Hier ist der Bascom-Code:


$regfile = "m8535.dat"
$crystal = 1000000
$baud = 4800

Config Porta.0 = Output
Config Porta.1 = Output
Config Porta.2 = Output
Config Porta.3 = Output
Config Porta.4 = Output
Config Porta.5 = Output
Config Porta.6 = Output
Config Porta.7 = Output

Config Portb.0 = Input
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
Config Portb.6 = Output
Config Portb.7 = Output

Config Portc.0 = Input
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Config Portc.4 = Output
Config Portc.5 = Output
Config Portc.6 = Output
Config Portc.7 = Output

Config Portd.0 = Input
Config Portd.1 = Input
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output

Led1_r Alias Portb.3
Led1_g Alias Portb.5
Led1_b Alias Portb.4

Led2_r Alias Portb.1
Led2_g Alias Portb.2
Led2_b Alias Porta.7

Led3_r Alias Portc.7
Led3_g Alias Porta.6
Led3_b Alias Porta.5

Led4_r Alias Porta.3
Led4_g Alias Porta.4
Led4_b Alias Portc.6

Led5_r Alias Portc.4
Led5_g Alias Portc.5
Led5_b Alias Porta.2

Led6_r Alias Porta.6
Led6_g Alias Porta.1
Led6_b Alias Portc.3

Led7_r Alias Portc.2
Led7_g Alias Portc.1
Led7_b Alias Portb.7

Led8_r Alias Portb.6
Led8_g Alias Portd.6
Led8_b Alias Portd.7

Led9_r Alias Portd.5
Led9_g Alias Portd.3
Led9_b Alias Portd.4

Motor Alias Portd.2

Taster Alias Pind.0

Frequenz Alias Pinb.0

Amplitude Alias Pinc.0

Do

If Taster = 1 Then

Led1_r = 1
Led1_g = 1
Led1_b = 1

Led2_r = 1
Led2_g = 1
Led2_b = 1

Led3_r = 1
Led3_g = 1
Led3_b = 1

Led4_r = 1
Led4_g = 1
Led4_b = 1

Led5_r = 1
Led5_g = 1
Led5_b = 1

Led6_r = 1
Led6_g = 1
Led6_b = 1

Led7_r = 1
Led7_g = 1
Led7_b = 1

Led8_r = 1
Led8_g = 1
Led8_b = 1

Led9_r = 1
Led9_g = 1
Led9_b = 1

Motor = 1

Else

Led1_r = 0
Led1_g = 0
Led1_b = 0

Led2_r = 0
Led2_g = 0
Led2_b = 0

Led3_r = 0
Led3_g = 0
Led3_b = 0

Led4_r = 0
Led4_g = 0
Led4_b = 0

Led5_r = 0
Led5_g = 0
Led5_b = 0

Led6_r = 0
Led6_g = 0
Led6_b = 0

Led7_r = 0
Led7_g = 0
Led7_b = 0

Led8_r = 0
Led8_g = 0
Led8_b = 0

Led9_r = 0
Led9_g = 0
Led9_b = 0

Motor = 0

End If

Loop

End

Die Funktionen "Frequenz" und "Amplitude" werden später für den Audioeingang (mit Mikrofon, Vorverstärker, Verstärkerschaltung mit Operationsverstärker und Schmitt-Trigger) verwendet. Damit sollen Muster und Farben der LEDs wie auch die Geschwindigkeit des Motors geregelt werden.
Der Vandalismustaster wird dann zwischen verschiedenen Subprogrammen umschalten, so daß sich unterschiedliche Reaktionen auf Umgebungsgeräusche wählen lassen.

Ich bin in Sachen Elektronik noch ein Anfänger, weswegen ich nicht weiß, wo der Fehler liegen könnte. Wer kann mir eventuell sagen, wo ich etwas falschgemacht habe? Jede Hilfe ist willkommen.

Bis dann, tschüß,

Nico

bernhard1366
05.03.2006, 12:27
Hi

Sind die Ausgänge des uC auch richtig initialisiert?
ich kenn mich mit den Treibern nicht so aus, aber die invertieren ja das Eingassignal oder?

mfg.
Bernhard

NMarzian
05.03.2006, 12:48
Hallo Bernhard,

meinst Du mit "uC" den Atmel? Sorry, ich bin noch nicht so tief in der Materie; ich gebe mir aber beste Mühe. :-)
Wie kann ich die Ausgänge denn initialisieren?

Danke übrigens für Deine schnelle Antwort.

Tschüß,
Nico

NMarzian
05.03.2006, 12:55
Ach ja, hier sind noch ein paar Illustrationen zu den künftigen Funktionen der LEDs.

Die LEDs habe ich übrigens hier her: http://www.leds.de/detail,LEDs%2B5mm,2687943-1936459917,,,1599002002,,RGB+LED+20%B0+5mm+2.4V+-+3.6V,LEDs%2BRainbow%252FRGB.html.

Lunarman
05.03.2006, 13:07
Ich glaube, dein Prob liegt im Code. Du sagst doch einfach If taster = 1.
Aber du musst glaub ich erst gucken, wie der taster denn ist, und dann kannst du das mit 1 vergleichen. Stell dir vor, du bist der Microcontroller. Du hast unter einer Klappe eine Lampe. Jetzt sagt dein "Code" dir, wenn die Lampe an ist, guck draußen, ob die Sonne scheint. Dein logische Antwort wäre:
ich weiß nicht, wie die Lampe ist.
Jetzt haben manche Ports die Eigenschaft, default an, oder default aus zu sein. Wenn default an, dann denkst du, die Lampe ist bestimmt an, und guckst nach draußen nach dem wetter. verstanden?

NMarzian
05.03.2006, 13:29
Hi Lunarman,

habe ich Dich richtig verstanden: Es könnte sein, daß der Port, an dem der Taster angeschlossen ist, per default auf 1 steht?
In dem Fall müßte ich noch vor dem "Do, If Then ..." den Taster standardmäßig = 0 setzen? Stimmt das?
Ich bin halt von dem Szenario ausgegangen, das ich im kleinen Maßstab mit dem Pollin-Board durchgespielt habe, noch bevor ich es umgebaut und um eine externe Stromquelle erweitert habe. Ursprünglich waren an dem Board drei Taster (auf Portd.2, Portd.3 und Portd.4), die wir in unseren Testcodes Taster1, Taster2 und Taster3 genannt haben. In Bascom wurde dann abgefragt "If Taster1 = 1 Then ... Else ...". Da hat es noch funktioniert.

Jetzt habe ich probiert, dem Taster den Startwert 0 (Noch vor dem "Do" "Taster = 0") zu geben, woraufhin es hieß "You can not write to a PIN register [PIND.0] ...". Anscheinend habe ich Dich falsch verstanden. :-)

Testweise habe ich auch mal den Port des ursprünglichen Taster1 als Input definiert und angesteuert. Auch hier gehen die LEDs auf Dauerfeuer, obwohl das vor einigen Wochen in der Versuchsschaltung noch anders aussah.

Ciao,
Nico

klecksinger
05.03.2006, 13:38
Hi NMarzian,

kann es sein, dass du den Taster gegen Masse (GND) schalten musst und nicht gegen Vcc? Möglicherweise liegt dein Eingang bereits über einen internen Pullup-Widerstand schon an Vcc.

Gruss Klecksinger

NMarzian
05.03.2006, 13:50
Hallo Klecksinger,

es sieht sogar so aus, daß selbst, wenn ich die Verbindung zum Taster trenne, die LEDs an sind, was ich nicht verstehe.

Die Entprellungsschaltung, wie Sie unser Dozent empfohlen hat, habe ich angehängt.

Gruß,
Nico

kalledom
05.03.2006, 13:57
Der Widerstand muß als PullUp an Plus, nicht an GND; sonst bekommt der Eingang keinen High-Pegel für logisch 1 !

Edit: und der Taster nach GND, parallel zum Kondensator.

PS: Der ULN2804 ist für CMOS-Pegel 6...15 Volt, der ULN2803 ist für TTL-Pegel 5 Volt. An den Ausgängen des µC müssen auch PullUp-Widerstände, falls die internen PullUps nicht enabled sind, sonst gibt's auch da keinen High-Pegel für logisch 1.
Den Pin 10 der ULNxxx brauchst Du nur bei induktiven Lasten wie z.B. den Motor. Dieser Pin geht über (Freilauf-) Dioden an die Collektoren der Darlington-Transistoren.

klecksinger
05.03.2006, 13:58
Hi NMarzian,

ich habe mir den Schaltplan vom Evaluationsboard mal angeschaut; dort sind drei Taster. Diese Schalten den Eingang des uC zwar gegen Vcc, allerdings ist auch noch ein 33kOhm Widerstand zwischen Eingang und GND vorhanden. Ich kann aus deinem Schaltbild nicht erkennen, ob die "Entprellung" diesen Widerstand mit GND verbindet.

Gegebenenfalls könntest du die Spannung am Tasteingang (gegen GND) mal bei gedrücktem und mal bei nicht gedrücktem Schalter messen. Diese Spannung sollte dann ca. VCC bzw ca. 0V betragen.

Gruss Klecksinger

klecksinger
05.03.2006, 14:00
Hi NMarzian,

sorry, da haben sich unsere Posts überschnitten; deine Skizze ist korrekt.

Gruss Klecksinger

kalledom
05.03.2006, 14:08
In der Skizze geht:
vom Plus ein Schalter an einen Pin
vom Plus ein Widerstand nach GND
vom Plus ein Kondensator an GND
Von Taster-Entprellung und PullUp für den Eingang keine Spur.

klecksinger
05.03.2006, 14:12
Hi kalledom,

du hast recht; der Taster muss direkt an VCC und die R/C an den Eingang (s. Schaltplan Evaluationsboar Taster 1 bis 3).

Gruß Klecksinger

kalledom
05.03.2006, 14:18
Wie rum der Eingangs-Pegel bei der abgeänderten Schaltung sein soll, kann ich nicht wissen, zumal das auch noch vom Programm und der Initalisierung abhängt.
Widerstand und Kondensator müssen immer in Reihe zwischen GND und Plus liegen, wie rum, hängt vom gewünschten Eingangs-Pegel bei nicht betätigtem Taster ab. Wenn der Taster dann parallel zum Kondensator sitzt, ist die Beschaltung immer korrekt.

NMarzian
05.03.2006, 14:23
Mensch, da wischt man mal kurz den Flur der WG, schon flattern die Antworten nur so herein. ;-) Ich danke Euch für Eure umfangreiche Unterstützung.

Also muß ich in jedem Fall an die Entprellung ran, da die so noch nicht richtig ist, korrekt?

Jetzt aber zu dem Fall, daß der Taster (inklusive Entprellung) gar nicht erst angeschlossen ist, somit also kein Signal zum Input gelangt: warum sind die LEDs trotzdem auf Dauerfeuer? Müßte unter diesen Umständen nicht Taster (also Portd.0) = 0 sein?

Cheers,
Nico

kalledom
05.03.2006, 14:29
Alle Pins sind bei Reset auf Eingang geschaltet, also hochohmig evtl. mit internem PullUp-Widerstand oder nach Plus tendierend. Die ULN2804 sind für CMOS-Bausteine, da reichen wenige MikroAmpere, um die Darlington-Transistoren durchzusteuern.
Was ich da schreibe, kenne ich vom PIC, für den AVR dürfte es aber gleich sein.
Da ergibt sich jetzt die Frage, ob Du die Pins auch als Ausgänge initialisiert hast einschließlich interner PullUp's. Wenn das nicht der Fall ist, ist der Fehler klar. Wenn die LED's nach einer Korrektur alle aus bleiben, dann fehlen wahrscheinlich PullUp-Widerstände an den Ausgängen.

NMarzian
05.03.2006, 14:30
Sollte ich völlig falsch liegen, bitte nicht hauen. ;-)

Muß die Entprellung so aussehen?

NMarzian
05.03.2006, 14:36
Alle Pins sind bei Reset auf Eingang geschaltet, also hochohmig evtl. mit internem PullUp-Widerstand oder nach Plus tendierend. Die ULN2804 sind für CMOS-Bausteine, da reichen wenige MikroAmpere, um die Darlington-Transistoren durchzusteuern.
Was ich da schreibe, kenne ich vom PIC, für den AVR dürfte es aber gleich sein.
Da ergibt sich jetzt die Frage, ob Du die Pins auch als Ausgänge initialisiert hast einschließlich interner PullUp's. Wenn das nicht der Fall ist, ist der Fehler klar. Wenn die LED's nach einer Korrektur alle aus bleiben, dann fehlen wahrscheinlich PullUp-Widerstände an den Ausgängen.

Laut Bascom-Code sind die Outputs zu den LEDs als Ausgänge definiert. Wenn ich den Reset-Taster drücke, geht das Licht auch korrekterweise aus.

Das mit den internen PullUps habe ich noch nicht ganz verstanden. Wie kann ich die initialisieren?

NMarzian
05.03.2006, 14:42
Den Pin 10 der ULNxxx brauchst Du nur bei induktiven Lasten wie z.B. den Motor. Dieser Pin geht über (Freilauf-) Dioden an die Collektoren der Darlington-Transistoren.

Daß die LEDs aktuell ebenfalls mit den 12V versorgt werden, liegt daran, daß ich nun schon die entsprecheden Widerstände (680 Ohm) eingebaut habe. Wenn ich das Ganze mit den 5V des Atmels versorgen wollte, müßte ich die ULNs gegen 2803A austauschen, wovon ich nicht genügend hier herumfliegen habe, sowie die Widerstände reduzieren.
Es hat lediglich einen praktischen Grund, warum ich diesen komischen Weg gegangen bin.

NMarzian
05.03.2006, 14:44
Gegebenenfalls könntest du die Spannung am Tasteingang (gegen GND) mal bei gedrücktem und mal bei nicht gedrücktem Schalter messen. Diese Spannung sollte dann ca. VCC bzw ca. 0V betragen.

Das werde ich tun. Schätzungsweise werde ich morgen in unser Uni-Elektroniklabor gehen. Leider habe ich in meiner Bude nicht die entsprechenden Mittel.

kalledom
05.03.2006, 14:49
Wenn die LED's bei Reset ausgehen bzw. danach an, werden die Pins und internen PullUp-Widerstände offensichtlich richtig initialisiert.
Es deutet dann auf einen logischen Programmierfehler oder eine Verzweigung (IF) durch einen falschen Eingangspegel (Eingangs-PullUp oder PullDown) hin.
Ausgänge sind in der Regel Open-Collektor-Ausgänge; es wird also der GND geschaltet oder Nix. Das Nix mußt Du dann durch eine PullUp-Widerstand ersetzen :-) damit auch High-Pegel kommt, wenn auch nur über einen Widerstand.
Mit Bascom kenne ich mich nicht aus und der AVR ist mir auch noch etwas fremd; PIC und Assembler liegt mir mehr.

PS: Das mit den 12V und 680 Ohm ist vollkommen in Ordnung.
Ich kenne nur nicht das Verhalten der ULN2804, wenn statt der erwarteten 6...15V nur 5V ankommen. Da sie aber offensichtlich die LED's einschalten, reichen die 5V wohl aus. Du solltest diese Sache aber nicht aus dem Auge verlieren, falls 'seltsame Vorkommnisse' auftreten.

NMarzian
05.03.2006, 15:10
Wenn die LED's bei Reset ausgehen bzw. danach an, werden die Pins und internen PullUp-Widerstände offensichtlich richtig initialisiert.
Das ist schon eimal gut. :-)


Es deutet dann auf einen logischen Programmierfehler oder eine Verzweigung (IF) durch einen falschen Eingangspegel (Eingangs-PullUp oder PullDown) hin.
Da muß ich wohl noch einmal recherchieren, um zu verstehen, was es mit PullUp und PullDown genau auf sich hat.


Ausgänge sind in der Regel Open-Collektor-Ausgänge; es wird also der GND geschaltet oder Nix. Das Nix musst Du dann durch eine PullUp-Widerstand ersetzen :-) damit auch High-Pegel kommt, wenn auch nur über einen Widerstand.
Heißt das, daß an jeden Ausgang ein Widerstand gesetzt werden muß?


Mit Bascom kenne ich mich nicht aus und der AVR ist mir auch noch etwas fremd; PIC und Assembler liegt mir mehr.
Der Fachbereich Interaktionselektronik der Uni-Weimar setzt eben auf Atmel, Bascom, PonyProg und Eagle. ;-) Bislang kam ich damit auch ganz gut zurecht.


Ich kenne nur nicht das Verhalten der ULN2804, wenn statt der erwarteten 6...15V nur 5V ankommen. Da sie aber offensichtlich die LED's einschalten, reichen die 5V wohl aus. Du solltest diese Sache aber nicht aus dem Auge verlieren, falls 'seltsame Vorkommnisse' auftreten.
Die 5V kommen ja lediglich als Signal vom Atmel, die 12V-Versorgung wird durch das externe Netzteil geliefert. Bei der eingangs erwähnten Versuchsschaltung hat das auch alles funktioniert, nur eben mit der jetzigen Konfiguration nicht mehr. Deswegen auch diese Fehlersuche.

Na ja, der Taster mit der Entprellung ist ja schon eimal ein Ansatz, den ich in Angriff nehmen kann. Wenn ich die Meßergebisse der In- und Outputs habe, werde ich sie auch hier in diesem Thread nachreichen wie auch die Dokumentation des weiteren Fortschritts. Schließlich kommt auch noch eine Audioanalyse. ;-)

Sollte Euch noch etwas einfallen, immer her damit, allerdings habt Ihr mir auch so schon sehr weitergeholfen. Danke dafür.

Gruß,
Nico

kalledom
05.03.2006, 15:24
Heißt das, daß an jeden Ausgang ein Widerstand gesetzt werden muß? Wenn es an diesen Ausgangs-Pins keine internen PullUps gibt oder PullUps nicht enabled sind / werden, dann ein klares JAAAAA

Der Fachbereich Interaktionselektronik der Uni-Weimar setzt eben auf Atmel, Bascom, PonyProg und Eagle. Bislang kam ich damit auch ganz gut zurecht. Das ist ja auch weiter nicht tragisch :-)

Die 5V kommen ja lediglich als Signal vom Atmel, die 12V-Versorgung wird durch das externe Netzteil geliefert. Bei der eingangs erwähnten Versuchsschaltung hat das auch alles funktioniert, nur eben mit der jetzigen Konfiguration nicht mehr. Deswegen auch diese Fehlersuche. Es scheint mir so, als sei Dir nicht klar, was der ULNxxx ist oder macht ? Da sind 8 Darlington-Transistoren mit BasisVorwiderständen und 8 Dioden von jedem Collektor zum Pin 10 drin. Die Emitter laufen alle auf Pin 9 = GND.
Die 6...15V werden laut Datenblatt an den Eingängen (=BasisVorwiderständen) gefordert. Aus dem AVR kommen aber nur 5V raus, sofern da überhaupt ein PullUp-Widerstand draußen oder intern am Ausgang ist.
Was die Collektoren des ULNxxx schalten, ist ein anderes Paar Schuhe, somit auch die Spannung (bei Dir 12V) für die Lasten.

Um alle Klarheiten zu beseitigen:

NMarzian
05.03.2006, 15:55
Es scheint mir so, als sei Dir nicht klar, was der ULNxxx ist oder macht ? Da sind 8 Darlington-Transistoren mit BasisVorwiderständen und 8 Dioden von jedem Collektor zum Pin 10 drin. Die Emitter laufen alle auf Pin 9 = GND.
Die 6...15V werden laut Datenblatt an den Eingängen (=BasisVorwiderständen) gefordert. Aus dem AVR kommen aber nur 5V raus, sofern da überhaupt ein PullUp-Widerstand draußen oder intern am Ausgang ist.
Was die Collektoren des ULNxxx schalten, ist ein anderes Paar Schuhe, somit auch die Spannung (bei Dir 12V) für die Lasten.
Was ein Array im Prinzip macht, ist mir einigermaßen klar, glaube ich, aber soweit ich es verstanden habe, ist es egal, wenn an den ULN-Eingängen nur 5V anliegen, da die 6-15V sich ja auf die Ausgänge, also die Versorgung des anzuschließenden Geräts beziehen. Oder liege ich total falsch?
Schließlich kann ein Atmel ja auch nicht mehr als 5V, und der ULN ist dazu da, aus dem schwachen Signal (5V, 20 mA max.) ein stärkeres (z.B. für einen Motor / 12V und >20mA) zu machen.
Ich meine, hier im Forum auch schon mal gelesen zu haben, daß für diesen Zweck beide Grounds, also 5V und 12V an GND des ULN angeschlossen werden müssen, wie es in meinem vereinfachten Schaltplan auch vorgesehen ist.
Wie gesagt, in einer Versuchsschaltung hat das auch bereits funktioniert, obwohl nur die 5V des Mikrocontrollers auf der Eingangsseite anlagen.


Um alle Klarheiten zu beseitigen:
Danke, alle Klarheiten beseitigt. ;-) Spaß beiseite, Du hilfst mir wirklich sehr weiter.

Ach ja, die gelben Pfeile links (bei PullUp und PullDown) sind die Pins des Controllers, richtig?

kalledom
05.03.2006, 16:29
Das hier gilt für die Ausgänge:
OUTPUT CURRENT TO 500 mA
OUTPUT VOLTAGE TO 50 V
INTEGRAL SUPPRESSION DIODES

Das hier gilt für die Eingänge:
Five versions are available to simplify interfacing to standard logic families:
the ULN2801A is designed for general purpose applications with a current limit resistor ;
the ULN2802A has a 10.5k inputresistor and zenerfor 14-25VPMOS;
the ULN2803A has a 2.7k input resistor for 5V TTL and CMOS ;
the ULN2804A has a 10.5k input resistor for 6-15V CMOS and
the ULN2805A is designed to sink a minimum of 350mA for standard and Schottky TTL where higher output current is required.

PS:
Ach ja, die gelben Pfeile links (bei PullUp und PullDown) sind die Pins des Controllers, richtig? JA

NMarzian
05.03.2006, 16:48
Hm, was mache ich denn da? Der Amtel kann nicht mehr als 5V, leider.

klecksinger
05.03.2006, 21:10
Hallo NMarzian,

ich habe noch einen Tipp:
Wenn du in deinem Programm die Zeile
If Taster = 1 Then....
ersetzt durch
If Taster <> 1 Then .....
dann müssten doch die LEDs und der Motor andauernd ausgeschaltet sein.

Wenn dies der Fall ist, dann funktioniert die Ansteuerung des ULN2804 durch den uC und der Fehler dürfte beim Taster bzw. beim Programm liegen.
In diesem Fall würde ich den internen Pullup-Widerstand des Eingangs mit PORTD.0 = 0 deaktivieren.

mfg klecksinger

kalledom
05.03.2006, 21:26
Hm, was mache ich denn da? Der Amtel kann nicht mehr als 5V, leider. Hatte ich doch geschrieben, im Auge behalten.
Im Moment gehen die LED's ja an und aus, wenn es nicht richtig läuft, austauschen.
Zukünftig besser nur noch ULN2803A nehmen.

NMarzian
06.03.2006, 00:01
Hallo NMarzian,

ich habe noch einen Tipp:
Wenn du in deinem Programm die Zeile
If Taster = 1 Then....
ersetzt durch
If Taster <> 1 Then .....
dann müssten doch die LEDs und der Motor andauernd ausgeschaltet sein.

Wenn dies der Fall ist, dann funktioniert die Ansteuerung des ULN2804 durch den uC und der Fehler dürfte beim Taster bzw. beim Programm liegen.
In diesem Fall würde ich den internen Pullup-Widerstand des Eingangs mit PORTD.0 = 0 deaktivieren.

mfg klecksinger

Hallo Klecksinger,

danke für den Tip. Ich werde es ausprobieren, wenn ich im E-Lab bin.

Gruß,
Nico

NMarzian
06.03.2006, 00:04
Hatte ich doch geschrieben, im Auge behalten.
Im Moment gehen die LED's ja an und aus, wenn es nicht richtig läuft, austauschen.
Zukünftig besser nur noch ULN2803A nehmen.
Stimmt, hast Du geschrieben. Ich werde versuchen, mich an Deine Empfehlung zu halten. Wenn mir noch einmal ein ULN2804A in die Quere kommt, werde ich ihn ignorieren. ;-)
Danke nochmals für die hervorragende Hilfe.
Mit ein wenig Glück habe ich morgen Erfolg. Allmählich brauche ich ein derartiges Erfolgserlebnis auch, nachdem ich nun schon seit Ewigkeiten versuche, diesen Fehler zu finden.

Gruß,

Nico

NMarzian
06.03.2006, 20:17
Hallo zusammen,

es klappt!!! :-) Ich habe die Entprellung entsprechend Deiner Vorgabe geändert, Kalledom, allerdings mit einer PullDown-Schaltung. Nun leuchten die LEDs scheinbar immer dann, wenn sie darum gebeten werden.
Ich werde noch ein wenig weiterexperimentieren und melde mich wieder, wenn es Neuigkeiten gibt oder ich mich dem nächsten Problem widme. ;-)

Danke nochmals für die tatkräftige Unterstützung.

Gruß,
Nico