Всем доброго времени суток! Решил заняться проектом, где необходимо использовать ардуино. Долго изучал и лазал по сайтам, но никак не могу добиться того чтобы сервопривод поворачивался с телефона по блютуз. Ниже скетч который сумел написать, помогите найти ошибку, а то вот я что то не вижу(. Телефон на андроиде, ардуино нано. Библиотеку скачал и закинул правильно- Ардуино 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); } } }
Ну о том как вставлять код в сообщения, уже даже и напоминать не буду. А по вашему вопросу встречный вопрос К каким конкретно пинам ардуино вы подключились?
Мне нужнен скетч с помощью которого происходит следущее: Я подключаюсь с телефона к блютуз модулю и соотвественно к ардуино. (К ардуино подлкючено два сервопривода)Захожу в програмку на андроиде и путем использования этой програмки сервопривода двигаются в определенном направлении( каждым я должен управлять по отдельности). Короче говоря нужно что бы я управлял сервоприводами , каждым по отдельности, с телефона. С этим скетчем, который я вложил в сообщение происходит следующее: Телефон подключается, ардуино и блютуз модуль работает. Но, при использовании программы сервоприводам не холодно не жарко. В этом вся проблема- сервоприводы не реагируют. Может проблема в неправильном подключении сервоприводов? В программе указал пины D3 и D5, так и подключаю- но реакции все ровно ноль.
К RX0 и TX1( Если рапосоложить арудино юзб выходом налево - это два самых правых верхних пина). Таких пина на нано только по одной штуке.
При создании проекта руководствовался следующей статьей, программу для андроид использую оттуда. Может это что-то даст. https://ngin.pro/index.php?newsid=251
Ну а в скетче вы создаете для блютуз программный UART Код (C++): int bluetoothTx = 10; int bluetoothRx = 11; SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); Так-что у вас Tx это 10 цифровой порт, а Rx - 11. P.S. Так, ещё одно уточнение - при подключении линии перекрещиваются. Tx блютуз к Rx ардуины, соответственно Rx блютуз к Tx ардуины.
так у вас монитор работать не будет. У вас же в скетче описано, что блютуз подключен к пинам 10 и 11. Вот к ним и подключайте, а не к 0 и 1. Вы похоже, в этом деле полный ноль. Чего вы с такого сложного проекта начали? - ничего ж не выйдет Начинайте с простого... светодиодики...
Нет. В ардуино на пинах 0 и 1 находится аппаратный UART. Так как он используется при прошивке ардуино, то подключать к нему периферийные устройства не самая лучшая идея. Что-бы обойти эту проблему создаётся программный UART. Там пины назначаются в скетче. Подключите ваш блютуз модуль так Tx блютуз к 11 пину ардуины, Rx блютуз к 10 пину ардуины