INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
tempo Digital Port
03.05.2016, 19:14
Beitrag #1
tempo Digital Port
Hallo Freunde



Wie flink ist denn ein Arduino am Digitalport ?

Zunächst muss ein ein einzelner Impuls ("Sender")von 25 µs (Mikrosekunde) erfasst werden.
Ist dies überhaupt möglich ?

Dann müsste nach Ablauf einer Zeit zwischen 8 und 65 ms (millisekunde) ein Port als Ausgang geschaltet werden. ("Echo")

Der zeitliche Abstand zwischen Sender und Echo dient der Übertragung eines Analog-Wertes.
Die Auswert-Technik ist Maschinen-seitig vorhanden, doch leider nicht auf eine andere Übertragung umrüstbar. (0..5V/0..10V z.B.)


Ziel des Ganzen:
Austausch eines 300 Euro teuren Ultraschall-Abstandssensors gegen Arduino-Technik.

Hier der aktuell verbaute Sensor:
http://www.microsonic.de/DWD/_111327/pdf...ic_wms.pdf

Für Gehäuse, Spannungsanpassung und Treiberschaltungen gibt es ganz sicher Mittel und Wege, aber ich fürchte, der Arduino ist für den Zweck dann doch etwas zu lahm Smile

Wie sind Eure Meinungen ?
Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.05.2016, 10:33
Beitrag #2
RE: tempo Digital Port
Hallo,
die 25µs werden nicht das Problem sein.
ganz kleine Sekunde
Innerhalb von 57ms einen Port schalten und einen Wert senden auch nicht.

Mit was für einer Spannung wird denn der 25µs-Impuls geliefert?

Das zweite- Das einzige was hier lahm sein wird ist Dein Sketch. Du mußt
diese Zeitkritische Sache auch zeitkritisch programmieren- da sehe ich das
Problem.

Du solltest Dir einmal die Datenblätter der verwendeten Chips zu Gemüte ziehen.
ganz große Arduino-Chips
Ich sehe da eigentlich kein Problem.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.05.2016, 11:14
Beitrag #3
RE: tempo Digital Port
Hi,
schon versucht einfach diesen US-Sensor anzuschließen ? ggf. mußte die Signale invertieren...
Aber der US arbeitet mit einem Start und einem Stop-Signal auf getrennten Leitungen.
Oder Gretchenfrage...wie und oder woher soll der Arduino bei deiner Frage wissen welchen Wert in Form der Zeitverzögerung = Schall-Laufzeit er simulieren soll ?
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.05.2016, 17:33
Beitrag #4
RE: tempo Digital Port
Ich sehe schon, da muss ich weiter ausholen.

Der Sensor ist an einer Feldspritze verbaut, genau genommen 2 Stück (rechts und links)
So wird der Abstand zwischen Düsenbalken und Pflanzen gemessen und immer optimal auf 50 cm elektrohydraulisch geregelt.
Das Ganze läuft über einen Jobrechner an der Spritze, den ich nicht modifizieren kann und will, weil der noch ganz andere Aufgaben löst und sündhaft teuer ist.

2 Nachteile der Technik:
A: Die Sensoren kosten 300 Euro/Stück plus Steuer und sind außen am Gestänge verbaut, so das die gern mal an Ästen bei Straßenfahrt hängen bleiben.
B. Die Sensoren reflektieren an den Pflanzen, so ist es auch gedacht.
Sind aber im Bestand Lücken, dort wo ein Sensor misst, wird der Abstand bis zu 130 größer.
Entsprechend senkt sich das Gestänge ab.
Im Extremfall fährt dann das halbe Gestänge DURCH den Bestand und von optimaler Spritzung kann keine Rede mehr sein.
Deshalb müssten schon mehrere Sensoren montiert werden und Lücken ignoriert.

Der von Biklopfer vorgeschalgene Sensor ist mir durchaus geläufig, allerdings arbeitet der anders, als der aktuell verbaute.
aktuell: Jedes Echo wird als peak auf den Ausgang gelegt. - Auswertung im Jobrechner
Arduino-US-Sensor: Es wird die Laufzeit gemessen, und ein Signal mit entsprechender Länge auf den Ausgang gelegt.


Daher die Idee:
Einbau einer Blackbox mit Arduino.
An diesem dann 4-6 US Sensoren anschliessen, die am Gestänge alle 100 cm meinetwegen verbaut sind.

Vorgehensweise:

Nacheinander den Abstand messen lassen.
Kürzesten Wert verwenden, damit sind Bestandslücken automatisch "out of order".

Den Wert in eine Zeitvariable umrechnen (global deklariert INT).

Sendet der Jobrechner einen "Sender" Befehl (erfolgt etwa alle 100 bis 300 ms, man kann quasi mitzählen), löst dies einen Interrupt aus.
Im Interrupt dann einfach ein delay() mit der Zeitvariable und danach einen Peak auf den Ausgang bevor die Interrupt verlassen wird.

Zurück im Loop sucht der Arduino dann weiter nach dem kürzesten Abstand.

Welche Spannungen anliegen, weis ich nicht, hab noch nicht gemessen.
Welche Schaltsignale erzeugt werden müssen, weis ich auch noch nicht.

Fakt ist: alles wird unter 12 Volt liegen, vermutlich bei 5V.
Anschluss des aktuellen Sensor: 4 pol AMP Stecker.

Mir ging es hier erstmal nur darum, ob der Arduino flott genug ist, für so einen "Job".

