Gutan Tag, wir müssen für die Hochschule eine kleine Installation mit Arduino erstellen, leider haben wir beide keine Ahnung davon. Der Software Teil ist kein Problem, bei der Hardware setzt es allerdings bei uns aus. Was wir machen wollen. Wir wollen 9 Infrarot Sensoren vom Arduino auslesen lassen. Das Arduino Uno hat allerdings nur 6 analoge Eingänge. Uns wurde gesagt, dass das mit einem Multiplexer möglich sei. Also hat uns der Fachhändler einen ULN2801A mitgegeben, nachdem wir ihm unser Problem erläutert haben. Aber nachdem wir ins Datenblatt geschaut hatten waren wir mehr verwirrt als geholfen, da wir 3 Steuerleitungen erwarteten. irgendwann entscheiden wir uns jeweils zwischen 2 Sensoren mit 2 Transistoren hin und herzuschalten, allerdings sind auch Transistoren neuland. Habe an die Basis einen digitalen Ausgang gehängt und somit zwischen HIGH und LOW geswitched. Ergebnis war, dass der analoge Wert bei LOW ganz normal ausgelesen hat, bei HIGH allerdings, den max. Wert des sensor angezeigt hat. Wenn ich dann 2 Sensoren auf einen analogen Pin gelegt habe, dann hatte HIGH und LOW keine Auswirkung mehr. Wie kann ich das Problem am einfachsten lösen? Welcher Multiplexer ist für sowas der RIchtige? Danke. Gruß Stefan
Hi! Also zunächst wäre interessant, was ihr unter IR Sensoren versteht...Wollt ihr tatsächlich ein analoges Signal auswerten? Dazu: prinzipiell geht das mit einem Multiplexer (Analogschalter), der ULN2801A ist, wie man aus dem Datenblatt sehen kann, ein Darlington-Array. Wikipedia sagt euch was zu Darlington, kurz und knapp hat sowas in eurer Anwendung imho nichts verloren. Achja, was ist denn die geplante Anwendung? Was für ein Bauteil ist dieser IR Sensor? schöne Grüße Chris
Also der Infrarot Sensor ist ein Sharp 2Y0A21. Ziel ist eine Platte mit einer 3x3 Matrix aus IR Sensoren. Wenn man mit der Hand darüberfährt, dann sollen LEDs im Bereich der Hand aufleuchten. Welcher Multiplexer wäre denn für sowas geeignet? Gruß und Danke Stefan
da wuerde ein guter alter CD4051 analog multiplexer gehen. http://www.ti.com/lit/ds/schs354a/schs354a.pdf gruss, -- randy
Hi, ok, also Ihr müsst wirklich eine Analogspannung sprich die Entfernung vom Sensor erfassen. Prinzipiell sollte ein beliebiger Analogschalter funktionieren, hier mal ein Beispiel: http://www.analog.com/static/imported-files/data_sheets/ADG419.pdf Das ist jetzt ein einfacher SP2T, also ein Umschalter. Ihr könntet also bspw. 8 Sensoren mit 4 Analogeingängen erfassen, indem zwischen 2 Sensoren und einem Eingang keweils ein solcher Schalter sitzt. Der 9. Sensor sitzt dann direkt am fünften Eingang, falls dies timingmäßig Probleme macht, muss beim Abfragen des fünften Sensors die Umschaltzeit der übrigen Sensoren "simuliert" werden. scheint mir aber in der Anwendung unkritisch. Dadurch, dass (nahezu) kein Strom in die Analogeingänge fließt, sollte die On-Resistance keinen großen Einfluss auf die gemessene Sensorspannung haben, da werdet Ihr aber wohl eh etwas experimentieren müssen, die Kurve im Datenblatt siet schon relativ krumm aus. schöne Grüße Chris
Schonmal danke für die tolle Hilfe euch allen ;) Habe mir jetzt den 74HC4051 geholt, allerdings habe ich noch so meine Probleme mit. Übergebe 3 binäre Zeichen an die Steuereingänge des Multiplexers, hochzählend von 000 - 111. Wenn ich denausgelesenen analogen Wert dann jeweils mit einer Switch Case Anweisung an 8 Variablen übergebe, daann schreibt er in jede Variable den selben Wert. Habe mich bei anschliessen an das linke Diagramm gehalten: http://playground.arduino.cc/uploads/Learning/4051_pins.jpg Code ist im Anhang. Danke Gruß Stefan
Wenn ich den Code so sehe... In jedem vernünftigen C-Buch gibt es auch einen Abschnitt zu Arrays.
Ja haste Recht, war nur schnell zum Testen, ohne zu überlegen. Seh mich auch nicht als Programmierer. Aber zum eigentlichen Problem. Was mache ich falsch?
das a0IR = analogRead(0); muss natürlich in die Schleife. Soll doch jedesmal neu gelesen werden. Oder??
Super danke dir... wir haben jetzt allerdings ein neues Problem. Und zwar haben wir jetzt die 9 Sensoren dran und ab dem 8ten Senso streikt das Arduino. ISt es möglich, dass das Arduino zu wenig Leistung liefert für alle 9 Sensoren? Wenn ja, ist es einfach z.Bsp möglich die Ground und + Leitung aus einem anderen Stromkreis zu nehmen? Oder irgendeine andere Möglichkeit. Danke Gruß Stefan
Eine eigene 5V Versorgung für die Sensoren wird notwendig sein. Nicht vergessen den Ground zu verbinden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.