0

I am new to Arduino and just got this error after writing this code:The error message is pasted after the code. I am kindly requesting for assistance so that someone can help me understand why it isn't compiling. I even changed the board to mega at the tools section but still get the same error


 #include <Tone.h>
int ledred1 = 2;
int ledgreen1 = 3;
int ledorange1 = 4;
int ledred2 = 5;
int ledgreen2 = 6;
int ledorange2 = 7;
int ledred3 = 8;
int ledgreen3 = 9;
int ledorange3 = 10;
int sound = 250;
int trigPin1 = 11;
int echoPin1 = 12;
int trigPin2 = 13;
int echoPin2 = 14;
int trigPin3 = 15;
int echoPin3 = 16;
#define buzzer1 17
#define buzzer2 18
#define buzzer3 19
Tone tone1;
Tone tone2;
Tone tone3;
long distance1=0; 
long distance2=0;
long distance3=0; 
long t1=-10000;
long t2=-10000;
long t3=-10000;
void checkDistance(long distance, Tone toneobj, int frequency, long *timer);
long measure(int trigger, int echo);
void setup() {
 Serial.begin (9600);
 pinMode(trigPin1, OUTPUT);
 pinMode(echoPin1, INPUT);
 
 pinMode(trigPin2, OUTPUT);
 pinMode(echoPin2, INPUT);
 
 pinMode(trigPin3, OUTPUT);
 pinMode(echoPin3, INPUT);
 tone1.begin(buzzer1);
 tone2.begin(buzzer2);
 tone3.begin(buzzer3);
 
 pinMode(ledred1, OUTPUT);
 pinMode(ledred2, OUTPUT);
 pinMode(ledgreen1, OUTPUT);
 pinMode(ledgreen2, OUTPUT);
 pinMode(ledred3, OUTPUT);
 pinMode(ledgreen3, OUTPUT);
}
void firstsensor(){ // This function is for first sensor. 
 int duration1, distance1;
 digitalWrite (trigPin1, HIGH);
 delayMicroseconds (10);
 digitalWrite (trigPin1, LOW);
 duration1 = pulseIn (echoPin1, HIGH);
 distance1 = (duration1/2) / 29.1;
 Serial.print("1st Sensor: ");
 Serial.print(distance1); 
 Serial.print("cm ");
 if (distance1 <=200&& distance1>=100) { // Change the number for long or short distances.
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,HIGH);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 
 sound=250;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if (distance1 <100&& distance1>=50) { // Change the number for long or short distances.
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,HIGH);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 
 sound=275;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if (distance1 <50&& distance1>=0) { // Change the number for long or short distances.
 digitalWrite (ledred1, HIGH);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 
 sound=300;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if(distance1>200 || distance1<0){
 Serial.println("Out of Range");
 noTone(buzzer1);
 }
 else{
 Serial.print(distance1);
 Serial.println("cm");
 tone(buzzer1,sound);
 } 
}
void secondsensor(){ // This function is for second sensor.
 int duration2, distance2;
 digitalWrite (trigPin2, HIGH);
 delayMicroseconds (10);
 digitalWrite (trigPin2, LOW);
 duration2 = pulseIn (echoPin2, HIGH);
 distance2 = (duration2/2) / 29.1;
 
 Serial.print("2nd Sensor: ");
 Serial.print(distance2); 
 Serial.print("cm ");
 
 if (distance2 <=200&& distance2>=100) { // Change the number for long or short distances.
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, HIGH);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 
 sound=250;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if (distance2 <100&& distance2>=50) { // Change the number for long or short distances.
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,HIGH);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 
 sound=275;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if (distance2 <50&& distance2>=0) { // Change the number for long or short distances.
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, HIGH);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 
 sound=300;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if(distance2>200 || distance2<0){
 Serial.println("Out of Range");
 noTone(buzzer2);
 }
 else{
 Serial.print(distance2);
 Serial.println("cm");
 tone(buzzer2,sound);
 } 
}
void thirdsensor(){ // This function is for third sensor.
 int duration3, distance3;
 digitalWrite (trigPin3, HIGH);
 delayMicroseconds (10);
 digitalWrite (trigPin3, LOW);
 duration3 = pulseIn (echoPin3, HIGH);
 distance3 = (duration3/2) / 29.1;
 Serial.print("3rd Sensor: "); 
 Serial.print(distance3); 
 Serial.print("cm");
 
 if (distance3 <=200&& distance3>=100) { // Change the number for long or short distances.
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, HIGH);
 
 sound=250;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if (distance3 <100&& distance3>=50) { // Change the number for long or short distances.
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,HIGH);
 digitalWrite (ledgreen3, LOW);
 
 sound=275;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if (distance1 <50&& distance1>=0) { // Change the number for long or short distances.
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 
 sound=300;
 } else {
 digitalWrite (ledred1, LOW);
 digitalWrite (ledgreen1,LOW);
 digitalWrite (ledorange1,LOW);
 digitalWrite (ledred2, LOW);
 digitalWrite (ledorange2,LOW);
 digitalWrite (ledgreen2, LOW);
 digitalWrite (ledred3, LOW);
 digitalWrite (ledorange3,LOW);
 digitalWrite (ledgreen3, LOW);
 } 
 if(distance3>200 || distance3<0){
 Serial.println("Out of Range");
 noTone(buzzer3);
 }
 else{
 Serial.print(distance3);
 Serial.println("cm");
 tone(buzzer3,sound);
 } 
}
void loop() {
Serial.println("\n");
firstsensor();
secondsensor();
thirdsensor();
delay(100);
}

This is the error message: Arduino: 1.8.13 (Linux), Board: "Arduino Uno"

Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer0_pin_port'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer0_pin_mask'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer1_pin_port'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer1_pin_mask'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer2_pin_port'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer2_pin_mask'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer0_toggle_count'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer1_toggle_count'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `timer2_toggle_count'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `__vector_7'
libraries/Tone-1.0.0/Tone.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Gerben
11.3k3 gold badges22 silver badges34 bronze badges
asked Nov 20, 2020 at 13:26
0

1 Answer 1

1

You include the Tone library and you use the tone() function from core. They are in conflict.

Use tone1.tone() or remove the Tone library and use the tone() function.

answered Nov 20, 2020 at 13:42
1
  • Thank you. I removed the tone library and used the tone () function by itself and it worked Commented Nov 20, 2020 at 14:01

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.