Hallo,
ich habe leider überhaupt keine Ahnung, wie ich einen (analogen) Sharp-IR-Sensor an den (digitalen) GPIO des Pi's anschliessen kann.
Hat jemand eine Idee dazu?
Druckbare Version
Hallo,
ich habe leider überhaupt keine Ahnung, wie ich einen (analogen) Sharp-IR-Sensor an den (digitalen) GPIO des Pi's anschliessen kann.
Hat jemand eine Idee dazu?
Hey,
wie wäre es mit einem externen ADC (z.B. über I²C).
Ich habe gestern sowas mit einem PSoC µC realisiert (noch nicht komplett fertig geschrieben, weil der CapSense noch etwas zickt):
http://kampis-elektroecke.de/?page_id=2802
Das Schema kannst du dann natürlich auf einen 0815 I²C ADC übertragen. Der Vorteil des PSoCs ist halt noch, dass ich nebenbei noch einen DAC und PWM habe.
Hallo Kampi,
geht leider nicht, ich habe beim Pinselbot noch den Pin7 frei (GPIO4) und den wollte ich im Input-Mode verwenden. Wenn ich das Analoge Signal mit z.B. einem Kondensator "glätten" könnte, wäre mir schon geholfen.
Was hast du denn ueberhaupt vor?
Willst du den ganzen Wertebereich erfassen oder nur bei einem Schwellwert schalten?
Und um welchen Sensor handelt es sich genau?
Ich habe mir diese Platine bestellt um die Liniensensoren nutzen zu können:
http://www.generationrobots.com/pob-...ine-Sensor.cfm
Zusätzlich ist ein Sharp drauf, den ich verwenden möchte. Der Bot verfolgt eine Linie, wenn ein Hindernis im Weg steht wird es von Sharp erkannt und der Bot bleibt stehen.
Das heißt es würde reichen wenn du einen Schwellenwert für z.B. 20cm) definierst?
Dann kannst du das doch einfach mit einem Komparator machen und den Pin nach einem High-Pegel abfragen.
Komparator? Damit habe ich noch keine Erfahrung. Der Komparator schaltet bei einer gewissen Spannung durch, oder?
Ein OPV als Komparator geschaltet verstärkt die Differenzspannung an beiden Eingängen.
Wenn die eine größer ist als die andere, verstärkt er die Differenz. Durch die hohe Verstärkung führt der Ausgang dann meistens Vcc.
http://www.elektronik-kompendium.de/...lt/0311261.htm
Das heißt an dem einen Pin kommt die Spannung die du als Schaltschwelle definiert hast und sobald der Sensor über diese Spannung kommt, liegt am Ausgang Vcc an.
Ich habe dieses Bildchen gegoogelt. Rechts schliesse ich die Signalleitung des Sensors an, und links geht es weiter zum GPIO - richtig?
Der - Eingang vom OPV wird mit dem analogen Ausgang des Sensors verbunden.
Der Ausgang vom OPV (rechts) wird mit dem GPIO des Pis verbunden.
Den Spannungsteiler dimensionierst du so, dass an dem Widerstand zwischen dem + Eingang und GND die Spannung abfällt, die der Sensor bei einer bestimmten Distanz ausgibt (z.B. 1V für eine Distanz von 20cm. Wenn du dann willst das der OPV bei etwa 1V schalten soll muss an dem Widerstand 1V abfallen).
OK, danke. Welches OPV ist das kleinste, das ich benützen kann - bzw. welches empfiehlst du mir?
Nein stop - geht das LM741? Welche Pins werden verwendet?
Für so einfache Anwendungen kannst du jeden OPV verwenden.
Ansonsten siehst du die Pinbelegung ja in dem Bild ;)
Pin 2 und 3 sind die Eingänge und 6 der Ausgang.
Hi Kampi,
kannst du mir einen Schaltplan machen, wie ich den Sensor und den Komparator aufbauen muss?
Wäre nett, danke
Ich habe nun eine Skizze angefertigt. Bitte um Kontrolle, ob das so passt.
Danke.
In der Skizze ist ein kleiner Fehler: Der Ausgang des Komperators ist NICHT Pin8, sondern Pin 6!
Hey,
hab es gestern schon gelesen, war aber zu kaputt um vernünftig nachdenken zu können.
Aber wenn du den OPV mit einer Spannung von 3,3V betreibst ist die Skizze so in Ordnung (von der Funktion her).
Die nächste Frage ist, wie groß ist die maximale Ausgangsspannung vom Sharp-Sensor?
danke kampi,
ich habe als maximale ausgangspannung des sharp sensors 3,1volt gemessen, daher meine überlegung den opv mit 3,3 volt zu betreiben. wenn ich das richtig verstanden habe, liegen am port 8 des opv beim durchschalten auch 3,3 volt an, richtig? zur regelung der vergleichspannung verwende ich einen poti.
Ja genau. Ohne Rückkopplung wird die Differenzspannung mit dem natürlichen Verstärkungsfaktor verstärkt. Die Grenze wird dabei durch die Betriebsspannung bestimmt.
prima, dann muss ich nur noch warten bis der ovp mit der post aus china eintrudelt. wegen des chin. neujahrsfestes hat das teil schon verspätung.
Statt des Komperators solltest du lieber einen Schmidt-Trigger verwenden. Der Aufwand ist nicht viel größer, aber deine Schaltung kann nicht oszillieren. Nebenbei kannst du dann eine untere und eine obere Schwelle definieren.
aha, und wie sieht die schaltung dann aus?
Es lebe Google oder ? http://de.wikipedia.org/wiki/Schmitt-Trigger
ok, danke. werde ich mir mal ansehen.
Hallo,
Bitte tu dir einen Gefallen und verwende nicht den Steinzeit-OpAmp 741. Bei der niedrigen Betriebsspannung und dem sehr beschränkten Ein- und Ausgangsspannungsbereich des 741 wird es hier definitiv Probleme geben :-k
Es gibt bessere OpAmps/Komparatoren, die auch nicht viel mehr kosten (LM(V)358, LM393, TS912, LMC6482, MCP6002) ;)
Grüße, Bernhard
Hallo,
nun habe ich die Schaltung aufgebaut. Wenn ich ohne GPIO die Schaltung mit einer LED teste, funktioniert sie:
http://www.youtube.com/watch?v=bv1BK...NUSUew&index=1
Wenn ich allerdings Pin6 des Komparators an den GPIO anschliesse und mit folgendem Programm teste, ist das Port immer high (TRUE)
Was stimmt nicht? Bitte um Hilfe.Code:import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(5,GPIO.IN)
while True:
print GPIO.input(5)
time.sleep(1)
Hey,
hast du vielleicht den I²C aktiviert?
Probier mal einen ganz normalen GPIO ohne Nebenfunktion wie den GPIO 17 (Pin 11).
Edit:
Das Raspberry verfügt an den I²C Pins über Pull-Up Widerstände. Daher ist der Pin immer High.
hi kampi,
also pullup wiederstände. kann ich die i2c pins nun nicht verwenden? oder gibt es einen weg?
Du könntest den Komparator invertieren...dann schaltet er nach GND und das kannst du dann erkennen.
Aber warum willst du den I²C für sowas banales "verschwenden". Ich persönlich würde mir den frei halten, falls ich noch GPIOs oder Sensoren benötige.
Und wie invertiere ich den Komparator? I2C muss ich leider verwenden, weil alle andernen GPIO Pins bereits belegt sind.
NPN Transistor könnte man nehmen. oder einen Inverter (TTL oder CMOS) würde auch gehen.
Danke für eure Tipps! Ich habe nun den Sharp Abstandssenor am GPIO Pin 26 angeschlossen und es funktioniert einwandfrei:
http://www.youtube.com/watch?v=FUu941Vz4rI
Yeah,
klasse :)
Sieht richtig gut aus.