Einstieg in Arduino

Gast #2727140
Hallo,

ich muss zugeben, dass ich noch nie einen Mikrocontroller programmiert 
habe, da ich aber Arduino ganz interessant finde, wollte ich mir einen 
bestellen und ein wenig experimentieren. Habe mich dazu in letzter Zeit 
ein wenig eingelesen, es ist allerdings eine Frage offen geblieben: Ich 
habe eine konkrete "Projekt"-Idee, allerdings weiß ich nicht, ob ein 
Arduino dafür geeignet ist.

Meine Projekt-Idee sieht so aus:

Es gibt ein Fahrzeug aus Lego, das von einem Motor angetrieben wird. Die 
Lenkung wird von einem Servo gesteuert. Auf dem Fahrzeug ist ein 
weiterer Servo montiert, an dem ein Ultraschallsensor montiert ist. Zur 
Vereinfachung wollte ich das ganze erstmal mit der Kabelverbindung über 
USB steuern. Der Ultraschallsensor soll sich um 180° drehen und dann 
wenden um 180°, dann wieder wenden, sich also auf einem Halbkreis 
bewegen. Die Messung des Ultraschallsensors soll alle 2° an den PC 
gesendet werden.

Ich kann C/C++ und Java recht gut, allerdings bleibt eine Frage offen:

Die Arduinos haben ja nur einen Thread, wie kann ich dann gewährleisten, 
dass sich der Servo kontinuierlich dreht und die Ultraschallsensordaten 
ausgelesen und gesendet werden, WÄHREND das Fahrzeug bewegt wird?

Wenn ich zum Beispiel das Signal sende, "Fahre für 5 Sekunden vorwärts", 
dann kann in diesen 5 Sekunden eigentlich ja nicht der Servo bewegt 
werden, weil der Code für "Fahre für X Sekunden vorwärts" noch 
abgearbeitet wird (zum Beispiel in einer Schleife). Danach wird der 
Servo dann wieder angesteuert.

Wenn ich die Zeit für "Fahre X Sekunden vorwärts" aber zum Beispiel auf 
0.1 Sekunden reduziere und diesen Befehl mehrfach sende, dann könnte der 
Mikrocontroller ja die restlichen Befehle abarbeiten, zum Beispiel 2° 
weiter drehen, Daten lesen und senden und dann anschließend prüfen, ob 
ein neuer Fahrbefehl vorliegt.

Könntet Ihr bitte bewerten, ob das so möglich ist oder ob es noch andere 
Möglichkeiten für die Lösung meines Problemes gibt? Eine Lösung wäre es 
ja zum Beispiel einen zweiten Arduino zu besorgen ... ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.