PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 16 Reflexlichtschranken an RN-Minicoltroll anschließen.



kilifuchs
07.11.2006, 15:31
Hallo zusammen.
Ich möchte 16, auf einer Schiene befestigte Reflexlichtschranken (SFH9202/Q62702-P5039 vom Conrad) an das RN-Minicontroll-Board anschließen.
Wie mach ich das am besten??? Soll ich jeden Sensor an einen eigenen pin anschließen oder soll ich das Multiplexen (oder A/D-Wandeln)????
Oder was denkt Ihr??? Ich möchte die Position einer Kugel bestimmen, die auf dieser Schiene rollt und damit einen Modellbauservo ansteuern, der die Schiene in der Balance hält.

Über etwas Hilfe für mein Projekt währ ich euch sehr dankbar - ich bin eben noch recht unerfahren in diesen Dingen.

Vielen Dank schonmal!

Kilifuchs

Hubert.G
07.11.2006, 18:43
16 Sensoren direkt anschließen wird nicht gehen, es sei denn du willst das Board komplett umbauen.
Zum Multiplexen brauchst du einen 1 zu 16 Multiplexer z.B. 4067 und immer noch 5 Ports am Board.
Aber vielleicht wissen andere noch eine einfachere Lösung.
Auch gleich noch viel Vergnügen beim Programmieren.

kilifuchs
08.11.2006, 11:09
Schonmal danke für die antwort!
ich habe mich jetzt entschlossen einen 1 zu 16 Mux zu verwenden - das hat mir heut auch ein betreuer bei uns an der FH empfohlen.
Jetzt muß ich also die 16 adressen zyklisch einscannen und die werte irgendwo hin ablegen.
Damit bin ich auch schon beim nächsten problem angekommen - hat das vielleicht schonmal jemand hier gemacht? Gibts da irgendwo in den Tiefen dieses Forums schon Beispielprogramme?? Ich möcht das ganze in C programmieren - wenn mir also jemand helfen könnte - nur zu!


Bis bald

Kilifuchs =P~

squelver
08.11.2006, 11:28
Nur so nebenbei, ich hätte da noch eine Alternative (vorausgesetzt, das läßt sich umsetzen):
Was hälst du davon, alle 16 RLS mit nem Schieberegister nacheinander einzulesen und dessen Wert abzufragen?
Du müsstest deinem Controller nur klarmachen (z.B. Steuerleitung des jeweiligen Registers), bei welchem Takt, welches Register welche RLS geschaltet wird \:D/

EDIT:
Dabei hast du dann nur eine Steuerleitung/ Signalleitung ;)

Hubert.G
08.11.2006, 12:05
Ein Schieberegister ginge natürlich auch, ob es für diesen Fall Ideal ist bezweifle ich allerdings.
Such dir ein Beispiel von der Kugel die in einem Magnetfeld schwebt, da ist das selbe Problem mit dem Aufschaukeln der Kugel, denn diese fällt zumeist aus diesem Grund hinaus.
Ich würde mal so beginnen: Abfrage wo die Kugel ist, dann links und rechts davon um die Bewegungsrichtung festzustellen und wenn möglich auch die Geschwindigkeit und dann darauf reagieren. Stärke der Reaktion abängig von der Geschwindigkeit und nicht vom Standort.

sigo
08.11.2006, 13:45
Ich schließe mich meinem Vorredner an. Ideal wäre sicher ein Controller wie der ATmega168, der mit jedem Pin einen Interrupt auslösen kann.
Einfach alle 16 Sensoren an 16 Portpins..

Dann könnte man z.B.

folgendes in der ISR (in allen 1 ISRs) machen:

Timerstand und Port zwischenspeichern
Dann Zeit-Differenz zu vorherigem Eintrag ermitteln, so erhält man das Tempo und die Richtung
Dann Stellgröße berechnen und ans Servo schicken,
dann Timer und Port aus Zwischenspeicher in ein globales Register schreiben....
und Reti

Sigo