Forum: Mikrocontroller und Digitale Elektronik µC + Lichtschranken + FlashCard


von see4far (Gast)


Lesenswert?

Hallo zusammen!

Bin ziemlich neu auf diesem Gebiet. Hab mal etwas mit Mikrocontrollern
rumgespielt vor ein paar Jahren (damals C-Control von Conrad).

Nun will ich ein System aufbauen, bei dem ein µC ca. 20-40 Kanäle
(Signale von Lichtschranken oder Mikrofonen ->Schwellenwert) erfassen
und aufzeichnen soll. Meine Frage ist jetzt, welchen µC ihr mir
empfehlen würdet. Günstig wäre es natürlich, wenn sich die Zahl der
Kanäle später vllt. erweitern ließe. Ich weiß nicht, ob's da
mittlerweile Möglichkeiten gibt.

Außerdem würd es mich interessieren, ob ich einen
Kartenleser/-schreiber zum Beschreiben von Speichermedien
(CompactFlash-Card oder ähnliches) an solche µCs anschließen kann. Wenn
ja, würds mich interessieren, wo ich Informationen dazu finde, wie das
geht und was man da nimmt.

Wäre schön, wenn ihr mir weiterhelfen könntet.

Vielen Dank schon mal im Voraus.

see4far

von Sebastian (Gast)


Lesenswert?

Hallo,

du solltest deine Anforderungen etwas spezifizieren. Um CompactFlash
oder andere Speicher anzusteuern, gibt es hier im Forum ne Menge
Beispiele da kannst du drin stöbern. Einfach die Suche benutzen.

wichtig wäre z.B. zu wissen welche Spannung, genaue Anzahl an
Lichtschranken bzw. Mikro's, Einsatzziel,...

Seb

von see4far (Gast)


Lesenswert?

ich werd mal weiterstöbern...

ich habe quasi in einem raum 40 lichtschranken. nun soll von einem µC
(oder wenns anders nicht geht auch von zweien) jede lichtschranke
einzeln überwacht werden. im prinzip soll dabei vom µC die anzahl der
zustandsübergänge pro zeit gezählt werden. wie genau, ist aber denke
ich  erstmal nicht so wichtig. der µC muss ja erstmal genügend eingänge
besitzen. die daten sollen dann zwischengespeichert werden. günstig wäre
eben ein flash-speicher, damit man auch bei hoher daten-rate alles
loggen kann. daher hatte ich an speicher-karten gedacht. die über einen
bestimmten zeitraum gesammelten daten sollen dann später von einem
computer ausgelesen werden. das soll dann entweder über eine RS232
schnittstelle oder direktes auslesen der speicherkarte geschehen.

ich würd jetzt gerne wissen, welchen mikrocontrollerl ihr mir empfehlen
würdet. das mit den mikrophonen soll dann analog zu den lichtschranken
funktionieren. das signal müsste praktisch dann schon hardware-seitig
als 0-1-Signal vorliegen.

see4far

von see4far (Gast)


Lesenswert?

kann mir echt keiner eine empfehlung geben? ihr spielt doch täglich mit
AVRs rum und müsstet doch wissen, was man da nimmt, oder täusche ich
mich? ;-)

gruß
see4far

von Sebastian (Gast)


Lesenswert?

Die Lichtschranken und alles kann man mit fast jedem beliebigen
auswerten. Wie oft werden die Lichtschranken getriggert? Wie groß ist
der Raum? Was ist wichtig zu wissen (Anzahl pro Zeit oder genauer
Zeitpunkt)? Welche Ausgänge haben die 0/24V oder 0/5V,...

Im Prinzip brauchst du ja nur ein paar Bausteine die als Eingänge
dienen. Dann wird in kurzen Abständen geschaut ob sich was geändert
hat.

Oder man macht das per Interrupt,....

Im Prinzip ist der ATMEGA32 gut geeignet. Hat ne Menge Flash und ist im
DIP Gehäuse.

Seb

von see4far (Gast)


Lesenswert?

