Сервопривод и блютуз
- Войдите на сайт для отправки комментариев
Всем доброго времени суток! Решил заняться проектом, где необходимо использовать ардуино. Долго изучал и лазал по сайтам, но никак не могу добиться того чтобы сервопривод поворачивался с телефона по блютуз. Ниже скетч который сумел написать, помогите найти ошибку, а то вот я что то не вижу(. Телефон на андроиде, ардуино нано. Библиотеку скачал и закинул правильно- Ардуино IDE ошибок не выдает.
#include <SoftwareSerial.h>
#include <Servo.h>
Servo myservo1, myservo2, myservo3, myservo4;
int bluetoothTx = 10;
int bluetoothRx = 11;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
void setup()
{
myservo1.attach(3);
myservo2.attach(5);
myservo3.attach(6);
myservo4.attach(9);
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);
}
if (realservo >= 3000 && realservo <3180) {
int servo3 = realservo;
servo3 = map(servo3, 3000, 3180, 0, 180);
myservo3.write(servo3);
Serial.println("Servo 3 ON");
delay(10);
}
if (realservo >= 4000 && realservo <4180) {
int servo4 = realservo;
servo4 = map(servo4, 4000, 4180, 0, 180);
myservo4.write(servo4);
Serial.println("Servo 4 ON");
delay(10);
}
}
}
Схема такая- к нано подключаю блютуз модуль через TX и RX, и два серводпривода через D3 и D5, скетч для 4-ех конечно, но так как D7 и D9 пустуют то проблем это не должно вызвать, по-моему... Программка для андроид которая используется для поворотов рабочая- это точно. Заранее благодарю!
Ошибка в ХЗ какой строке.
Та а что на сериал мониторе видно то? Данные с BT модуля поступают?
У Дмитрия Осипова точно было решение
Та а что на сериал мониторе видно то? Данные с BT модуля поступают?
Ну я скажу так. Когда на телефоне через программу "поворачиваю" сервопривод - на Ардуино мигает красный диод , зелёный горит постоянно, перестаю поворачивать - перестает мигать красный. На блютуз модуле при включении Ардуино мигает красный , после подключения к телефону он начинает гореть постоянно. Такие дела. Так то сигнал, по всей видимости поступает, а вот сервоприводам не холодно не жарко от него. Может внеправильные пины вставляю? В программе вроде указал на D3 и D5, так и вставляю, но все ровно не робает.(
Причем здесь мигание светодиодов? Я про них и не спрашивал. В скетче есть такие строки
То есть мы получаем данные с блютуса и печатем полученное значение в сериал порт. Вопрос - какие значения печатаются на сериал мониторе?
Я в этом деле первый раз. У меня никакого монитора не подключено, а какие команды отвечают за печать?
Нажать CTRL+Shift+M (Все три клавиши одновременно)
при создании проекта руководствовался следующей статьей, программу для андроид использую оттуда. https://ngin.pro/index.php?newsid=251. На монитор ничего не поступает.
Ну, значит, с блютусом какие-то проблемы.
А вообще - отформатируйте код согласно правилам форума. А то ни читать, ни обсуждать нормально невозможно.
почитал ваш топик на амперке - вы не к тем пинам блютуз цепляете.
И вообще, начали бы с чтения учебников. а то проблемы свои даже обьяснить толком не умеете.
Всем спасибо- проблема решена!
Ссылки на проект лучше вставлять не картинкой!
А код по правилам сайта:
Принято приводить ссылки на используемые библиотеки