Ultraschall-Sensor mit ftDuino ansprechen

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 22 Jul 2018, 10:52

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

Benutzeravatar
robbi2011
Beiträge: 151
Registriert: 17 Mär 2011, 09:26

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von robbi2011 » 22 Jul 2018, 11:49

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.

Benutzeravatar
MasterOfGizmo
Beiträge: 2725
Registriert: 30 Nov 2014, 07:44

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von MasterOfGizmo » 22 Jul 2018, 14:10

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);
}
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 22 Jul 2018, 14:42

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

Benutzeravatar
MasterOfGizmo
Beiträge: 2725
Registriert: 30 Nov 2014, 07:44

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von MasterOfGizmo » 22 Jul 2018, 16:22

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"?
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 22 Jul 2018, 16:33

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

Benutzeravatar
EstherM
Beiträge: 1531
Registriert: 11 Dez 2011, 21:24

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von EstherM » 22 Jul 2018, 17:35

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

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 22 Jul 2018, 17:53

Hallo,
Du hast recht ist bei mir jetzt auch gegangen.

Vielen Dank

FischRob

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 28 Jul 2018, 17:59

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

davidrpf
Beiträge: 253
Registriert: 14 Jul 2015, 14:27
Kontaktdaten:

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von davidrpf » 28 Jul 2018, 18:08

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
Polarkoordinaten Plotter https://youtu.be/u6XwKxZuxqk
Autofabrik: https://youtu.be/mX9JWcca6kQ

Cymbaline
Beiträge: 70
Registriert: 01 Nov 2010, 07:28
Wohnort: Reuver, NL

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von Cymbaline » 28 Jul 2018, 18:16

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...
Zuletzt geändert von Cymbaline am 28 Jul 2018, 18:18, insgesamt 1-mal geändert.
Het leven is hard. Een kokosnoot ook.

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 28 Jul 2018, 18:17

Hallo,

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

Was mach ich falsch ???

Gruß
FischRob

davidrpf
Beiträge: 253
Registriert: 14 Jul 2015, 14:27
Kontaktdaten:

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von davidrpf » 28 Jul 2018, 18:23

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
Polarkoordinaten Plotter https://youtu.be/u6XwKxZuxqk
Autofabrik: https://youtu.be/mX9JWcca6kQ

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 28 Jul 2018, 18:42

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

Benutzeravatar
MasterOfGizmo
Beiträge: 2725
Registriert: 30 Nov 2014, 07:44

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von MasterOfGizmo » 28 Jul 2018, 20:22

Das ist keine vollständige Fehlermeldung. Da müsste noch einiges davor stehen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 29 Jul 2018, 11:27

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

Benutzeravatar
MasterOfGizmo
Beiträge: 2725
Registriert: 30 Nov 2014, 07:44

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von MasterOfGizmo » 29 Jul 2018, 12:51

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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 29 Jul 2018, 14:39

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

Benutzeravatar
MasterOfGizmo
Beiträge: 2725
Registriert: 30 Nov 2014, 07:44

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von MasterOfGizmo » 29 Jul 2018, 17:05

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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

FischRob
Beiträge: 75
Registriert: 01 Nov 2010, 09:51

Re: Ultraschall-Sensor mit ftDuino ansprechen

Beitrag von FischRob » 29 Jul 2018, 17:25

Danke

es funktioniert.

Gruß
FischRob

Antworten