Forum: Mikrocontroller und Digitale Elektronik Ampelschaltung mit MC


von Lorenz M. (lorenz90)


Angehängte Dateien:

Lesenswert?

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

von Achim S. (achims)


Lesenswert?

Warum schaltest du die LED 1 und LED 2 über Taster?

von Markus M. (adrock)


Lesenswert?

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

von Achim S. (achims)


Lesenswert?

Bleib mal ruhig
Habe einen ähnlichen Aufbau wie du, allerdings vereinfacht. Mach eine 
Foto un setze es rein. Dann kannst du vergleichen.
achim

von Wastl F. (rescuetigerchen)


Lesenswert?

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

von Markus M. (adrock)


Lesenswert?

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
von Achim S. (achims)


Angehängte Dateien:

Lesenswert?

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

von Lorenz M. (lorenz90)


Lesenswert?

@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 :)

von Karl H. (kbuchegg)


Lesenswert?

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
von Wastl F. (rescuetigerchen)


Lesenswert?

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
Noch kein Account? Hier anmelden.