Seite 1 von 2

Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 22 Jul 2018, 10:52
von FischRob
Hallo,

ich möchte einen Ultraschall-Sensor 133009 mit ftDuino ansteuern. Die Kabel sind rot bei 9V - grün bei C1 und rot(schwarzes Kabel) bei C2.
Wo finde ich hierzu ein Beispiel ???
Wer kann mir eien Sketch zusenden ???

Vielen Dank

FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 22 Jul 2018, 11:49
von robbi2011
Eigentlich musst Du den Sensor anders anschließen:
Rot->9V
Grün->Masse
Schwarz->I-Eingang

Vielleicht geht es dann?

Die C-Eingänge sind die schnellen Zähleingänge, eigentlich kommen da nur die Encodermotoren oder Encoder im Selbstbau (mit Tastern) dran.

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 22 Jul 2018, 14:10
von MasterOfGizmo
Die Frage geht um den ftDuino. Dort schließt man den US-Sensor anders an als beim TXT.

Ein Verdrahtungsschema zum US-Sensor findet sich auf Seite 15 der Anleitung. Die Funktion zum Abfragen ist auf Seite 113 in Abschnitt 8.2.16 beschrieben.

Und in der Tat ist kein Beispiel dabei. Das liefere ich demnächst nach. Bis dahin hilft Dir ggf. das folgende Beispiel, das 1 mal pro Sekunde den gemessenen Wert über USB ausgibt:

Code: Alles auswählen

#include <Ftduino.h>

void setup(void) {
  Serial.begin(115200);
  while(!Serial);         // warte auf USB-Verbindung zu PC
  
  ftduino.init();
  ftduino.ultrasonic_enable(Ftduino::ON);
}

void loop(void) {
  int16_t distance = ftduino.ultrasonic_get();
  String dist_str = String(distance) +"cm";
  if(distance < 0)           dist_str = "...";  // kein gueltiger Werte
  else if(distance == 1023)  dist_str = ">10m"; // maximale Distanz erreicht

  Serial.println("Distance: " + dist_str);
  delay(1000);
}

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 22 Jul 2018, 14:42
von FischRob
Hallo,

vielen Dank! Das Beispiel funktioniert. Allerdings nur wenn 9V Spannung anliegt - es ist ja eigentlich ein Eingang und kein Ausgang.
Zu der Beschreibung vom ftDuino habe ich wahrscheinlich noch eine Alte vom 21.05.2018. Meine geht nur bis Seite 99. Ich habe versucht die deutsche Anleitung gemäß link runterzuladen - funktioniert leider nicht.
Woher bekomme ich die neue Beschreibung?

Nochmals vielen Dank der US-Sensor funktioniert.

Gruß

FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 22 Jul 2018, 16:22
von MasterOfGizmo
FischRob hat geschrieben:Allerdings nur wenn 9V Spannung anliegt - es ist ja eigentlich ein Eingang und kein Ausgang.
Ist es auch. Aber wenn der Sensor nunmal 9V haben will kann ich da leider wenig dran ändern. Die Eingänge des ftDuino gehen auch ohne die 9V.
FischRob hat geschrieben: Anleitung gemäß link runterzuladen - funktioniert leider nicht.
Bei mir geht der Link. Was genau meinst Du denn mit "funktioniert leider nicht"?

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 22 Jul 2018, 16:33
von FischRob
Wenn Ich auf den link drücke füe deutsche Version - habe ich keine Reaktion.
der link : Hier geht es zur deutschsprachigen Anleitung.

Gruß FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 22 Jul 2018, 17:35
von EstherM
FischRob hat geschrieben:Wenn Ich auf den link drücke füe deutsche Version - habe ich keine Reaktion.
der link : Hier geht es zur deutschsprachigen Anleitung.

Gruß FischRob
Es gibt keine Reaktion, aber das Dokument wird trotzdem heruntergeladen. So ist es jedenfalls bei mir.
Gruß
Esther

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 22 Jul 2018, 17:53
von FischRob
Hallo,
Du hast recht ist bei mir jetzt auch gegangen.

Vielen Dank

FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 28 Jul 2018, 17:59
von FischRob
Hallo,
ich kämpfe jetzt schon eine Weile an diesem Sketch

#include <Ftduino.h>

void setup(void) {


ftduino.init();
ftduino.ultrasonic_enable(true);
Serial.begin(115200);
}

void loop(void) {

int16_t distance = ftduino.ultrasonic_get();
String dist_str = String(distance) + "cm";


if(distance <= 8) ftduino.output_set(Ftduino::O7, Ftduino::HI::MAX);

delay(500);

else

ftduino.output_set(Ftduino::O8, Ftduino::HI::MAX);

Serial.println("Distance: " + dist_str);
delay(500);
ich bekomme immer die Fehlermeldung "else without if"
Was mache ich falsch

Gruß
FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 28 Jul 2018, 18:08
von davidrpf
Das liegt daran, dass du geschweifte Klammern nur sehr sparsam verwendest: Für den Compiler (genauso wie für mich) ist es daher nicht nachvollziehbar, wie lange die Anweisungsblöcke von if- bzw. else reichen:

if(distance <= 8)
{
ftduino.output_set(Ftduino::O7, Ftduino::HI::MAX);

delay(500);
}

else
{
ftduino.output_set(Ftduino::O8, Ftduino::HI::MAX);

Serial.println("Distance: " + dist_str);
delay(500);
}

Ich schätze mal, dass der Programmcode so gemeint war, oder?

Gruß,
David

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 28 Jul 2018, 18:16
von Cymbaline
FischRob hat geschrieben:Hallo,
ich kämpfe jetzt schon eine Weile an diesem Sketch

#include <Ftduino.h>

void setup(void) {


ftduino.init();
ftduino.ultrasonic_enable(true);
Serial.begin(115200);
}

void loop(void) {

int16_t distance = ftduino.ultrasonic_get();
String dist_str = String(distance) + "cm";


if(distance <= 8) ftduino.output_set(Ftduino::O7, Ftduino::HI::MAX);

delay(500);

else

ftduino.output_set(Ftduino::O8, Ftduino::HI::MAX);

Serial.println("Distance: " + dist_str);
delay(500);
ich bekomme immer die Fehlermeldung "else without if"
Was mache ich falsch

Gruß
FischRob
Hallo,

Du hast nur ein Statement im 'if' (ftduino.outputset), danach ein 'delay' und dann ein 'else'.
Wenn das 'delay' auch unter 'if' gehört sollst du etwas wie folgendes nutzen:

Code: Alles auswählen

if(condition)  {    <----- 
   statement1;
   statement2;}  <----
else
  statement3;
[edit:] Ah, davidrpf war schneller...

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 28 Jul 2018, 18:17
von FischRob
Hallo,

vielen Dank für Deine Nachricht. Leider bekomme ich trotz Deiner geschweiften Klammern die gleiche Fehlermeldung.

Was mach ich falsch ???

Gruß
FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 28 Jul 2018, 18:23
von davidrpf
Ich hab nicht genau genug hingeschaut: Ganz am Ende fehlt noch eine geschweifte Klammer, die den loop schließt. Jetzt sollte alles passen.

Gruß,
David

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 28 Jul 2018, 18:42
von FischRob
Hallo,
der if -else Fehler ist jetzt weg. Nun bekomme ich den Fehler:

"exit status 1
Fehler beim Kompilieren für das Board ftDuino"

Hat jemand eine Idee ??

Gruß FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 28 Jul 2018, 20:22
von MasterOfGizmo
Das ist keine vollständige Fehlermeldung. Da müsste noch einiges davor stehen.

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 29 Jul 2018, 11:27
von FischRob
Hier die koplette Fehlermeldung:

n file included from d:\Users\WMuel\Documents\Arduino\Arduino_Programme\FTDuinoUltraschll_2\FTDuinoUltraschll_2.ino:4:0:

d:\Users\WMuel\Documents\Arduino\Arduino_Programme\FTDuinoUltraschll_2\FTDuinoUltraschll_2.ino: In function 'void loop()':

C:\Users\WMuel\AppData\Local\Arduino15\packages\ftduino\hardware\avr\0.0.8\libraries\Ftduino/Ftduino.h:195:24: error: 'Ftduino::HI' is not a class, namespace, or enumeration

#define HI Ftduino::HI

^

d:\Users\WMuel\Documents\Arduino\Arduino_Programme\FTDuinoUltraschll_2\FTDuinoUltraschll_2.ino:19:66: note: in expansion of macro 'HI'

if(distance <= 8) { ftduino.output_set(Ftduino::O7, Ftduino::HI::MAX);

^

C:\Users\WMuel\AppData\Local\Arduino15\packages\ftduino\hardware\avr\0.0.8\libraries\Ftduino/Ftduino.h:195:24: error: 'Ftduino::HI' is not a class, namespace, or enumeration

#define HI Ftduino::HI

^

d:\Users\WMuel\Documents\Arduino\Arduino_Programme\FTDuinoUltraschll_2\FTDuinoUltraschll_2.ino:25:48: note: in expansion of macro 'HI'

ftduino.output_set(Ftduino::O8, Ftduino::HI::MAX);

^

exit status 1
Fehler beim Kompilieren für das Board ftDuino.
Was läuft da schief ???

Gruß
FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 29 Jul 2018, 12:51
von MasterOfGizmo
Da wir Dein Programm nicht kennen können wir nur raten. Ich nehme an, dass Du die #include <Ftduino.h>-Zeile nicht am Anfang Deines Programmes sondern irgendwo nach der Void loop()-Zeile hast. Ist aber schwer zu erraten ohne das Programm zu sehen.

Generell klingt das, als würdest Du einfach irgendwelche Befehle hintereinander schreiben und dann nicht weiter kommen. Folge doch erstmal dem 'Programmieren'-Kapitel aus der Anleitung. Es ist immer hilfreich mit was funktionierendem zu starten. Dann merkt man genau, in welchem Schritt Fehler auftauchen und man geht einfach einen Schritt zurück und denkt nochmal drüber nach.

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 29 Jul 2018, 14:39
von FischRob
Hallo,

hier nochmal die letzte Version meines Programmes:



#include <Ftduino.h>

void setup(void) {

Serial.begin(115200);
ftduino.init();
ftduino.ultrasonic_enable(true);
delay(1000);
}

void loop(void){

int16_t distance = ftduino.ultrasonic_get();
String dist_str = String(distance) + "cm";

if(distance <= 8) { ftduino.output_set(Ftduino::O7, Ftduino::HI::MAX);

delay(500);
}
else

ftduino.output_set(Ftduino::O8, Ftduino::HI::MAX);

Serial.println("Distance: " + dist_str);
delay(500);
}
Was stimmt hier nicht ???

Gruß

FischRob

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 29 Jul 2018, 17:05
von MasterOfGizmo
Es muss in beiden Aufrufen von ftduino.output_set() statt

Code: Alles auswählen

ftduino.output_set(Ftduino::O7, Ftduino::HI::MAX);

Code: Alles auswählen

ftduino.output_set(Ftduino::O7, Ftduino::HI, Ftduino::MAX);
heissen. Dann ist es übersetzbar.

Aber ich denke nicht, dass das Programm macht was Du willst. Du willst, dass die Lampe an O7 leuchtet, wenn ein Objekt näher als 8cm ist und die an O8, wenn es weiter weg ist, oder? Das wird bei Deinem Programm so nicht passieren, weil Du die Lampen zwar korrekt einschaltest, sie aber nie wieder auschaltest.

Aber wie gesagt: Dieses etwas ziellose Code-Aneinanderreihen wird Dich nicht recht weiterbringen. Du lernst ja nichts, wenn andere Leute dann immer den Fehler für Dich suchen. Schau' Dir das entsprechende Kapitel in der Anleitung doch erst einmal in Ruhe an.

Re: Ultraschall-Sensor mit ftDuino ansprechen

Verfasst: 29 Jul 2018, 17:25
von FischRob
Danke

es funktioniert.

Gruß
FischRob