Ultraschallsensoren funktionieren nur mit USB

Damit hast du natürlich recht. Das war ein Fehler im Schaltplan. Hab jetzt den Sketch dem Schaltplan angepasst.

Hab jetzt 12V angeschlossen und im seriellen Monitor nachgeschaut mit folgendem Ergebnis:

  • Der Nano stürzt nicht ab.
  • Die Ausgaben sind exakt dieselben wie mit USB-Anschluss, d.h. die Sensoren messen den Abstand richtig, es werden die richtigen Modi aufgerufen.
  • Die berechnete Motor-Geschwindigkeit ist richtig, aber der Motor läuft mit maximaler Geschwindigkeit weiter, obwohl das Programm im Modus "SLOWDOWN" ist.
  • Nachdem das Programm im Modus "STOP" war und in den Modus "ACCELERATE geht, wechselt die Drehrichtung des Motors und er dreht mit maximaler Geschwindigkeit. Die Sensoren messen den richtigen Abstand.

Jetzt bin ich total verwirrt.

Dann solltest du dir die Anweisungen zeigen lassen, die der Nano an den Motortreiber gibt. Da steckt vermutlich der Fehler.

kannst du mal ein Foto von der Schaltung machen? Und wenn es möglich ist einfach mal 2Leds an den Motortreiber und mit Hand die Seilbahn bewegen, dann siehste ja auch ob die heller oder dunkler leuchten.

Ich denke auch, daß bei der Ansteuerung der Motorbrücke per PWM etwas nicht stimmt.
Du gibst die errechnete currentMotorSpeed als float-Variable auf die Brücke, obwohl hier nur Werte zwischen 0 und 255 zum richtigen Ergebnis führen...

Der Formel calculateSpeed kann ich leider auch nicht so recht folgen - außer, daß sie erstmal negative Werte produziert, wenn currentDistance kleiner als STOP_DISTANCE wird, aber vielleicht hängt deshalb die max-Funktion dahinter...

Bei unserer Bahn habe ich ebenfalls Punkte definiert; zum Abbremsen, zum Einfahren mit Minimalgeschwindigkeit und die Haltepunkte logischerweise.
Dazwischen wird per Parabel/Hyperbelfuntion beschleunigt, bzw abgebremst...
Bei Minimalgeschwindigkeit dreht der Motor bei uns übrigens unterschiedlich schnell in den Drehrichtungen (bei gleichem PWM-Wert) , was bei kleinen Werten sichtbar wird.
Im Betrieb im Freien hatte ich sichere Ultraschallmessungen erst so ab 40 cm für die von unten kommenden kleinen Kabinen. Der Abbremsweg war uns zu kurz und so habe ich per Hallsensor am Seilrad Impulse über die ganze Länge (70m) abgegriffen und kann meinen Abbremspunkt definieren, lange bevor die Ultrasschallsensoren die Bahn kommen "hören"...

Hallo,
Mach doch Mal das was ich in #26 geschrieben habe , damit du die Hardware prüfen kannst
Heinz

Hat es schon jemand gesagt?

Auch gut, dann eben doppelt....
:japanese_ogre:

Hier gibts einen Überlauf, welcher nicht kompensiert wird.

@bastelboy
Da hast du recht, currentMotorspeed sollte int sein. Und richtig "max" verhindert negative Werte. Die aktuellen Entfernungen und Geschwindigkeiten sind zunächst aus der Luft gegriffen, also keine im praktischen Betrieb erprobten, sondern nur zum Testen.

@HotSystems
Wie kann ich mir die Anweisungen zeigen lassen? Die Werte, die in das analogWrite reingehen, hab ich ausgegeben und die sind richtig.

@kaesebaum
Foto mach ich lieber nicht, bevor eds wieder jemand übel wird hier. Is noch n bisschen unordentlich alles bei mir, weil ich grad aus dem Krankenhaus komme.

@combie
Überlauf ist mir klar, dauert aber. Und z.Zt. will ichs zuerst mal prizipiell zum Laufen kriegen.
Hab den Motor getrennt und ne LED an PWM angeschlossen - funktioniert. Habs auch mit Multimeter gemessen. Wenn ich den PWM für den Motor (am Nano, ohne angeschlossenen Motor) messe, bleibt der immer auf maximal.

Und mit USB läuft es immer noch!?

du kannst leds an Pin 9,10,11 hängen(Vorwiderstand nicht vergessen!!!) oder ein oszi

In analogWrite geht kein Wert rein, sondern da schreibst du einen Wert auf das angeschlossene Bauteil.
Wenn diese Werte korrekt sind, ist was anderes Faul.
Vermutlich dann deine Verdrahtung.

Ich danke dir für den Anstoß!
(für die Anregung)

