PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LED`s mit zwei Transistoren an einem Pin Schalten (PNP und NPN)



Spitfire
08.12.2012, 16:57
Hallo Zusammen !!!

Endlich habe ich das AVR-turtorial durch, und versuche mich an meinem ersten EIGENEN Projekt. Dabei möchte ich eine Spannungsanzeige über LED`s aufbauen. Gleichzeitig möchte ich die Signalstärke des RFM70 über LED`s anzeigen. Nur fehlen mir die Pin`s am Mega8. Es ist auch ein Display angeschlossen, und ein Summer soll auch noch über einen Transistor geschalten werde. Eventuell, wenn das einmal fuktioniert, auch noch eine Sprachausgabe. Daher auch die fehlenden Anschlüsse. Deshalb bin ich auf die Idee gekommen es mit Multiplexing zu versuchen. Also die Masse Pin`s der LED`s über Transistoren zu Schalten, und damit auch die einen (LED`s für die Spannung), oder die anderen (für die Signalstärke) auszuwählen. Damit brauche ich für zwei mal fünf LED`s nur fünf Pin`s, und zwei für die Transistoren. Jetzt ist mir aber die Idee gekommen, nicht zwei NPN-Transistoren zu verwenden, sondern einen NPN, und einen PNP. Bei diesen dann die Basis auf den gleichen Ausgangspin, und die einen LED`s gegen Masse Steuern, und die anderen gegen Vcc. Ist nun der Ausgang für die Transistoren High, leitet der eine, der andere sperrt. Wird der Ausgang low, sperrt der Transistor der zuvor leitend war, und der sperrende wird leitend. Kann das so funktionieren, oder erhalte ich nur Rauchzeichen, und deren Elektronisch bedeutung als Ergebniss. Bei diesen Dreibeinern (Transistoren) fehlt mir noch etwas der Durchblick.

Danke im vorhinein für eure Hilfe
Spitfire

PICture
08.12.2012, 17:09
Hallo!

Wenn es nicht sehr schnell geschaltet werden müsste, könnte man mit evtl. kaskadierten Schieberegister (z.B. 74XX164) biliebig viel "low current" LED's per zwei Pins vom µC steuern. ;)

Kampi
08.12.2012, 17:11
Hey,

hast du den I²C frei?
Dann nimm nen PCF8574....du kannst da glaube ich bis zu 4 Stück am I²C haben und jeder bringt dir 8 I/Os.

Spitfire
08.12.2012, 17:47
Hallo zusammen !!!

Die Schieberegister sind eine gute Idee, noch dazu waren diese auch ein Teil des AVR-Turtorial`s. Ich habe nur zuerst an`s Multiplexing gedacht. UND es sind zwei 74HC 595 vorhanden.
Auch die Lösung mit dem I2C hört sich gut an. Nur habe ich einerseits noch null Erfahrung, und zum anderen benötige ich den I2C evtl. für eine Sprachausgabe (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=56). Theoretisch habe ich bereits einges unter esacademy.com (http://www.esacademy.com/en/library/technical-articles-and-documents/miscellaneous/i2c-bus) gelesen. Probiert habe ich es derzeit noch nicht.

Trotzdem Danke für die schnellen Antworten
Spitfire

Kampi
08.12.2012, 17:53
Den I²C kannst du ja trotzdem noch weiter benutzen.
Jedes Device am Bus hat eine Adresse und du kannst (theoretisch) bis zu 127 Geräte am Bus anschließen die du alle einzeln adressieren kannst.
Ein PCF8574 ist ein ganz einfacher Einstieg in den I²C.

Spitfire
08.12.2012, 18:41
Hallo nochmal !!!

Das mehrer `Geräte` habe ich gelesen. Nur habe ich mich, nach deiner ersten Antwort, noch nicht wirklich darüber getraut. Aber probiern kann ich es ja. Der Ausweg mit den eh vorhandenen Schieberegister bleibt immer noch offen. Die Schaltung muss zuerst am Steckbrett funktioniern, und da ist es leicht den PCF8574 mit einem Schieberegister zuersetzen. Es ist aber trotzden einen versuch wert. Hast du vieleicht eine Ahnung über ein vernüftiges Turtorial für einen I2C Chip. Einen Beitrag habe ich bereits gefunden, die Beispiele sind leider für Bascom, und ich programmiere mit Assembler. Wenn nicht gibt es immer noch Dr. Google.

Danke trozdem

Spitfire

- - - Aktualisiert - - -

Sorry habe diesen (https://www.roboternetz.de/community/threads/59989-PCF8574-einzelne-I-O-Pins-ansteuern?highlight=PCF8574) Beitrag gemeint !!!!

Kampi
08.12.2012, 18:42
Hey,

mit Assembler kenne ich mich leider nicht aus.
Ich habe leider nur Beispiele in C und Bascom. Eventuell wäre für den Fall das du es in Assembler machst vielleicht doch ein Schieberegister besser, da dies leichter zu realisieren ist (denke ich).
Es hängt halt alles davon ab ob du die anderen GPIOs brauchst. Wenn ja solltest du den PCF8574 nehmen. Falls nicht steig auf das Schieberegister um :)

Spitfire
10.12.2012, 21:06
Hallo !!

Die Schieberegister habe ich so, oder so zur Verfügung. Ich werde das einmal probieren, zu dem ich mitlerweile einen Code-Schnipsel in Assembler gefunden habe, mit dem zwei ATmega8 über I2C verbunden sind.
Was mir noch etwas Kopfzerbrechen macht, ist die Adressierung der PCF 8574, nur habe ich da auch noch nicht genauer nachgeforscht. Ich gehe mal davon aus, daß das die A0, A1 und A2 Pin`s sind. Nur wie gesagt, ich habe mich darüber noch nicht wirklich schlau gemacht.

Danke
Spitfire

Rico88
10.12.2012, 21:52
Für die IO-Porterweiterung PCF 8574 findest du bei Reichelt auch das passende Manual. Auf Seite 8 befindet sich dann auch der Bereich der Adressierung im Schreibmodus. Die 7-bit Dresse ist demnach "0100 A2 A1 A0" für den PCF8574 und "0111 A2 A1 A0" für den PCF8574A. Das Manual ist auch sehr gut geschrieben. Auch für jeden, der nur wenige Schnipsel englisch im Kopf behalten hat :-D

Gruß Rico

Spitfire
10.12.2012, 22:57
Hallo Rico88
Danke für die Mühe. Werde das gleich als erstes Testen, wenn die Bauteile da sind. Habe aber leider noch nicht alles zusammen. Wird noch ein paar Tage dauern. Wird schon klappen.

Gruß
Spitfire