PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie LEDs anschließen? Normalerweiße...?



CapSob
12.06.2004, 11:46
Hallo C-Control Gemeinde!

Ich bin neu auf dem Gebiet der C-Control. Jetzt wollte ich mal ein einfaches "LED-Blink" Programm aufsetzen, aber jetzt lese ich überall in den Beispielen von versch. Seiten, dass die die Anode an den DigiPort ranhängen. Wäre es nicht sinnvoller, die Kathode anzuschließen, dass die LED bei '0' leuchtet? Oder geht das überhaupt nicht?
Achja, kann ich die C-Control PLUS auch mit Basic programmieren?

Ich weiss nicht, ob ihr es schon wisst, ist mir aber unter die Finger gekommen beim surfen:
32k-Speichererweiterung für C-Control (http://www.b-kainka.de/eeprom3.htm)[/url]

Matthias
12.06.2004, 12:03
Man kann beides.

Das mit der Speichererwieterung ist schon bekannt, glaub ich...

RCO
12.06.2004, 12:53
Was du dranhängst ist im Grunmde Egal.
Wenn dein Programm nicht läuft, sind die Ein/Ausgäbge auf 1, dank eines Pullupwiederstandes. Aber sonst ist es egal.

Du kannst nur in Basic programmieren, solange du auch ne BAsic unit hast. glaube du brauchst dann ne andere Unit.

Deshalb gibt es ja 2 verschiedene.

Matthias
12.06.2004, 13:08
Nein. Es ist die gleiche Unit. Nur der Interpreter der mitgeliefert wird ist verschieden. Ich hab ne Plus gekauft, hab sie aber mit basic geproggr. Der Interpreter wandelt die Befehle in Tokens um. Diese Tokens werden auf dem e²prom gespeichert. Die Tokesns von CC/plus und CC/Basic sind identisch! Nur die art, wie man sie aarstellt ist anders!

12.06.2004, 13:22
Ach so, sind die Unit nicht gleich teuer??? WArum gibt es dann die Basic überhaupt, man hätte ja auch einfach bei Basic die Plussoftware mitliefern können.

12.06.2004, 13:26
Gibt es ein programm, mit dem man Basic compilieren und direkt übertragen kann??? Außer der Plus-software??
Gibt es ein Buch, wo man die Basicprogrammierung speziell für C-control lernen kann??

Ich würde dann auch gerne mal auf Basic ujmsteigen, das Dauergeklicke und die schlechte Übersicht reicht mir nämlich.

Matthias
12.06.2004, 13:27
Weiss ich nicht. So weit ich weiß, gibt es garkeine Basic. Die Software kann man sich im internet downloaden.

Matthias
12.06.2004, 13:29
Ein gutes buch ist "C-Control anwendungen MSR-Technik für Einsteiger und Aufsteiger". Damit hab ich angefangen. Ist übrigens von Martin Förster und Burkhard Kainka. Letztere hat auch ne jute Website.

12.06.2004, 13:41
Also ich habe die CCPlus und programmiere in Basic. So. Habe natürlich auch gleich ein Prog geschrieben:

define led1 port[1]

#loop
tog led1
pause 50
goto loop

Wenn ich jetzt die Daten übertragen habe, Aus, und wieder Ein schalte, leuchtet die LED schwach. Wenn ich dann jetzt auf START drücke, passiert nichts, außer dass bei den Status-LEDs die Gelbe konstant leuchtet und die Rote blinkt. Was ist falsch, dass die angeschlossene LED nicht, wie laut Programmcode, blink?

cu CapSob.

Matthias
12.06.2004, 18:08
Also das programm ist fehlerfrei. überprüf lieber mal ob du die LED richtig angeschlossen hast.

CapSob
12.06.2004, 18:25
@Matthias: Also ich hab die LED so wie sie auf dem bild auf deiner Site zu sehen ist angeschlossen. Anode in Port 1 und Kathode in GND. Wenn ich jetzt mit einem Multimeter rangehe, zeigt es mir bei jedem Port 4,98V an. Egal, wie lange ich messe.

..?..?..

Matthias
12.06.2004, 18:28
Hattest du den Wiederstand dran?

CapSob
12.06.2004, 18:41
Ja, eine Low-Current LED mit einem 2,2kOhm Widerstand.

Matthias
12.06.2004, 19:23
Dann müsste es eigentlich funktionieren. Ich weiss auch nicht mehr weiter. kannst du ein Bild oder so von deiner Schaltung schicken?

CapSob
12.06.2004, 19:32
Klar doch:

http://www.renebrixel.de/images/ccplus.jpg

Bitte warten, bis geladen... (20kb).

irgendsowas
13.06.2004, 01:00
das bild hab ich irgendwo schon mal gesehen.....??

versuchs mal mit nem 1k widerstand, das dürfte für die led reichen, wenns eine low-current ist!! bei 2,2k hätteste theoretisch nur 1volt spannung an der led. wenns dann nit geht, steck den widerstand in den port und das bein der led an masse, ist genausogut, als ob du die beine der led vertauschst, soll heissen, dass du das ding wahrscheinlich falsch gepolt hast!!
mfg
irgendsowas

djdune
13.06.2004, 01:59
Bei lc Leds braucht man fürs kurze testen eigentlich gar keinen Vorwiderstand. Hast du sicher Anode und Kathode nicht vertauscht?
Kathode muss auf die Masse und hat das kürzere Bein, bzw wenn du die Led ins Licht haltest, siehst du 2 Plättchen. Das größere davon ist Masse

CapSob
13.06.2004, 10:40
Danke schonmal für eure Hilfe, aber denkt ihr eigentlich ich bin dumm? Ich Anode/Kathode nicht unterscheiden?

Sorry, musste aber mal gesagt werden...

Ich werde jetzt mal die LED mit einem 1k Widerstand, dann ohne mal testen, wenns nicht funtzen sollten. Kann es eigentlich auch sein, dass die Daten nicht richtig vom PC übertragen worden sind?

cu Cap.

Matthias
13.06.2004, 12:43
Du kannst es ja noch mal rüberschicken. Dreh das Teil doch einfach mal um und Teste die LED.

CapSob
13.06.2004, 14:29
PROBLEM GELÖST!!!

Also, wie ich vermutet hatte, war die LED richtig rum angeschlossen...

So, aber am Programmcode lag es. Ich hatte ja die CC erst mit diesem Code gefüttert:

define p1 port[1]

#loop
tog p1
pause 50
goto loop

Danach leutete die LED ja bloß schwach und es hat sich nichts getan..

Jetzt hab ich irgendwo mal noch was testweiße dazugeschrieben:


define p1 port[1]

p1 = 1

#loop
tog p1
pause 50
goto loop

Und seit dem blink meine LED schön im 50Hz Takt... Kann es sein, dass ich meine Port als Ein- bzw. Ausgang deklarieren muss? Beim AVR in Bascom ist ja so: DDRD=&B00000001 : Das würde jetzt heißen, dass beim Port D der Pin 1 Ausgang ist, und die anderen Eingang... Wat nu?

Matthias
13.06.2004, 14:30
eigentlich macht der das von alleine. im simulator hat das Programm gefuntzt...

Nicht 50Hz, 1Hz...

CapSob
13.06.2004, 14:38
Ja stimmt. Das Prog ohne 'p1 = 1' hat im Simulator getan.
Aber an was könnte es liegen?
Müsst ihr die Port auch vorher deklarieren, oder geht das Prog ohne 'p1 = 1' bei euch?

Matthias
13.06.2004, 17:08
Bei mir geht beides...

CapSob
13.06.2004, 23:21
Kann es vielleicht sein, weil ich hab die CC neu gekauft, sodass irgend etwas in der veriable stand, und die CC es sozusagen nicht verstanden hat, was sie togglen soll?
Muss jetzt mal versuchen, ohne 'p1 = 1' nochmal zu übertragen und zu testen...

Abbott
16.06.2004, 23:35
Wo es hier bereits um LEDs geht würde ich gerne Fragen, wie man die nötigen Vorwiderstände ausrechnen kann. Es wurde geschrieben, dass man 1kOhm oder 2,2kOhm verwenden kann. Ich habe bei einer Low-Current-LED einen Vorwiderstand mit gerade einmal 68 Ohm verwendet und es funktioniert natürlich trotzdem.
Ich weiß, dass die Stromstärke von der anliegenden Spannung abhängt, diese sich jedoch nicht linear verändert. Dafür gibt es Kennlinien für die jeweiligen Dioden. Kann man diese Kennliniendiagramme irgendwoher beziehen oder kann man sie vll. sogar ausrechnen?

CapSob
17.06.2004, 00:22
ModdingFAQ - Vorwiderstandsberechnungstool (http://www.modding-faq.de/index.php?artid=506)

...der Link sollte dir weiterhelfen!

cu Cap.

recycle
17.06.2004, 01:21
Es wurde geschrieben, dass man 1kOhm oder 2,2kOhm verwenden kann.

Bei soetwas kommt es immer ein bischen drauf an, in welchem Zusammenhang es geschrieben wird.
Bei vielen Schaltungen die hier im Forum diskutiert werden, geht es nicht darum die maximal mögliche Leuchtkraft der LED zu erreichen, sondern der Vorwiderstand wird so ausgerechnet, dass irgendwelche anderen Bauteile nicht überlastet werden.
Microcontroller können z.B. nur sehr geringe Stöme schalten. D.h. wenn man eine LED als Anzeige direkt daran anschliesst, wird man beim Vorwiderstand für die LED eher darauf achten, dass der Controller nicht überlastet wird, als auf die optimale "Lichtausbeute".



Ich habe bei einer Low-Current-LED einen Vorwiderstand mit gerade einmal 68 Ohm verwendet und es funktioniert natürlich trotzdem.

Ich habe mal irgendwo eine ganz passende Beschreibung dafür gelesen, nämlich: "LEDs sterben langsam".
Wenn der Vorwiderstand zu klein ist und eine LED zuviel Strom bekommt, brennt sie nicht sofort durch. Sie leuchtet aber auch nicht heller und geht wesentlich schneller kaputt als normal.
Wenn deine LED möglichst hell leuchten und trotzdem lange halten soll, lohnt es sich also schon den geeigneten Vorwiderstand zu berechnen.

AlexAtRobo
17.06.2004, 08:47
Sobald einem Port ein Wert zugewiesen wird, wird er automatisch als Ausgang definiert. Um das wieder Rückgängig zu machen, mußt du DEACT p1 schreiben, dadruch wird er wieder ein Eingang.
Es ist generell in jeder Sprache und System intelligent, alle Ein/Ausgänge zu definieren und vorzubelegen.

lg

Alex

CapSob
17.06.2004, 14:11
Nochmals wegen den LEDs...

Wäre es eigentlich nicht sowieso besser, den uC Masse schalten zu lassen? Also LED Kathode an uC und LED Anode an Vcc.

RCO
17.06.2004, 21:48
JA, weil die meisten Eingänge hocjgezogen sind!, Die leds beim ausgeschalteten uC also leicht leuchten.

So ist das beim C-control jedenfalls

avatar
17.06.2004, 22:37
Ich berechne meine Vorwiderstände mit dieser Näherungsformel. Die Sättigungsspannung der schaltenden Transistoren ist hier nicht berücksicht, hätte aber auch nur wenig Einfluss auf das Ergebnis.

Vorwiderstand = (Uin - Uref) / Iref

Uin ist die Betriebsspannung über allem (z.B. 5V)
Uref ist die die Schwellenspannung der LED
Iref ist der Strom der durch die LED fließt
Uref und Iref kann man im Datenblatt der LED nachlesen.

Die meisten LED's haben einen Uref von ca. 1,5...3,5 Volt und einen Iref von ca. 20 mA. Wenn der µC keine 20mA liefern kann muss man für den Strom entweder einen geringeren Wert ansetzen und die LED nicht mit maximaler Helligkeit leuchten lassen. Oder man schließt die LED über einen Transistor an oder ein Treiber-IC, das wahlweise auch gleich einen Inverter enthalten kann.z.B.

74HCT06 oder 75451 (mit Inverter)
74HCT07 oder 75452 (ohne)

Die 75-er Typen (2 Treiber in einem 8-poligen IC) sind schon fast etwas überdimensioniert für LED's. Die 74er enthalten 6 Treiber in einem 14-poligen IC.

CapSob
17.06.2004, 22:41
Ja, ich glaube das mit der Treiberstufe lohnt sich erst so bei ultrahellen leds. für meine Testzwecke, simpel eine LED leuchten zu lassen, kann man die LC-LED direkt anschließen...