Hallo Community,
das hier ist mein erster Post bei euch, ich bin grade dabei eine Drohne zu bauen und hab mir einen Nano 33 BLE bestellt da unsere Drohne mit Ultraschallsensoren bestück sind und wir gleichzeitig auch die Sensoren vom Nano benutzen wollen. Ich hab aber ein kleines Problem mit meiner Seriellen Ausgabe hier einmal der Code. Dieser Code ist lediglich zum Testen gedacht, ist nicht der Code der später benutzt wird. Wir wollten erstmal nur die Sensoren damit Testen.
Das eingesetzte Delay ist dafür da um die Sensoren richtig einzustellen.
Die Drohne wird nicht über einen Arduino gesteuert, er gibt die Daten an einen Raspberry 4 weiter und wird dort verarbeitet. Zusetzlich benutzen wir noch einen Navio2.
//Initialisierung
int trigger_1 = 13; // trigger Pin Sensor back left
int echo_1 = 8; // echo Pin Sensor back left
int trigger_2 = 12; //trigger Pin Sensor left
int echo_2 = 7; // echo Pin Sensor left
int trigger_3 = 11; //trigger Pin Sensor center
int echo_3 = 6; //echo Pin Sensor center
int trigger_4 = 10; //trigger Pin Sensor right
int echo_4 = 5; //echo Pin Sensor right
int trigger_5 = 9; //trigger Pin Sensor back right
int echo_5 = 4; //echo Pin Sensor back right
long dauer = 0;
long entfernung = 0;
//Funktion für alle Sensoren
int Sensor (int trigger, int echo)
{
digitalWrite(trigger, LOW);
delayMicroseconds(5);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
long us_alt = micros();
while (digitalRead(echo) == 0); //warten auf Burst
while (digitalRead(echo) == 1); //warten auf Burst ende
long t = micros () - us_alt ; // Senden abschließen
entfernung = (t /2) * 0.03432; // Die Zeit in den Weg in Zentimeter umrechnen
return entfernung;
}
//Setup
void setup()
{
Serial.begin(9600);
pinMode(trigger_1, OUTPUT);
pinMode(trigger_2, OUTPUT);
pinMode(trigger_3, OUTPUT); //trigger Pins
pinMode(trigger_4, OUTPUT);
pinMode(trigger_5, OUTPUT);
pinMode(echo_1, INPUT);
pinMode(echo_2, INPUT);
pinMode(echo_3, INPUT); //echo Pins
pinMode(echo_4, INPUT);
pinMode(echo_5, INPUT);
}
void loop ()
{
int back_left = Sensor(trigger_1, echo_1);
Serial.print ("back left: ");
Serial.print (back_left);
Serial.println(" cm");
delay (1000);
long left = Sensor(trigger_2, echo_2);
Serial.print ("left: ");
Serial.print (left);
Serial.println(" cm");
delay (1000);
long center = Sensor(trigger_3, echo_3);
Serial.print ("center: ");
Serial.print (center);
Serial.println(" cm");
delay (1000);
long right = Sensor(trigger_4, echo_4);
Serial.print ("right: ");
Serial.print (right);
Serial.println(" cm");
delay (1000);
long back_right = Sensor(trigger_5, echo_5);
Serial.print ("back_right: ");
Serial.print (back_right);
Serial.println(" cm");
delay (1000);
}
Er lädt alles wunderbar hoch aber sobald ich den Monitor starte kommt keine Ausgabe mehr und ich weis einfach nicht mehr weiter.
Sobald ich aber ein paar Sachen auskommentiere printed er mir die gewünschten Sachen.
//Initialisierung
int trigger_1 = 13;
int echo_1 = 8;
/*int trigger_2 = 12;
int echo_2 = 7;
int trigger_3 = 11;
int echo_3 = 6;
int trigger_4 = 10;
int echo_4 = 5;
int trigger_5 = 9;
int echo_5 = 4;*/
long dauer = 0;
long entfernung = 0;
//Funktion für alle Sensoren
int Sensor (int trigger, int echo)
{
digitalWrite(trigger, LOW);
delayMicroseconds(5);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
long us_alt = micros();
while (digitalRead(echo) == 0);
while (digitalRead(echo) == 1);
long t = micros () - us_alt ;
entfernung = (t /2) * 0.03432;
return entfernung;
}
//Setup
void setup()
{
Serial.begin(9600);
pinMode(trigger_1, OUTPUT);
/*pinMode(trigger_2, OUTPUT);
pinMode(trigger_3, OUTPUT); //trigger Pins
pinMode(trigger_4, OUTPUT);
pinMode(trigger_5, OUTPUT);*/
pinMode(echo_1, INPUT);
/*pinMode(echo_2, INPUT);
pinMode(echo_3, INPUT); //echo Pins
pinMode(echo_4, INPUT);
pinMode(echo_5, INPUT);*/
}
void loop ()
{
//int back_left = Sensor(trigger_1, echo_1);
Serial.print ("back left: ");
//Serial.print (back_left);
Serial.println(" cm");
delay (1000);
/*long left = Sensor(trigger_2, echo_2);
Serial.print ("left: ");
Serial.print (left);
Serial.println(" cm");
delay (1000);
long center = Sensor(trigger_3, echo_3);
Serial.print ("center: ");
Serial.print (center);
Serial.println(" cm");
delay (1000);
long right = Sensor(trigger_4, echo_4);
Serial.print ("right: ");
Serial.print (right);
Serial.println(" cm");
delay (1000);
long back_right = Sensor(trigger_5, echo_5);
Serial.print ("back_right: ");
Serial.print (back_right);
Serial.println(" cm");
delay (1000);*/
}
Kann mir da vielleicht einer weiterhelfen.
vielen lieben Dank im Vorraus.