die lichtschranken sind noch nicht vorhanden. wäre natürlich günstig,
welche mit 5V zu nehmen ;-)
interrupt wird wohl schwer oder? weil 40 interrupt-eingänge? gibt es so
einen µC? oder legt man dann alle auf den interrupt-port und zusätzlich
auf einen anderen port?
ob anzahl pro zeit oder genauer zeitpunkt soll nicht von vornherein
festgelegt werden. aber wahrscheinlich ist eine zählung über ein
intervall von einigen minuten. danach wird dann eben ein neues
intervall gestartet usw.

welche boards würdet ihr empfehlen für den ATMEGA32, das vllt neben
RS232 auch USB und ne speicherkarte oder sogar ethernet unterstützt?
gibt es da fertige zu kaufen? oder momentan nur dieses projekt:
http://www.ispf.de/modules.php?name=News&file=article&sid=5

das is jedenfalls das einzige was ich bis jetzt gefunden hab.

thx
see4far

von Sebastian (Gast)


Lesenswert?

Wenn es per Interrupt sein sollte, findet sich bestimmt ne Lösung. Der
Mega hat 3 ext Interrupts, wenn man die gut verschaltet geht das schon.
Erweitern lässt sich die Sache mit 74x165. Wenn du SMD löten kannst,
kannst du auch nen Mega128 oder auch mehrere nehmen. Die haben dann
genug Interrupts. Was fertiges wird es wohl nicht wirklich geben.

von Philipp Sªsse (Gast)


Lesenswert?

Und es stört nicht, wenn 40 Leitungen durch den Raum laufen? Klingt für
mich eher, als solltest Du einen Bus nehmen. Dann kommt z.B. an jede
Lichtschranke ein Zählerbaustein, der ab und zu (wie genau Du es halt
brauchst) über den Bus abgefragt und zurückgesetzt wird. Dann hast Du
keine Sorge mit einem Dutzend gleichzeitiger Interrupts und sparst die
aufwendige Verkabelung. Welcher Bus sich eignet, hängt von der Größe
des Raumes ab.

Schreibe die Daten lieber auf MMC statt CompactFlash (falls das interne
EPROM nicht sogar ausreicht oder Du das Flash des µC nutzen kannst), das
dürfte einfacher zu implementieren sein.

von see4far (Gast)


Lesenswert?

smd löten hab ich noch nicht wirklich (gut) gemacht. sollte mir vllt mal
anleitungen und material besorgen...

40 leitungen würden nicht unbedingt stören, man könnte notfalls auch 2
µCs nehmen. um an allen lichtschranken vorbeizukommen, wird man
vermutlich ne kabellänge von 50m brauchen. genaueres weiß ich aber auch
noch nicht. der abstand von den lichtschranken zum µC wird aber wohl
nicht mehr als 15m betragen.

MMC hatte ich auch schon angepeilt, nachdem ich das forum durchstöbert
hatte. scheint ja auch recht gut "erforscht" zu sein. wie viel
speicher haben denn die AVRs? doch nicht mehr als 512kB oder?

kriegt man sowas echt nirgends fertig? auch nicht die einzelnen teile
als module? das zusammenzubasteln wäre ja dann nicht mehr das problem.

vielen dank für eure (weitere) hilfe.

see4far

von Sebastian (Gast)


Lesenswert?

Na eigentlich braucht man ja nicht viel. Der Prozessor und ne
Spannungsversorgung. Evtl. nen Pegelwandler für die RS232. Nen
Steckkontakt für die MMC Karte. Das gibt es alles bei Reichelt.
Entweder du nimmst noch ne Hartpapier Karte und lötest das drauf oder
machst ne richtige Platine.

Dann solltest du noch ein Stecksystem draufmachen für die Schranken.

http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC

Hier findest du alle Parameter der Atmels.

von see4far (Gast)


Lesenswert?

welcher bus-typ würde sich denn für die lichtschranken-applikation
eignen? praktisch wäre es, wenn man auch noch mehrere µCs an diesen Bus
hängen könnte. aber mit bussen kenne ich mich leider überhaupt nicht
aus.

wie würde ich überhaupt die lichtschranke an den bus anschließen.
"zählerbaustein" klingt ja schön und gut, aber wie baue ich den?
lohnt sich das dann auch noch von den kosten?

