Hallo Community,
ich würde gerne den Code des Ultraschallsensors mit dem Code der Fernbedienung, die die Motoren steuert, kombinieren. Das Problem ist, der Serielle Monitor kann von den beiden Sensoren nicht gleichzeitig Signale aufnehmen und verändert bei gleichzeitiger Nutzung die Codes der Fernbedienung. Das ist der Code für den Ultraschall, der ohne den anderen Teil des Codes, also dem der Fernbedienung, funktioniert.
`
int trigger=7;
int echo=9;
long dauer=0;
long entfernung=0;
void setup() {
Serial.begin(9600);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
pinMode(A1,OUTPUT);
}
void loop() {
digitalWrite(trigger,LOW);
delay(5);
digitalWrite(trigger,HIGH);
delay(10);
digitalWrite(trigger,LOW);
dauer=pulseIn(echo,HIGH);
entfernung=(dauer/2)*0.03432;
if(entfernung>=500||entfernung<=0)
Serial.println("Kein Messwert");
else
Serial.println(entfernung);
Serial.println("cm");
delay(1000);
if(entfernung==5)
tone (A1,440);
if (entfernung==4)
tone(A1,493);
if (entfernung==3)
tone(A1,523);
if (entfernung==2)
tone(A1,587);
if (entfernung==1)
tone(A1,659);
if (entfernung==0)
tone(A1,698);
else//
if(entfernung>5)
noTone(A1);
}`
Das ist der Code für die Fernbedienung mit Motor
`#include <IRremote.h>
IRrecv IR(3);
int motor1Pin1 = 10; // Pin für Motor 1 Richtung 1
int motor1Pin2 = 11; // Pin für Motor 1 Richtung 2
int motor2Pin1 = 6; // Pin für Motor 2 Richtung 1
int motor2Pin2 = 5; // Pin für Motor 2 Richtung 2
int motorSpeed1 = 150;
int motorSpeed2 = 150;
int echo=9;
int trigger=7;
long dauer=0;
long entfernung=0;
void setup() {
IR.enableIRIn();
Serial.begin(9600);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
pinMode(2,OUTPUT);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
}
void loop() {
if(IR.decode()){
Serial.println(IR.decodedIRData.decodedRawData,HEX);
if(IR.decodedIRData.decodedRawData== 0xE916FF00){// Power 0
// Beide Motoren stoppen
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}
if(IR.decodedIRData.decodedRawData== 0xBF40FF00){ // Vorwärts|>>
// Beide Motoren vorwärts mit maximaler Geschwindigkeit
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);}
if(IR.decodedIRData.decodedRawData== 0xBB44FF00){// Rückwärts|<<
// Beide Motoren rückwärts mit maximaler Geschwindigkeit
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);}
if(IR.decodedIRData.decodedRawData==0xEA15FF00) {// Schneller +
motorSpeed1 = constrain(motorSpeed1 + 20, 0, 255);
analogWrite(motor1Pin1, motorSpeed1);
analogWrite(motor2Pin1, motorSpeed1);
}
if(IR.decodedIRData.decodedRawData==0xF807FF00) {// Langsamer-
// Geschwindigkeit beider Motoren verringern (optional)
motorSpeed1 = constrain(motorSpeed1 -20, 0, 255);
analogWrite(motor1Pin1, motorSpeed1);
analogWrite(motor2Pin1, motorSpeed1);
}
delay(1500);
IR.resume();
}}`
Der Code ist für ein Schulprojekt und unser Lehrer kann mir leider nicht mehr weiterhelfen ich würde mich sehr über eine Antwort freuen.