Сервопривода и блютуз

Тема в разделе "Arduino & Shields", создана пользователем Groll, 12 дек 2018.

  1. Groll

    Groll Нуб

    Всем доброго времени суток! Решил заняться проектом, где необходимо использовать ардуино. Долго изучал и лазал по сайтам, но никак не могу добиться того чтобы сервопривод поворачивался с телефона по блютуз. Ниже скетч который сумел написать, помогите найти ошибку, а то вот я что то не вижу(. Телефон на андроиде, ардуино нано. Библиотеку скачал и закинул правильно- Ардуино IDE ошибок не выдает. Схема такая- к нано подключаю блютуз модуль через TX и RX, и два серводпривода через D3 и D5. Программка для андроид которая используется для поворотов рабочая- это точно. Заранее благодарю!


    #include <SoftwareSerial.h>
    #include <Servo.h>
    Servo myservo1, myservo2;
    int bluetoothTx = 10;
    int bluetoothRx = 11;
    SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
    void setup()
    {
    myservo1.attach(3);
    myservo2.attach(5);

    Serial.begin(9600);
    bluetooth.begin(9600);
    }
    void loop()
    {
    if(bluetooth.available()>= 2 )
    {
    unsigned int servopos = bluetooth.read();
    unsigned int servopos1 = bluetooth.read();
    unsigned int realservo = (servopos1 *256) + servopos;
    Serial.println(realservo);
    if (realservo >= 1000 && realservo <1180) {
    int servo1 = realservo;
    servo1 = map(servo1, 1000, 1180, 0, 180);
    myservo1.write(servo1);
    Serial.println("Servo 1 ON");
    delay(10);
    }
    if (realservo >= 2000 && realservo <2180) {
    int servo2 = realservo;
    servo2 = map(servo2, 2000, 2180, 0, 180);
    myservo2.write(servo2);
    Serial.println("Servo 2 ON");
    delay(10);
    }
    }
    }
     
  2. a1000

    a1000 Гуру

    Ну о том как вставлять код в сообщения, уже даже и напоминать не буду.
    А по вашему вопросу встречный вопрос
    К каким конкретно пинам ардуино вы подключились?
     
    Daniil нравится это.
  3. Daniil

    Daniil Гуру

    Какую?
    Что вы делаете?
    Что должно произойти?
    Что присходит?
     
  4. Groll

    Groll Нуб

    Мне нужнен скетч с помощью которого происходит следущее: Я подключаюсь с телефона к блютуз модулю и соотвественно к ардуино. (К ардуино подлкючено два сервопривода)Захожу в програмку на андроиде и путем использования этой програмки сервопривода двигаются в определенном направлении( каждым я должен управлять по отдельности). Короче говоря нужно что бы я управлял сервоприводами , каждым по отдельности, с телефона. С этим скетчем, который я вложил в сообщение происходит следующее: Телефон подключается, ардуино и блютуз модуль работает. Но, при использовании программы сервоприводам не холодно не жарко. В этом вся проблема- сервоприводы не реагируют. Может проблема в неправильном подключении сервоприводов? В программе указал пины D3 и D5, так и подключаю- но реакции все ровно ноль.
     
    Последнее редактирование: 14 дек 2018
  5. Groll

    Groll Нуб

    К RX0 и TX1( Если рапосоложить арудино юзб выходом налево - это два самых правых верхних пина). Таких пина на нано только по одной штуке.
     
  6. Groll

    Groll Нуб

    При создании проекта руководствовался следующей статьей, программу для андроид использую оттуда. Может это что-то даст. https://ngin.pro/index.php?newsid=251
     
  7. a1000

    a1000 Гуру

    Ну а в скетче вы создаете для блютуз программный UART
    Код (C++):
    int bluetoothTx = 10;
    int bluetoothRx = 11;
    SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
    Так-что у вас Tx это 10 цифровой порт, а Rx - 11.
    P.S. Так, ещё одно уточнение - при подключении линии перекрещиваются. Tx блютуз к Rx ардуины, соответственно Rx блютуз к Tx ардуины.
     
  8. Groll

    Groll Нуб

    Все! Получилось! Преогромнейшее спасибо! Вы не представляете как мне помогли!:)
     
    Последнее редактирование: 14 дек 2018
  9. b707

    b707 Гуру

    так у вас монитор работать не будет.
    У вас же в скетче описано, что блютуз подключен к пинам 10 и 11. Вот к ним и подключайте, а не к 0 и 1.
    Вы похоже, в этом деле полный ноль. Чего вы с такого сложного проекта начали? - ничего ж не выйдет
    Начинайте с простого... светодиодики...
     
    ДеКодер нравится это.
  10. a1000

    a1000 Гуру

    Нет. В ардуино на пинах 0 и 1 находится аппаратный UART. Так как он используется при прошивке ардуино, то подключать к нему периферийные устройства не самая лучшая идея. Что-бы обойти эту проблему создаётся программный UART. Там пины назначаются в скетче. Подключите ваш блютуз модуль так
    Tx блютуз к 11 пину ардуины,
    Rx блютуз к 10 пину ардуины
     
  11. b707

    b707 Гуру

    учебник купи, лапоть :)
     
  12. a1000

    a1000 Гуру

    :DНу чего ты такой злой:D