kann man an solch einen bus dann auch sowas wie tastatur und display
anschließen? wäre ja praktisch, weil man dann evtl gleich mehrere µCs
mit einer einheit versorgen könnte.

entschuldigt mein großes unwissen. aber ihr könnt mir sicherlich ein
paar tipps geben. wenn ihr mir so grob sagt, wies geht, krieg ich den
rest auch alleine hin. hab eben nur nicht die erfahrung und weiß daher
nicht, wie man es am besten angeht. danke.

see4far

von see4far (Gast)


Lesenswert?

keiner ne idee, welchen bus ich da nehmen kann?

von see4far (Gast)


Lesenswert?

Hab mich jetzt mal etwas umgeschaut. Der I²C-Bus is ja eigentlich für
kleinere Distanzen ausgelegt. Bei Conrad hab ich allerdings ein
Leitungstreiber-Modul gefunden, welches das Problem angeblich bei
Installation eines solchen Bausteins alle 20m behebt (Artikel-Nr.:
198280). Was haltet ihr davon?

Bis jetzt habe ich aber nur einen Zählerbaustein gefunden, bei dem sich
nur 2 Adressen einstellen lassen:
http://www.fernando-heitor.de/pic/datasheets/PCF8583.pdf
Da ich aber 40 von den Bausteinen bräuchtet, bietet sich das wohl nicht
so an. Oder gibt es da eine Lösung?
Wo finde ich ansonsten passende Zählerbausteine?

Vielen Dank schon mal.
see4far

von Sebastian (Gast)


Lesenswert?

Problem bei den Längen ist meist die Geschwindigleit. Wenn du nur ne
sehr langsame Geschwindigkeit brauchst, ist das meist kein Problem.
Ansonsten bietet sich CAN,LIN,.... an. Da gibt es aber hier im Forum
einiges an Info's.

Seb

von see4far (Gast)


Lesenswert?

Die nächste Frage wäre dann nur:
Wo krieg ich die Zählermodule her? (aber die Frage stellt sich bei mir
auch noch beim I²C-Bus)

von Sebastian (Gast)


Lesenswert?

Naja da könntest du nen ATTiny11 oder so nehmen und dann das selber
schreiben. S.N.A.P. oder SNAP kann dir dann helfen.
Am einfachsten und wohl auch preiswertesten ist aber wohl die Kabel zu
legen. Die Lichtschranken müssen ja auch Strom bekommen.

von Martin (Gast)


Lesenswert?

Hallo,

wieviel Int pro Sekunde können denn auftreten?
Das ist bei 40 Eingängen nicht trivial !!

Martin

von see4far (Gast)


Lesenswert?

Mit mehr als einem Zustandsübergang brauch mal voraussichtlich nicht
rechnen.

Mir wären übrigens fertige Zählerbausteine (oder auch ATtinys) lieber
als die Lösung über die separate Verkabelung. Wenn genug Adressen zur
Verfügung stehen, kann man einen Bus eben viel leichter erweitern, oder
täusche ich mich da?

von see4far (Gast)


Lesenswert?

... äh.. meine natürlich: einen Zustandsübergang pro Sekunde und Kanal
...

von Sebastian (Gast)


Lesenswert?

Jain. Klar kann man das dann erweitern, aber man muss diese Möglichkeit
in Betracht ziehen und schon vorher dafür auslegen. Mit der
Direktverkabelung geht das auch recht einfach. Einfach noch nen 165 und
den dann mit abfragen.

von see4far (Gast)


Lesenswert?

"nen 165"???

von Sebastian (Gast)


Lesenswert?

Ja wie oben bereits geschrieben nen 74HC165 oder 74HCT165,....

von see4far (Gast)


Lesenswert?

achso... gut, das teil bräuchte ich nur, wenn ich einen Mega32 und nicht
Mega128 nehmen würde bei der direktverdrahtung, richtig?

ich hab jetz mal n bissl nach lichtschranken geschaut. irgendwie hab
ich noch nichts zufriedenstellendes gefunden. die müssten nämlich schon
ne reichweite von 1-2m haben. und bei 40 stück ... kann's sein, dass
das teuer wird? habt ihr da irgendwelche empfehlungen?

