Конфликт библиотек?

Тема в разделе "Arduino & Shields", создана пользователем DrProg, 22 апр 2015.

  1. DrProg

    DrProg Вечный нерд

    При совместном использовании функции tone() и библиотеки NewPing.h, которая работает с сонаром, компилятор выдает такую ошибку:

    :\Users\DrProg\AppData\Local\Temp\build8006194688059551054.tmp/core.a(Tone.cpp.o): In function `__vector_7':
    C:\Users\DrProg\Desktop\arduino-1.6.3\hardware\arduino\avr\cores\arduino/Tone.cpp:536: multiple definition of `__vector_7'
    NewPing\NewPing.cpp.o:C:\Users\DrProg\Desktop\arduino-1.6.3\libraries\NewPing/NewPing.cpp:214: first defined here
    collect2.exe: error: ld returned 1 exit status
    Ошибка компиляции.

    Можно ли это вылечить?
     
  2. DrProg

    DrProg Вечный нерд

    Решил путем замены рекомендованной Амперкой библиотеки на другую. Правда, пришлось немного доработать ее напильником, ибо дальше 50см сенсор не видел. Теперь видит на 2 метра и это не предел.

    Кстати, ссылка на вот эту первую рекомендованную библиотеку ведет на очень подозрительный завирусованный сайт. Рекомендую туда не ходить и вообще убрать из ссылок.

    Вдруг кому то пригодится.
     
  3. ИгорьК

    ИгорьК Гуру

    Этот датчик работает без всяких деБилиотек:
    Код (C):
    unsigned int getDistance(byte trig, byte ping) { // указать тригерную и приемную ноги
        unsigned int duration = 0;
        digitalWrite(trig, LOW);
        delayMicroseconds(2);
        digitalWrite(trig, HIGH);
        delayMicroseconds(10);
        digitalWrite(trig, LOW);
        duration = pulseIn(ping,HIGH);
        Distance = duration/29/2;
        return Distance;
    }
     
    DrProg нравится это.
  4. DrProg

    DrProg Вечный нерд

    Спасибо. Я ее сам попробовал сделать, но плюнул, потому что нашел готовую. Буду использовать.