Schönen Guten Abend, ich hatte mir zur Aufgabe gemacht eine Fußgängerampelschaltung zu bauen, bei der die Ampel für die Autos durchgängig Grün anzeigen soll und dann bei Tastendruck der Fußgängerampel, die Fußgängerampel von Rot auf Grün wechselt und die Ampel für die Autos dann nach einem Delay auf Rot wechseln. Da ich nicht wirklich der beste Elektrotechniker bin, wollte ich fragen, ob die Schaltung im Anhang so funktioniert, wie gedacht und ob ich dann den MC direkt programmieren könnte ? Ich habe für die Schaltung den PCA9555 verwendet. Danke schonmal im vorraus. MfG Lorenz
Hi, wie hast Du die Vorwiderstände an den LEDs berechnet? Sind es low current LEDs? LEDs in Rot/Grün/Gelb haben in der Regel unterschiedliche Durchflusspannungen, deswegen müssten die Widerstände je nach Farbe unterschiedlich sein. Im Datenblatt zu dem I/O-Baustein ist max. 160mA Strom in Summe von Vcc angegeben. D.h. wenn Du alle LEDs gleichzeitig an hast (was beim Expirmentieren durchaus vorkommen kann) darf das nicht überschritten werden. Ich würde die Widerstände so berechnen, das pro LED ca. 15mA fließen. Das reicht für die meisten LEDs aus. Du solltest am besten mal in die Datenblätter der LEDs schauen, wieviel Strom sie benötigen um zu leuchten. Die Taster solltest Du an zwei separate Eingänge des ICs anschließen. Hast ja noch welche frei. Die Ports haben ja bereits einen 100K Pullup-Widerstand nach Vcc eingebaut (siehe Datenblatt). D.h. Du schließt Deinen Taster an den I/O-Pin über einen 1k Widerstand nach Masse. Warum 1K Widerstand? Damit, falls Du den Port versehentlich als Ausgang programmiert hast und den Taster drückst, nicht der maximale Strom fließt und etwas in Rauch aufgeht. Grüße Markus
Bleib mal ruhig Habe einen ähnlichen Aufbau wie du, allerdings vereinfacht. Mach eine Foto un setze es rein. Dann kannst du vergleichen. achim
Tendenziell kann das klappen, es ist allerdings nicht ersichtlich welche LED für welchen Zweck ist. Anstelle die LEDs direkt aus dem uC zu betreiben, solltest Du mit Transistoren oder Mosfets die Spannung auf die LEDs schalten (siehe hierzu die passenden Tutorials auf uc.net). Damit kannst du eine Beschädigung des uC verhindern, wenn die LEDs zu viel Strom benötigen, den der uC an seinen Ports eventuell nicht liefern kann. Mit 1k5 und 5V sollte das zwar noch klappen (3mA), aber schöner wäre es trotzdem. Über eine Tastenentprellung solltest Du noch nachdenken. Ist in diesem besonderen Fall wohl egal, weil Grünphasenanforderung nun mal nur einmal passiert. Wie das geht, darüber scheiden sich die Geister. Im Prinzip kannst Du das per Hardware oder Software lösen. Ach ja, eins noch. Braucht der PCA955 keine externe Beschaltung? (C oder X oder so?) Viele Grüße, Wastl
PS: Was meinst Du mit den "MC direkt programmieren"? Also Du kannst diesen Interface-Baustein mit dem Controller über eine I²C Schnittstelle ansprechend ansprechen. Anstelle den Umweg über diesen I²C Bus zu gehen ist es vlt. einfacher die LEDs direkt vom Controller über Transistoren, FETs oder andere Treiberbausteine zu schalten. Die Sache mit dem I2C Protokoll verkompliziert es unnötig - es sei denn Du willst unbedingt diese Schnittstelle verwenden...
:
Bearbeitet durch User
So habe ein Bild angehängt. Technik: Verwende einen PCF8574 mit Adresswahl, jeweils 2 LED gleicher Farbe für die Strasse, 2 Taster für die Fussgänger und jeweils 2 LED für die Fussgänger. Der PCF schaltet einen Transistor und der jeweils 2 LED. Die LED haben ca. 20 mA, Vorwiderstand 220 Ohm egal welche Farbe. Aufbau ist der Funktion angeglichen. Steuerung erfolgt von einem separaten Modul mit AT1284p oder Attiny 2313. Verbindung erfolgt über I2C Bus mit 2 Anschluss. Int steckbar gemacht. Belegung der Stecker erfolgt nach RN Standart. Platine hat ein Einheitsgrösse. Auf Grund des Aufbaus kann die Programmierung klasssisch über delay erfolgen, oder besser als Multitasking oder noch besser als Statemaschine. Grosse Teile des Programms sind schon fertig. Hatte es ruhen lassen und erst anderes gemacht. Programmierung erfolgt in C. Tastenentprellung nach PD ist auch dabei. Schaltung habe ich noch nicht fertig. achim
@achims Danke dir erstmal. Hätte nur eine Frage, sind die Transistoren bei meiner Schaltung notwendig oder würde Sie mit Programmierung auch so funktionieren ? @Markus M. ich wollte low current LEDs verwenden. Danke für den Tipp mit dem Taster. Mit MC direkt programmieren meinte ich eher den MC auf einer anderen Platine mit RS323 Schnittstelle zu programmieren und dann den MC in der Schaltung einzubauen. @Wastl F. was meinst du genau mit: ,,es ist allerdings nicht ersichtlich welche LED für welchen Zweck ist". Ich wollte die Schaltung, jedoch mit MC machen, da ich gerne das Programm dafür schreiben wollte :)
Lorenz M. schrieb: > @Markus M. ich wollte low current LEDs verwenden. Wenn du Low-Current LED nimmst, dann kannst du auch 2 davon direkt (Natürlich mit je einem Vorwiderstand für jede LED) an einen Portpin vom Prozessor hängen. Das spart dir den ganzen Umweg über den I2C Portexpander. Wenn du also am Prozessor genug Pins für 5 Ausgänge und 2 Eingänge frei hast, dann geh den einfacheren Weg.
:
Bearbeitet durch User
Lorenz M. schrieb: > @Wastl F. was meinst du genau mit: ,,es ist allerdings nicht ersichtlich > welche LED für welchen Zweck ist". Ich wollte die Schaltung, jedoch mit > MC machen, da ich gerne das Programm dafür schreiben wollte :) Siehe dazu Kommentar von Markus M., zweiter Absatz: Ich habe übersehen, daß das gar kein uC ist, sondern ein I2C Baustein. Es ist wohl einfacher direkt einen uC zu nehmen, und mit diesem dann über zwischengekoppelte Transistoren oder Mosfets die LEDs zu steuern. Mit ".. nicht ersichtlich .." meine ich, daß nicht klar ist, welche LED wofür zuständig ist. Was bei der obigen Skizze Wurscht ist, aber zum logischen Verständnis beiträgt, wenn später Fragen kommen wie "warum leuchtet die rote Fussgänger-LED nicht"
:
Bearbeitet durch User
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.