Hi!
I wrote code to use four ultrasonic sensors at the same time, and it was working fine. (I'm absolutely new to this, so the code might not have the best syntax.)
A few days ago, I wanted to change the values of maximum and minimum distances, and when I uploaded the code again to the Arduin UNO, it now reads incredibly slowly.
It can't be something in the code, even if it is not perfect, because before I was reading well and it was the same code.
#define echoPin 11 //echo
#define trigPin 12 //trig
#define echoPin01 6 //echo01
#define trigPin01 7 //trig01
#define echoPin02 8 //echo02
#define trigPin02 9 //trig02
#define echoPin03 3 //echo03
#define trigPin03 4 //trig03
int maximumRange = 200;
int minimumRange = 0;
int maximumRange01 = 200;
int minimumRange01 = 0;
int maximumRange02 = 200;
int minimumRange02 = 0;
int maximumRange03 = 200;
int minimumRange03 = 0;
long duration, duration01, duration02, duration03;
long distance, distance01, distance02, distance03; //duration used to calculate distance
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin01, OUTPUT);
pinMode(echoPin01, INPUT);
pinMode(trigPin02, OUTPUT);
pinMode(echoPin02, INPUT);
pinMode(trigPin03, OUTPUT);
pinMode(echoPin03, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
digitalWrite(trigPin01, LOW);
delayMicroseconds(2);
digitalWrite(trigPin01, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin01, LOW);
duration01 = pulseIn(echoPin01, HIGH);
digitalWrite(trigPin02, LOW);
delayMicroseconds(2);
digitalWrite(trigPin02, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin02, LOW);
duration02 = pulseIn(echoPin02, HIGH);
digitalWrite(trigPin03, LOW);
delayMicroseconds(2);
digitalWrite(trigPin03, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin03, LOW);
duration03 = pulseIn(echoPin03, HIGH);
//calculate distance in CM based on SOS
distance = duration / 58.2;
distance01 = duration01 / 58.2;
distance02 = duration02 / 58.2;
distance03 = duration03 / 58.2;
Serial.print("A ");
if (distance >= maximumRange || distance <= minimumRange) {
Serial.println("300");
} else {
Serial.println(distance);
}
Serial.print("B ");
if (distance01 >= maximumRange01 || distance01 <= minimumRange01) {
Serial.println("300");
} else {
Serial.println(distance01);
}
Serial.print("C ");
if (distance02 >= maximumRange02 || distance02 <= minimumRange02) {
Serial.println("300");
} else {
Serial.println(distance02);
}
Serial.print("D ");
if (distance03 >= maximumRange03 || distance03 <= minimumRange03) {
Serial.println("300");
} else {
Serial.println(distance03);
}
delay(100);
}
type or paste code here
I tried reinstalling Arduino and even reinstalling Windows.
Any idea what the problem could be?
Thanks!