Besten Dank
Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.05.2016, 20:19
Beitrag #5
RE: tempo Digital Port
Hallo Binatone,
Nur mal als Hinweis ohne weiter im Thema drin zu sein:
Zitat:Im Interrupt dann einfach ein delay() mit der Zeitvariable und danach einen Peak auf den Ausgang bevor die Interrupt verlassen wird.
das wird nicht funktionieren Huh
Innerhalb von Interruptroutinen bzw. während deren Laufzeit sind delay() und millis() nicht nutzbar.
delaymicroseconds() läuft wohl, hat jedoch eine Beschränkung auf rund 16.000 Mikrosekunden!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.05.2016, 15:57
Beitrag #6
RE: tempo Digital Port
(04.05.2016 20:19)rkuehle schrieb:  (...)
das wird nicht funktionieren Huh
Innerhalb von Interruptroutinen bzw. während deren Laufzeit sind delay() und millis() nicht nutzbar.
delaymicroseconds() läuft wohl, hat jedoch eine Beschränkung auf rund 16.000 Mikrosekunden!

Grüße Ricardo


Upps... das wusste ich nicht

Ok, aber man kanns ja auch anders lösen...

Letztendlich kommt wie gesagt im etwa 5-20 Hz Takt ein Signal vom Computer an den Sensor, welches ich ebenso mit dem Arduino erfassen kann, z.B. mit einem Optokoppler.

Dann muss der Arduino über einen Open Kollektor einen anderen Kontakt schalten.

In der übrigen Zeit, dürfte der Arduino genug Zeit haben, die angeschlossenen US Sensoren auszuwerten und den kürzesten Weg in eine Laufzeit von x Microsekunden umzurechnen.
Über Interrupt könnte man ja eine Bollsche Variable setzen, und das übrige Programm fragt permanent ob True oder False.
Bei True wird halt nur für ne saubere "Antwort" gearbeitet und bei False werden die US-Sensoren abgefragt.

Wichtig ist nur, das der Arduino flott genug ist um Laufzeitunterschiede kleiner 3 cm sauber an den Jobrechner zu geben.

Und eben da hab ich meine Sorge.

Um das Signal mit einer Auflösung von 10 cm z.B. zu liefern, müsste ich laut meiner Rechnung im Bereich von 300 Microsekunden präzise einen Port ansteuern.
Bei 1 cm Auflösung muss ich in Schritten von 30 Microsekunden arbeiten

Oder anders ausgedrückt:
Schwankt der Ausgang mit seinen Peaks nur um 0,5 Millisekunden, hab ich etwa 17cm "Höhenschlag"

Darum ja die Frage, wie präzise man den Arduino schalten lassen kann.
Dazu kommt die Elektronik hinter dem Digitalport.
Etwas verzögern wird jedes elektronische Bauteil.
Gut, das wird vermutlich nur im Microsekunden-Bereich liegen...
aber so kommt eins zum anderen...

ich glaub, ich lass das Ganze lieber ruhen Big Grin

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.05.2016, 17:37
Beitrag #7
RE: tempo Digital Port
(06.05.2016 15:57)Binatone schrieb:  .....

ich glaub, ich lass das Ganze lieber ruhen Big Grin

Binatone

Hallo,
habe das nun auch mitverfolgt.
Von daher kristallisiert sich für mich folgende Erkenntnis heraus:
* Wie sehen denn die Ersatz US-Sensoren vom Interface her aus weil z.B. diese Arduino HC-04 sind ja nicht Outdoortauglich.
* Bei den kurzen Zeiten dann noch per uP ein Signal zu erzeugen das sehr fein auflöst ist eine absolute Herausforderung. Möglich das es geht...aber dann wohl nur per Programmierung in Assembler.

Insgesamt gesehen würde ich neue US-Sensoren per Hardwareschaltung dazu aufrüsten das sie das gewünschte Signaling liefern. Zum Glück sind die Laufzeiten vom Schall immer gleich womit sich die eigentlich Messzeit ansich auch gleich sein dürfte.
Immerhin eine interessante Aufgabenstellung.

lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Uno gehen zwei digital Pins nicht edlosijagen 15 588 07.07.2016 19:22
Letzter Beitrag: Bitklopfer
  COM Port bricht ständig weg GMBU 6 508 22.03.2016 11:49
Letzter Beitrag: hotsystems
  Bootloader/Port/Programmer Problem mit altem Diecimila HaWe 7 1.208 29.07.2015 13:10
Letzter Beitrag: HaWe
  digital zwischen zwei boards luto92 10 1.184 10.02.2015 11:01
Letzter Beitrag: Thorsten Pferdekämper
  USB-Port-Problem beim Nano Stefan 17 3.497 06.10.2014 20:34
Letzter Beitrag: Bitklopfer
  Zwei Analog-Digital-Konverter über SPI selektieren u. auswerten Vilius 5 1.845 25.06.2014 14:44
Letzter Beitrag: Vilius
Photo Com Port weg oder Gerät defekt- Hilfe coolbanny 11 4.899 27.03.2014 19:34
Letzter Beitrag: burgi650
  Erdschluss, USB Port Arduino Uno Germel 4 4.140 19.07.2013 20:10
Letzter Beitrag: Bitklopfer
Question Digital-In mit 16v chasperli 1 1.588 17.04.2013 11:02
Letzter Beitrag: Talim

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste