Ich versuche, fünf Ultraschallsensoren (HC-SR04, um genau zu sein) an ein Arduino-Board anzuschließen, um Hindernisse in fünf Richtungen (vier Himmelsrichtungen + eine Z-Achse) zu erkennen. Ich habe auch das Datenblatt der HC-SR04s und des Arduino Uno gelesen und festgestellt, dass der Ultraschallsensor im aktiven Zustand 15 mA zieht und der Uno maximal 40 mA durch jeden Pin und insgesamt 200 mA von allen Pins liefern kann.
Da ich jetzt keine zehn PWM-E / A-Pins habe, dachte ich, dass ein Trigger-Pin ausreicht, da ich die Sensoren auf einmal auslösen werde. Die ECHO-Pins gehen für jedes Modul an einen separaten PWM-Pin.
Ich habe hier zwei Bedenken (ich bin nur ein Anfänger in der Elektronik :)):
Ich werde jeden Sensor über ein 5V/2A BEC mit Strom versorgen. Wird dies also zu einer Stromüberziehung von den Arduino PWM-Pins führen? Wenn ja, gibt es eine Problemumgehung? Vielleicht eine transistorgesteuerte Lösung? (Ich habe am College einen Grundkurs in Elektronik absolviert, hatte aber nie die Gelegenheit, selbst einen zu entwerfen.)
Die zweite Sorge betrifft mein Trigger-Pin-Design. Kann ein Stift fünf der Sensoren pulsieren, oder lässt der Stromabfall sie nicht feuern (da sie alle parallel sind)? Ich vermute, dass es nur die Spannung ist, die sie antreibt (Annahme) und parallel wäre alles gleich, also sollte es funktionieren, oder?
Ich habe mich umgesehen, aber ich habe nur Informationen zum Anschließen eines Sensors an den Arduino gefunden. Ich habe etwas über den Betrieb von Hochleistungsmotoren mit Arduino gelesen, indem ich den Strom über eine Batterie liefere, also denke ich, dass meine erste Sorge in Ordnung sein sollte? Aber ich bin mir nicht sicher, und deshalb dachte ich, ich frage hier. Danke!
Das Problem mit hobbybezogenen Lösungen ist, dass die Dokumentation begrenzt ist und nicht wie kommerzielle Komponenten oder Module spezifiziert ist.
Es ist möglich, dass es funktioniert, aber erstellen Sie ein Blockschaltbild und konsultieren Sie den OEM. Wohlgemerkt, ich weiß nicht, ob sie eine angemessene Unterstützung für Ihre Frage haben, da diese in China gebaut werden.
Hobby Services 3002 N. Apollo Dr. Suite 1 Champaign, IL 61822 (217) 398-0007 E-Mail: hobbyservices@hobbico.com Internetadresse: www.supertigre.com
Es scheint, dass Ihre Ultraschalllast TTL ist, sodass es kein Problem gibt, 5 gleichzeitig mit einem BEC zu schalten, aber ich frage mich, ob Sie die Auswirkungen des Übersprechens auf das gleichzeitige Feuern berücksichtigt haben. Sie geben einen Erkennungswinkel von 15 Grad an, dies hängt jedoch vom Reflexionswinkel der Objekte ab, die Sie erkennen möchten. Es kann zu Phasenproblemen mit Reflexionsauslöschungen kommen, z. B. wenn 5 Hochtöner in einem Raum ausgerichtet sind. Das Lesen der Antwort jedes Echos parallel zu einer Zeitintervallzählung wird bei nicht glatten Objekten mit 5 Sendern kein einfaches Lehrbuchergebnis sein.
Sie können Ihr orthogonales Array-Design mit einem beliebigen Signalimpulsgenerator testen und das Signal auf einem Parallelport-Logikanalysator oder Oszilloskop betrachten, um sicherzustellen, dass Ihr Design funktioniert.
Power Drive ist das geringste Ihrer Bedenken bei diesen Low-Power-Geräten. Die Vermeidung von Rauschen durch leitungsgebundene und abgestrahlte Quellen wird von größter Bedeutung sein, und das Design des Transponder-Arrays muss an erster Stelle stehen. Ich würde einige Zeit damit verbringen, diesen ersten Teil zu testen, um alle elektrischen, physikalischen, akustischen, EMI-, thermischen und Vibrationsquellen zu identifizieren, sowohl leitungsgebundene als auch abgestrahlte Interferenzquellen und wie sich jede auf Ihre SONAR-Erwartungen mit verschiedenen Objekten auswirkt. Wird es mikrofonisch mit Vibration oder lauten Pulsgeräuschen sein. Wie gut unterdrückt es andere Ultraschall-Rauschquellen? Ändert sich die Impulsbreite des TTL-Echoausgangs mit der Signalstärke oder nur mit der Verzögerungszeit?
Erhalten Sie aufgrund von Eckenreflexionseffekten Echos vom falschen Absender?
Mir ist klar, dass dies ein bisschen wie ein alter Thread ist, aber ... Ich habe ein paar davon, und das Problem ist, dass Sie zum "Lesen" des Ergebnisses ein pulseIn verwenden, das den Arduino "bindet". die Zeit des Echos.
Also müssen Sie zuerst ein Timeout auf pulseIn setzen, wie unsigned long pulse_length = pulseIn( iEchoPin , HIGH , 9000 ) ; wobei 9000 9000 Mikrosekunden oder 9 Millisekunden sind, was ungefähr 150 cm oder 5 Fuß entspricht (Schallgeschwindigkeit, zweimalige Wegstrecke, viel Mathematik). Der Grund für ein Timeout ist, dass das Standard-Timeout eine volle Sekunde ist, sodass Sie 1.000 Millisekunden oder 1.000.000 Mikrosekunden auf ein Ergebnis warten könnten (und 0 zurückerhalten, weil es abgelaufen ist). Also habe ich 9000 us eingegeben, das gibt mir 150 cm, was für die Hindernisortung ausreicht.
Und zweitens kann ich nicht herausfinden, wie ich beide Sensoren gleichzeitig lesen kann, da mein Arduino nur jeweils einen Impuls ausführt und das Echo vom 2. Sensor bis dahin bereits zurückgekehrt ist.
Und drittens muss man auf eventuelle "sekundäre" Echos eine gewisse Zeit warten, im Datenblatt stehen 60ms, mit 40ms habe ich gute Erfolge erzielt. Aber wenn ich 2 davon habe, muss ich 40 ms warten, bevor ich den 2. abfeuere, oder es gibt falsche Echos vom ersten (sie sind ungefähr 30 Grad voneinander entfernt).
Der Grund, warum ich hier gesucht habe, ist, dass ich wissen wollte, ob ich denselben Echo-Pin für mehrere SR04-Sensoren (oder auch mehrere IR-Abstandssensoren) verwenden könnte. Wenn ich 1 SR04 triggere und dann den "kombinierten" Echo-Pin lese, brauche ich nur 1 Pin, um eine beliebige Anzahl von Sensoren zu lesen, aber 1 Pin, um jeden auszulösen.
Die andere Möglichkeit besteht darin, den Pin auf Ausgang zu ändern, den Trigger zu senden, ihn dann auf Eingang zu ändern und den PulseIn auszuführen und denselben Draht sowohl zu den Trigger- als auch zu den Echo-Pins auf der SR04-Platine zu führen. Beides werde ich ausprobieren. Wollte aber mal nachfragen, ob das schon mal jemand gemacht hat.
pjc50
mohdjas
pjc50
mohdjas
Benutzer18480