Genau das Problemchen habe ich mal zum Anlass genommen einen Bericht zu dem Problemkomplex zu verfassen. Einen wo man schön auf Bildchen sehen kann, wo der Hase im Pfeffer liegt.
Natürlich incl. dem richtigen Prinzip.

Für PWM Werte von 0-255 langt eigentlich schon der Datentyp Byte...
Wenn man aber fiktive Werte und Formeln nurso einsetzt, braucht man sich nicht wundern, wenn die Motorbrücke sich "eigenartig" verhält.
Was hindert eigentlich daran, in den Cases mit festen PWM Werten erstmal auszuprobieren, ob die Bahn überhaupt alles richtig durchfährt und die Ultraschallsensoren sie dabei richtig erfassen ?
Wenn das läuft, liefern die Sensoren beim Abbremsen ja fast proportionale Werte zur gewünschten Geschwindigkeit in cm.
Da muß man keine hochkomplizierten Rechnungen ausführen.
Das dabei in der Praxis immernoch gewisse Effekte auftreten und die Sensoren eben nicht zu 100% immer den gewünschten Wert liefern, wirst du dann auch noch sehn.
Die Motorbrücke testen kann man auch mit simplen hoch- und runterlaufen lassen der PWM-Werte. Danach kann man einschätzen, ob die Hardware wirklich rumzickt oder der Programmierer noch mal ran muß...

Eine Frage habe ich noch zu deinem Aufbau:

Was für ein 12Volt Netzteil verwendest du für des Projekt ?
Kannst du es bitte mal genau beschreiben, oder das Typenschild als Foto posten.

@HotSystems


Und entschuldige, dass ich in Fachsprech bzw. -schreib verfallen bin. "analogwrite" ist zunächst eine Routine mit Parametern, in die Werte reingehen. Und die Routine tut dann irgendwas.

@bastelboy
Ja, das Programm ist noch nicht ganz sauber. Die Sensoren liefern richtige Werte, hab ich im Monitor geprüft. Und mit USB funktioniert ja auch alles - Sensoren und Motorsteuerung.

Also wirds doch irgendwie an meiner Schaltung liegen. Ich werd die mal übers Wochenden komplett neu aufbauen. Heut wird das nix mehr.

Das verstehe ich jetzt nicht.
AnalogWrite ist eine Anweisung, die dem Arduino mitteilt, er möchte einen bestimmten Wert am analogen Pin ausgeben. Was soll er da bei dir anders machen.
In deinem Sketch kann ich da nichts anderes erkennen.

Und ja, dein Netzteil ist Ok und sollte nicht das Problem sein.

Wenn die Bahn am USB-Anschluss so gut funktioniert und du in deinem Netzteil eh noch 5V quasi übrig hast, dann speise doch den Nano damit nebst Motorplatine - aber nehm die Brücke raus, die den 5V Regler der Brückenschaltung speist...

@bastelboy
Hab ich natürlich auch schon probiert und jetzt noch mal neu - selbes Ergebnis wie gonz oben beschrieben.

Einige haben schon geschrieben, dass wohl mit dem POWM-Anschluss was nicht stimmt. das hab ich ich mir auch schon gedacht - nachdem laut Monitor die Sensoren richtig arbeiten. Aber was?

Wenn ich ein USB-Netzteil mit normalem USB-Kabel anschließe funktionierts. Könnte ich u.U. verwenden, ist aber nicht optimal: Ich ein zusätzliches Kabel verlegen und ein zusätzliches USB-Netzteil verwenden.

Die 5V vom vorhanden 5V/12V Netzteil hab ich über einen USB-Steckverbinder mit Schraubanschluss (z.B. https://www.voelkner.de/products/1068743/TRU-COMPONENTS-USB-Steckverbinder-mit-Schraubanschluss-Stecker-gerade-MN-USB4M-Mini-USB-Stecker-Typ-B-1572337-Inhalt-1St..html?ref=43&utm_source=google&utm_medium=organic&utm_campaign=fpla&gclid=EAIaIQobChMIic6G2KeQ8wIVTuJ3Ch3g2wY1EAQYAyABEgJHd_D_BwE), wobei ich nur +5V und Gnd verbinde und die beiden Datenleitungen leer lasse, angeschlossen -> funktioniert nicht. Kann das an den nicht verbundenen Datenleitungen liegen? Und wenn ja, was soll ich da anschließen?

Stopp mal beim anschließen und einschalten leuchtet die Power LED am NANO? wenn nicht braucht dein Netzteil kleine Last auf dem 5V Ausgang

LED leuchtet.

Testen ob überall die 5V ankommt direkt an den Modulen,den nach deiner Zeichnung muss funktionieren