Arduino Возвращает ошибку
- Войдите на сайт для отправки комментариев
Вс, 12/11/2017 - 14:06
#include "IRremote.h"
const int Red=7;
const int Yellow=10;
const int Green=11;
const int S=9;
const int a=440;
const int f=349;
const int c=523;
const int e= 659;
const int F=698;
const int gis=415;
IRrecv irrecv(6);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(Red, OUTPUT);
pinMode(Yellow, OUTPUT);
pinMode(Green, OUTPUT);
pinMode(S, OUTPUT);
}
void beep(int Fq, int time)
{
tone(S, Fq, time);
delay(time + 20);
}
void loop() {
if ( irrecv.decode( &results )) {
switch (results.value) {
case 0x14EB58A7:
digitalWrite(Red, HIGH);
digitalWrite(Yellow, LOW);
digitalWrite(Green, LOW);
break;
case 0x14EB8877:
digitalWrite(Red, LOW);
digitalWrite(Yellow, HIGH);
digitalWrite(Green, LOW);
break;
case 0x14EB906F:
digitalWrite(Red, LOW);
digitalWrite(Yellow, LOW);
digitalWrite(Green, HIGH);
break;
case 0x14EBD827:
digitalWrite(Red, LOW);
digitalWrite(Yellow, HIGH);
digitalWrite(Green, HIGH);
break;
case 0x14EB48B7:
digitalWrite(Red, HIGH);
digitalWrite(Yellow, LOW);
digitalWrite(Green, HIGH);
break;
case 0x14EB50AF:
digitalWrite(Red, HIGH);
digitalWrite(Yellow, HIGH);
digitalWrite(Green, LOW);
break;
case 0x14EB18E7:
digitalWrite(Red, HIGH);
digitalWrite(Yellow, HIGH);
digitalWrite(Green, HIGH);
break;
case 0x14EBA857:
digitalWrite(Red, LOW);
digitalWrite(Yellow, LOW);
digitalWrite(Green, LOW);
break;
case 0x14EB9867:
beep(a, 100);
break;
}
Serial.println( results.value, HEX );
irrecv.resume();
}
}
Сделала код. Без последнего case, вполне рабочий, но с его добавлением начинается лажа
Arduino: 1.8.5 (Windows 7), Плата:"Arduino/Genuino Uno" Tone.cpp.o (symbol from plugin): In function `timer0_pin_port': (.text+0x0): multiple definition of `__vector_7' libraries\IRremote\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here collect2.exe: error: ld returned 1 exit status exit status 1 Ошибка компиляции для платы Arduino/Genuino Uno.
Пробовала ставить просто tone();, вместо всей этой лабуды, но результат тот же. Может у библиотеки IRremote, какие-то конфликты с этой коммандой?
В таком состоянии, код рабочий #include "IRremote.h" const int Red=7; const int Yellow=10; const int Green=11; const int S=9; const int a=440; const int f=349; const int c=523; const int e= 659; const int F=698; const int gis=415; IRrecv irrecv(6); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(Red, OUTPUT); pinMode(Yellow, OUTPUT); pinMode(Green, OUTPUT); pinMode(S, OUTPUT); } void loop() { if ( irrecv.decode( &results )) { switch (results.value) { case 0x14EB58A7: digitalWrite(Red, HIGH); digitalWrite(Yellow, LOW); digitalWrite(Green, LOW); break; case 0x14EB8877: digitalWrite(Red, LOW); digitalWrite(Yellow, HIGH); digitalWrite(Green, LOW); break; case 0x14EB906F: digitalWrite(Red, LOW); digitalWrite(Yellow, LOW); digitalWrite(Green, HIGH); break; case 0x14EBD827: digitalWrite(Red, LOW); digitalWrite(Yellow, HIGH); digitalWrite(Green, HIGH); break; case 0x14EB48B7: digitalWrite(Red, HIGH); digitalWrite(Yellow, LOW); digitalWrite(Green, HIGH); break; case 0x14EB50AF: digitalWrite(Red, HIGH); digitalWrite(Yellow, HIGH); digitalWrite(Green, LOW); break; case 0x14EB18E7: digitalWrite(Red, HIGH); digitalWrite(Yellow, HIGH); digitalWrite(Green, HIGH); break; case 0x14EBA857: digitalWrite(Red, LOW); digitalWrite(Yellow, LOW); digitalWrite(Green, LOW); break; } Serial.println( results.value, HEX ); irrecv.resume(); } }Я прогуглила и нашла, что у этой библиотеки "аллергия" на tone();. Статья англоязычная, гугл не переводит из-за обилия сокращений. Помогите, кто шарит
и нахрена темы плодить про одно и то же?
Похоже. что да. Судя по описанию, и tone и IRremote используют таймер2
Я прогуглила и нашла, что у этой библиотеки "аллергия" на tone();. Статья англоязычная, гугл не переводит из-за обилия сокращений. Помогите, кто шарит
так ссылку дали бы. Тут есть такие, представляете!!!! - что и без гугля прочитать могут :)
и нахрена темы плодить про одно и то же?
там было про switch - а тут про tone ! - разница :)
Автору - если серьезно - надо было спрашивать в старой теме,
Нашла
http://arduino.ru/forum/programmirovanie/konflikt-bibliotek-tone-i-iremote
http://arduino.ru/forum/programmirovanie/motor-shield-v3-podklyuchenie-t...