Arduino Programmfehler bei Ultraschallsensor

Hallo, als erstes hoffe ich mal das ich die richtige Kategorie ausgewählt habe. Ich habe ein Problem in meinem Programm. Ich bin gerade dabei ein Arduino Fahrzeug zu bauen und ich finde keine Lösung für meinen Fehler.
Hier das Programm:
#include <Servo.h>
const int trigPin = 2;
const int echoPin = 3;
long dauer;
int distanz;
int GSM1 = 10;
int in1 = 9;
int in2 = 8;
int GSM2 = 5;
int in3 = 7;
int in4 = 6;
int poti =A0;
Servo myServo;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
myServo.attach(11);
myServo.write (0);
pinMode(GSM1, OUTPUT);
pinMode(GSM2, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop() {
}
void geschwindigkeit1(){
int potiwert =analogRead(poti);
int geschwindigkeit=map(potiwert,0 , 1023, 0, 255);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(GSM1, geschwindigkeit);
analogWrite(GSM2, geschwindigkeit);
}
int berechneteDistanz();
digitalWrite(trigPin, LOW); //Hier nimmt man die Spannung für kurze Zeit vom Trigger-Pin, damit man später beim senden des Trigger-Signals ein rauschfreies Signal hat.
delayMicroseconds(1); //Dauer: 5 Millisekunden
digitalWrite(trigPin, HIGH); //Jetzt sendet man eine Ultraschallwelle los.
delayMicroseconds(5); //Dieser „Ton“ erklingt für 10 Millisekunden.
digitalWrite (trigPin, LOW);//Dann wird der „Ton“ abgeschaltet. Dieser Fehler hier : expected constructor, destructor, or type conversion before '(' token wird immer angezeigt
dauer = pulseIn(echoPin, HIGH); //Mit dem Befehl „pulseIn“ zählt der Mikrokontroller die Zeit in Mikrosekunden, bis der Schall zum Ultraschallsensor zurückkehrt.
distanz = (dauer/2) * 0.03432; //Nun berechnet man die Entfernung in Zentimetern. Man teilt zunächst die Zeit durch zwei (Weil man ja nur eine Strecke berechnen möchte und nicht die Strecke hin- und zurück). Den Wert multipliziert man mit der Schallgeschwindigkeit in der Einheit Zentimeter/Mikrosekunde und erhält dann den Wert in Zentimetern.
if (distanz >= 500 || distanz <= 0) //Wenn die gemessene Entfernung über 500cm oder unter 0cm liegt,…
{
Serial.println("Kein Messwert"); //dann soll der serial monitor ausgeben „Kein Messwert“, weil Messwerte in diesen Bereichen falsch oder ungenau sind.
}
else // Ansonsten…
{
Serial.print(distanz); //…soll der Wert der Entfernung an den serial monitor hier ausgegeben werden.
Serial.println(" cm"); // Hinter dem Wert der Entfernung soll auch am Serial Monitor die Einheit "cm" angegeben werden.
}
if ((distanz)<=15) {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
myServo.write (90);
delay (1000);
}
}

Moin SickenoArduino
Welchen Fehler ?

Das verstehe ich. Dein Code ist auch sehr schwer zu lesen.
Setze das mal in Code-Tags. Den Code markieren und die Schaltfläche </> drücken.
Dann beschreibe den Fehler den du hast bzw. siehst. Dann wissen wir evtl. wo dein Problem ist.

Hallo @SickenoArduino,

du solltest möglichst präzise beschreiben worin der Fehler besteht.
Welches Programmverhalten hättest du gerne und was macht das Programm anders?

Hi @

you should re-edit your first post to have your code as a code-section.
This can be done with a few mous-clicks.

Below your posting you find a pencil-icon that will activate editing-mode

Click on this icon.
Then mark all the code. Then delete the marked code.

You can post code by using this method that adds the code-tags

There is an automatic function for doing this in the Arduino-IDE
just three steps

  1. press Ctrl-T for autoformatting your code
  2. do a rightclick with the mouse and choose "copy for forum"
  3. paste clipboard into write-window of a posting

best regards Stefan

Hallo ich habe das Problem oben im Programm jetzt geschildert, ich habe ihre Vorgehenssweise leider nicht verstanden @StefanL38

Also je präziser du das jeweilige Problem beschreibst desto schneller kann geholfen werden.

"Vorgehenssweise leider nicht verstanden" woran liegt es?
auch das bitte präzise beschreiben.

Je nachdem ob die nächste Beschreibung nun präzise oder schon wieder unpräzise wird
werde ich meine zukünftigen Antworten auch jeweils kurz und unpräzise oder präzise und ausführlich machen.

Du kannst dir den Stil danach aussuchen was dir mehr Spaß macht.
ganz viele kurze Postings und taaagelang brauchen bis auch nur das Problem genau geklärt ist

oder EIN einzelnes Posting das aber ausführlich und laaaangen Text hat und dann schon mit der nächsten Antwort die Lösung bekommen.

vgs

Und warum gehst du auf andere Fragen nicht ein ?

Der Fehler liegt wohl hier:

statt int berechneDistanz(); sollte es wohl int berechneteDistanz() { lauten.

Da fehlt dann zwar immer noch etwas in dem zusammenkopierten Konstrukt, aber es dürfte sich wenigstens compilieren lassen.

Stimmt, es lässt sich compilieren, wenn man das Semikolon durch eine geschweifte Klammer ersetzt.

Mit

void loop(){

}

tut das Programm allerdings nichts... :wink:

@SickenoArduino , schau Dir Deinen Code nochmal genau an... Neben der o.a. Korrektur mit der Klammer, sind die beiden hinter loop() definierten Funktionen so wirkungslos, wobei die Funktion berechneteDistanz() wahrscheinlich die gewünschte Funktionalität
(bzw. wesentliche Teile davon) beinhaltet, aber selbst keinen Wert zurück gibt. Das zu ergründen, macht am Smartphone jetzt nicht so recht Spaß ;-).

Okay, danke für euer Hilfe @ec2021 und @Kai-R

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.