von Sebastian (Gast)


Lesenswert?

Wenn der Mega128 genug Pins hat. Du wirst das aber dann nicht großartig
erweitern können.

Ein Lösung für die Lichtschranken wäre diese auch noch selber zu bauen.
Einen NE555 auf der Senderseite welcher das Signal moduliert. Als
Empfänger nen TSOP1736 oder so und diesen an nen uC. Da kannst du noch
mehrere ransetzen und so z.B. 8 Lichtschranken an einen setzen. Über
Uart werden die alle vernetzt und Voila. Du solltest dir aber erstmal
Gedanken machen was du damit anstellen willst, wieviel Knete du hast,
...

von see4far (Gast)


Lesenswert?

hab mir jetzt erstmal ein paar datenblätter reingezogen. durch den NE555
steige ich noch nicht ganz durch, aber erstmal noch ne andere frage.

könnte ich mit einer LD274 und den anderen bauteilen eine reichweite
von 2-3 metern erreichen?

und ist es evtl. günstiger statt dem NE555 das modulationssignal vom uC
zu beziehen? ich weiß nicht, ob ich das signal für mehrere
lichtschranken mit einem port erzeugen könnte. bei sagen wir mal 20
ports würde es ja nichts ausmachen, wenn ein port für die
sendeeinheiten drauf gehen würde, und ich noch 19 zum empfangen hätte.
ich weiß aber nicht, ob das so praktisch ist. schließlich muss der uC
ja auch noch arbeiten und kann sich nicht voll aufs senden
konzentrieren.. was meint ihr?

knete scheint im moment noch nicht das problem zu sein. brauch ich
momentan noch nicht so sehr drauf zu achten.

von Sebastian (Gast)


Lesenswert?

Ja. in Fernbedienungen ist die auch oftmals verbaut. Wenn es nicht
aussreichend ist, kannst du auch 2 nehmen. Da die nicht immer an sind,
kann man die Pulsen und so kommt man auf die Reichweite. Wie du das
Signal modulierst und ob du das modulierst ist egal. Der
Mikrocontroller kann das ohne Probleme nebenbei erledigen. Die Timer
laufen parallel zum Programm und wenn der uC nen PWM Ausgang hat
brauchst du den nur starten und los gehts. Problem ist halt immer die
Versorgung. Du musst dann ein Kabel vom Sender zum Empfänger legen.
Kannst natürlich auch mit Spiegeln experimentieren.

Seb

von Tom (Gast)


Lesenswert?

Hi Leute

Ich hab da noch eine Idee für die Beschaltung der Lichtschranken:
Versuch's doch mit einer Matrix. Dies habe ich vor allem bei
Taster-Feldern gesehen und das geht so: Für 40 Lichtschranken brauchst
du 8 mal 5 Leitungen. Mein MSP430F149 hat für die 8 Eingänge an Port2
genau einen Interrupt zur Verfügung, wir wählen also diesen Eingang.
Von Port3 verwenden wir fünf Leitungen zur Versorgung aller
Lichtschranken mit Strom. Jeder Ausgang versorg eine Lichtschranke pro
Eingang.

Standardmässig sind alle Ausgänge auf High und die Interrupts für die
Eingänge aktiviert. Wird eine Lichtschranke unterbrochen, so wird ein
Interrupt ausgelöst, was wiederum eine Auswertungsroutine im
Hauptprogramm anwirft.

Die Auswertungsroutine schaltet als erstes alle Ausgänge ab. Nun wird
der Reihe nach ein Ausgang angeschalten und alle Eingänge abgefragt.
Danach wird der nächste Ausgang angeschalten und wieder alle Eingänge
abgefragt. So kann der Zustand jeder einzelnen Lichtschranke bestimmt
werden und du brauchst nur 13 Pins sowie ein wenig Software.

HTH

Tom

von Tom (Gast)


Lesenswert?

Hier ist noch der Link auf die Application Note (PDF), von wo ich das
Prinzip kenne:
http://www-s.ti.com/sc/psheets/slaa139/slaa139.pdf

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.