Forum: Mikrocontroller und Digitale Elektronik Anzahl Sensoren - Anzahl I/O Pins


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin B. (methusalem)


Lesenswert?

Moin,

sorry, mir ist kein besserer Betreff eingefallen.

Ich bin gerade am überlegen, welchen µC ich für mein Projekt später
brauche. Ich werde 20 Lichtschranken auswerten müssen und 4
Siebensegmentanzeigen ansteuern müssen. Später soll mal noch ein LCD
Display hinzukommen.

Der ATMega16 hat ja z.B. 32 I/O Pins in 4 Ports organisiert. Wenn ich
nun 20 Lichtschranken abfrage, bleiben noch 12 Pins frei.

Nun wird es sicherlich ne Möglichkeit geben, die 7 Segmentanzeigen
nicht über 7/8 Pins anzusteuern (ich denke da an einen Treiberbaustein
- bin aber da absoluter Anfänger), sonst wären ja bei 4
Siebensegmentanzeigen noch einmal mindestens 28 Pins des µC weg. Und
das ginge dann ja schon nicht mehr.

Außerdem verstehe ich das im Moment so, das die einzelnen Pins des
ATMega16 doppelt belegt sind. Wenn ich also 20 Lichtschranken
anschließe, kann ich diese 20 Ports nicht mehr anders nutzen. Ist das
richtig so? Dann hätte ich ja beispielsweise keine serielle
Schnittstelle mehr zur Verfügung (brauche ich aber!).

Wie ich später dann noch das LCD ansteuern soll, weiß ich auch noch
nicht.

Wie ihr seht, bin ich blutiger Anfänger (mein STK500 kommt heute
hoffentlich mit der Post :-)). Vielleicht habt Ihr ja eine Idee für ein
Konzept. Oder muss ich sowieso für mein Vorhaben einen viel größeren µC
nehmen.

--
Martin

von Michael Wilhelm (Gast)


Lesenswert?

Es kommt darauf an, in welchen Zeitintervallen die Lichtschrankenimpulse
kommen können und wie lange die Impulse anstehen. Wenn es das Timing
zulässt, kann man z. B. einen 74HC4051 einsetzen. Da hättest du schon
mal 8 Lichtschranken untergebracht. Außerdem sind die Teile leicht zu
kaskadieren. Als Ausgabeerweiterung sind Latches wie 74HC573 oder ..574
zu verwenden.

MW

von Rahul (Gast)


Lesenswert?

Hallo Martn,

Dein Projekt haben wir ja schon ein wenig "zerkaut" (nicht mehr nur
durchgekaut...).
Probier doch erst mal, wie du mit dem Programmieren überhaupt
hinkommst.
Versuch erst eine LED leuchten zu lassen, dann LED durch einen Taster
einzuschalten, dann LED einschalten beim ersten Tastendruck,
ausschalten beim nächsten.
Dann kannst du mit dem Timer rumspielen, vielleicht auch mit der
seriellen Schnittstelle und so weiter.
Dein Zeiterfassungssystem für "Carrera"-Autos ist ein ganz schöner
Brocken, vor allem wenn man von der Realisation noch keine Ahnung hat.

Einen Mikrocontroller kann man immer durch Bauteile wie Schieberegister
um Ein- und Ausgänge erweitern. Dafür gibt es eine grosse Menge
Bausteine. Schliesslich bist du nicht der einzige, der mit
Mikrocontrollern arbeitet.

Fang erst mal klein an!

von Martin B. (methusalem)


Lesenswert?

Hallo,

:-) jaja - schon klar ... ich werd ja auch hoffentlich heute die
entsprechende Hardware zum rumspielen bekommen. Und ich werd natürlich
klein anfangen ... und wahrscheinlich auch einige Rückschläge erleiden.
Gehört halt dazu ... Bangemachen zählt nicht!

Unabhängig davon mach ich mir halt schon Gedanken wie ich sowas später
konkret umsetzen kann. Und deshalb mein posting.

--
Martin

von Rahul (Gast)


Lesenswert?

Der grösste AVR ist IMHO der ATMega128 (die neueren habe ich mir noch
nicht angeguckt).
Wenn du den verwenden möchstest, hast du nur ein Lötproblem.
Eigentlich sollte der Mega32 oder sogar Mega16 reichen.
Notfalls muß man sich einen Plan machen, wie man das System sinnvoll
auf mehrere Controller verteilt (Stoppuhren bzw. Lichtschranken mit
einem, Anzeige mit einem anderen, das ganze von einem weiteren
gesteuert, oder der Anzeigencontroller steuert gleichzeitig noch die
Uhr...) Ich gucke mir nachher ein Projekt an, an dem mehrere Leute
relativ lange gearbeitet haben, was jetzt aber mit nur 2 Controllern
(statt einer SPS oder anderen Varianten) läuft.
Zum Gesamtprojekt gehörte aber auch die mechanische Konstruktion...

Gruß Rahul

von TravelRec. (Gast)


Lesenswert?

Der ATMEGA16 kann das. Mit den entsprechenden Schieberegistern / Latches
/ Multiplexern ist das alles zu machen. Guck Dich mal durch das
einschlägige CMOS / High-Speed-CMOS Sortiment und dann wirst Du dort
alles das finden, was Du brauchst. Noch dazu haben die AVRs
bidirektionale Pins, so daß sich viele von ihnen doppelt und dreifach
verwenden lassen. Ohnen gut durchdachten Konstruktionsplan wird das
aber schwierig.

von crazy horse (Gast)


Lesenswert?

und man kann auch die Lichtschranken multiplex abfragen (4x5Matrix, 9
Pins für 20 Lichtschranken ohne weitere ext. Hadware), ebenso ist eine
I/O-Erweiterung über I2C möglich, mache ich aber eigentlich nie, da mir
die I2C-Chips meist zu teuer sind. Für ein Einzelstück spielt das aber
keine nenneswerte Rolle.
Siebensegmentanzeigen entweder auch Multiplex (das kann sogar parallel
oder teilparallel zu den Lichtschranken passieren). Konserativ wären
das dann 17 I/Os für LS und Display (die 9 von der I/O-Matrix + 8
Segmentausgänge). Das LCD wiederum könnte auch an den Segmentausgängen
hängen, einen weiteren Port für das enable-Signal, dann bist du bei 18
und hast immer noch ne Menge frei.

von Martin B. (methusalem)


Lesenswert?

Hallo,

ja Danke für die Hinweise ...

Ich bin gerade bei uns in der Werkstatt gewesen und habe nach
einschlägiger Grundlagenliteratur für dieses Thema gefragt. Mir wurden
diese Bücher ans Herz gelegt: aus dem Vogel Verlag die beiden Bücher
Grundschaltungen und Mikrocontrolertechnik.

Sind nicht ganz billig ... aber ich denke sowas in der Art brauche
ich!

--
Martin

von Rahul (Gast)


Lesenswert?

Oder die Grundlagenbücher aus dem Stam-Verlag.
Allerdings behandeln die den 8085.

von hans dieter (Gast)


Lesenswert?

schalte immer ein paar lichtschranken per oder-gatter (oder nand - je
nach dem wie die signale sind) zusammen und lege die auf einen port (5
pins) dann nimmst du ein paar schiebe register und schließt die
lichtschranken dort auch an und nimmst dann die restlichen 3 pins um
die schiebe-register auszulesen. damit kannst du sehr viele
lichtschranken abfragen

von hans dieter (Gast)


Lesenswert?

achso evtl. kannst du das signal aus dem kombinations-teil auch gleich
als übernahme puls verwenden

von TravelRec. (Gast)


Lesenswert?

Die Kollektoren (meist npn) der Empfängertransistoren der Lichtschranken
können alle auf einen Pin gelegt werden, der an einem Pullup hängt. Die
LEDs werden über 3 (8-Bit) Schieberegister durchgeschaltet, durch die
eine einzelne umlaufende 1 gereicht wird. Macht 3 Pins für die gesamten
Lichtschranken und es können noch viel mehr dran (solange, bis die Zeit
für einen kompletten Durchlauf zu lang wird).

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.