Ви не увійшли.
Кто ж тебя знает чего ты хочешь. У тебя во всех твоих темах один и тот же код. То ты дрона собираешь, то машинку. Собери, проверь. Тебе уже практически все разжевали
Так у меня двухколёсный дрон
Cossack пише:Да настраивал под "Arduino bluetooth controller"
Arduino bluetooth controller в отличии от Bluetooth RC Car не умеет "отпускать" кнопку
Понятно
а так код будет работать как я хочу?
Здраствуйте я делаю код управления для двухколёсного дрона.
Але я не очень хорош в программировании.
Проблема в том что он работает не так как я думал.
Я хотел сделать так пока я держу кнопку он будет ехать и когда отпускаю ее он останавливается
но у меня не очень получилось его сделать.
Код пишется у меня для придложения для телефона.
Предложения которые я использую
"Bluetooth RC Car"
и также
"Arduino bluetooth controller"
int val;
int enA = 9;
int in1 = 6;
int in2 = 2;
int in3 = 4;
int in4 = 3;
int enB = 5;
void setup()
{
Serial1.begin(9600);
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(13, OUTPUT);
pinMode(enB, OUTPUT);
}
void acc(){
for(int i=0; i<256; i++){
analogWrite(enB, i);
analogWrite(enA, i);
delay(40);
}
}
void dec(){
for(int i=255; i>0; --i){
analogWrite(enB, i);
analogWrite(enA, i);
delay(40);
}}
void(* resetFunc) (void) = 0;
void loop()
{
if (Serial1.available()) // проверка поданных команд
{
val = Serial1.read();
if (val == '8') //вперед
{
digitalWrite(13, HIGH);
digitalWrite(in1,LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH);
acc();
dec();
delay(40);
}
if (val == '4') //ліво
{
digitalWrite(13, HIGH);
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH);
acc();
dec();
delay(40);
}
if (val == '6') //право
{
digitalWrite(13, HIGH);
digitalWrite(in1,LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
acc();
dec();
delay(40);
}
if (val == '2') //назад
{
digitalWrite(13, HIGH);
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
acc();
dec();
delay(40);
}
if(val =='1')
{
resetFunc();
}
}
}
Добрый день еще раз возникла еще одна у меня маленькая проблемка и на этот раз из питанием блютуз модуля HC-06.
Проблема в том что диод только горить тогда когда подключено из ноутбука к Мега а если убрать провод а подключить к разъёму для питания батарейку крону 9 В. То индикатор не загорается.
плата L298N
Bluetooth Module HC-06
Arduino MEGA2560 R3
Два моторчика
Подключение блютуза Module HC-06 до Мега:
VCC >> до 5в
GND >> до земли
TXD >> до 19 пина
RXD >> не подключал
Подключення Мега до L298N:
ENA >> до Д9
In1 >> до Д6
In2 >> до Д2
In3 >> до Д4
In4 >> до Д3
ENB >> до Д5
GND >> до GND
5в >> до 5в
int val;
int enA = 9;
int in1 = 6;
int in2 = 2;
int in3 = 4;
int in4 = 3;
int enB = 5;
void setup()
{
Serial1.begin(9600);
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(13, OUTPUT);
pinMode(enB, OUTPUT);
}
void acc(){
for(int i=0; i<256; i++){
analogWrite(enB, i);
analogWrite(enA, i);
delay(40);
}
}
void dec(){
for(int i=255; i>0; --i){
analogWrite(enB, i);
analogWrite(enA, i);
delay(40);
}}
void(* resetFunc) (void) = 0;
void loop()
{
if (Serial1.available()) // проверка поданных команд
{
val = Serial1.read();
if (val == '8')
{
digitalWrite(13, HIGH);
digitalWrite(in1,LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH);
acc();
dec();
delay(40);
}
if (val == '4')
{
digitalWrite(13, HIGH);
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3,LOW);
digitalWrite(in4, HIGH);
acc();
dec();
delay(40);
}
if (val == '6')
{
digitalWrite(13, HIGH);
digitalWrite(in1,LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
acc();
dec();
delay(40);
}
if (val == '2')
{
digitalWrite(13, HIGH);
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4, LOW);
acc();
dec();
delay(40);
}
if(val =='1')
{
resetFunc();
}
}
}
вот если что ссылка на гугл диск из изображением:
https://drive.google.com/drive/u/0/folders/1jv2ChBbfHb0L0RCttW1MjeegEqy7mvmd
Ссылку смотрю ты читал по диагонали. Serial1 - это 18,19 пины
Ааа.. блин вот я дурак
теперь заработало
к каким пинам подключал?
Тх до 0
а Rx не подключал
В качестве компенсации(я там немного накосячил)
int val; void setup() { Serial1.begin(9600); pinMode(13, OUTPUT); // 13 пин – светодиод, объявляется как выход } void loop() { if (Serial1.available()) // проверка поданных команд { val = Serial.read(); if (val == '8') {digitalWrite(13, HIGH);} // при 1 включается светодиод if (val == '2') {digitalWrite(13, LOW);} // при 0 выключается светодиод } }
И еще один совет - пин Rx блютуза или не подключай вообще(если он у тебя нигде не используется) или подключи через делитель иначе есть шанс сжечь модуль. У него уровни 3,3В. С меги прилетает 5
Отключил Rx и загрузил твой код из отпечаткой тож розобрался
пишу в монитор портов и через телефон "1" ничего не происходить пишу тож "8" тож ничего
Cossack пише:а если подключить VCC до 3.3в ?
тогда можно будет подключать Rx(Мы на парах не проходили просто блютуз и так далее тому для меня очень сложно разобраться)
Нет. Если у меги будет питание 3,3 - тогда можно. Rx у тебя нигде не задействован(по крайнее мере в том коде что ты выложил) поэтому просто не подключай его. Или ты собираешься что-то отправлять на телефон по синезубу?
з/ы у мну там еще одна очепятка - val = Serial1.read();
ага то есть Rx отвечает за отправку на телефон
а TXD з телефона на пк
Верно?
В качестве компенсации(я там немного накосячил)
И еще один совет - пин Rx блютуза или не подключай вообще(если он у тебя нигде не используется) или подключи через делитель иначе есть шанс сжечь модуль. У него уровни 3,3В. С меги прилетает 5
а если подключить VCC до 3.3в ?
тогда можно будет подключать Rx
(Мы на парах не проходили просто блютуз и так далее тому для меня очень сложно разобраться)
Cossack пише:Прочитал ну если коротко про меня то я накосячил из виводами да?
Ну если бы не накосячил то не было бы этой темы. Еще раз прочитай про serial и посмотри как он объявляется для меги и как он объявлен у тебя в тестовом коде. И второй момент - у тебя есть два устройства. У каждого есть два вывода: вход Rx и выход Тх. Подумай как их нужно соединить чтобы устройства могли общаться между собой.
собрал макет для теста работает или нет оно.
Подключение блютуза Module HC-06 до Мега:
VCC >> до 5в
GND >> до земли
TXD >> до 0 пина
RXD >> до 1 пина
прикол в том что работает если написать "1" в Мониторе портов то диод загорится а если написать в блютуз терминале на телефоне то нет ответа от меги хоть телефон нашел его и подключился
#include <SoftwareSerial.h>
int val;
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT); // 13 пин – светодиод, объявляется как выход
}
void loop()
{
if (Serial.available()) // проверка поданных команд
{
val = Serial.read();
if (val == '1') {digitalWrite(13, HIGH);} // при 1 включается светодиод
if (val == '0') {digitalWrite(13, LOW);} // при 0 выключается светодиод
}
}
Cossack пише:Это в мегу
Почитай про Serial, особенно про мегу
https://doc.arduino.ua/ru/prog/Serial
Прочитал ну если коротко про меня то я накосячил из виводами да?
Хз почему но теория по ардуино мне сложно дается чем практика
Cossack пише:а как оно подключено я же фото прикрепил(для открытия надо нажать ПКМ открыть изображения в другой вкладке)
https://drive.google.com/file/d/16vGsC8ip2JeJAlPx5seT0KjJWu9TLqZ3/view?usp=sharingт.е. ты предлагаешь нам сидеть и догадываться что это за картинки, откуда они слизаны и рыться в интернетах чтобы догадаться где и какой пин на этих малюнках?
Эти схемы я делал в симуляции сам кроме схемы моторчиков.
НУ а если коротко то оно подключено так
Подключение NRF24L01 до Мега:
VCC >> до земли
GND >> до 3.3в
CE >> до 2 пина
SCK >> до 52 пина
CSN >> до 53 пина
MOSI(MO) >> до 51 пина
MISO(MI) >> до 50 пина
Подключение блютуза Module HC-06 до Мега:
VCC >> до 5в
GND >> до земли
TXD >> до 19 пина
RXD >> до 18 пина
подключение NRF24L01 до Нано:
GND >> до земли
CE >> до Д7
SCK >> до Д13
MISO(MI) >> до Д12
VCC >> до 3.3в
CSN >> до Д8
MOSI(MO) >> до Д11
Подключення Нано до L298N:
ENA >> до Д9
In1 >> до Д6
In2 >> до Д2
In3 >> до Д4
In4 >> до Д3
ENB >> до Д5
GND >> до GND
5в >> до 5в
Cossack пише:int val; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); // 13 пин – светодиод, объявляется как выход } void loop() { if (Serial.available()) // проверка поданных команд { val = Serial.read(); if (val == '8') {digitalWrite(13, HIGH);} // при 1 включается светодиод if (val == '2') {digitalWrite(13, LOW);} // при 0 выключается светодиод } }
Этот код ты заливал в мегу или в нану? Как подключал?
Если честно, мне уже надоедает все вытягивать клещами. Хочешь помощи - расписывай все подробно. Выше уже тебе сказали - за тебя все это собирать и проверять никто не будет потому чтоCossack пише:Если кому то надо
кроме тебя - никому не надо.
Это в мегу
а как оно подключено я же фото прикрепил(для открытия надо нажать ПКМ\ открыть изображения в другой вкладке)
Cossack пише:и сделал тест для диода что бы нажать вперед диод должен загореться.
Но и это не работаетПоказывай этот тест
з/ы и зачем ты на Меге, у которой 4 аппаратных сериала, используешь softserial? Легких путей не ищешь?
Я делал модель которую нашел на ютубе ток там замест блютуз управления использовали модуль двухосевой XY джойстик KY-023
int val;
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT); // 13 пин – светодиод, объявляется как выход
}
void loop()
{
if (Serial.available()) // проверка поданных команд
{
val = Serial.read();
if (val == '8') {digitalWrite(13, HIGH);} // при 1 включается светодиод
if (val == '2') {digitalWrite(13, LOW);} // при 0 выключается светодиод
}
}
Cossack пише:Если кратко то он должен был работать так:
А как работает на самом деле?
Ну по перших подключаю к телефону і нажимаю на кнопки але нічого не происходить не даю ни одного действия.
Потом сделал так отключил антену которая идет до нано
и сделал тест для диода что бы нажать вперед диод должен загореться.
Но и это не работает
Привіт), а де навчаєшся ?
Скажи в чом помилка ? бо ми не будемо збирати це все..звучить страшновато Тиш будеш провіряти на свої моделі.. і сам осмислювати в чому нам для тебе підсказати..
Привіт навчаюсь у Полтаві в "Полтавський політехнічний фаховий коледж Національного технічного університету "Харківський політехнічний інститут" а якщо коротко в (ВСП "ППФК НТУ "ХПІ")
Спеціальність 123: Компютерна інженарія
Іду на Системного адміністратора
3 курс із 4
Це моя курсова робота просто в якій у мене по бажанню є створення моделі
Всім привіт я студент колледжа і я роблю робочу модель дрона але під час тесту кодов ничего не происходить.
Код пишется у меня на 2 ардуино на нано и на Мега 2560.
Если кратко то он должен был работать так:
Мы подключаемся через блютуз к телефону и запускаем предложение "Bluetooth RC Controller" сигнал из телефона передается до Мега и тот сигнал передается до NRF24L01 до другого NRF24L01 на Нано а потом идет до L298N по и управляем двухколёсным дроном.
Кажу сразу это мой первый такой большой проект потому много чего не знаю как и что делать.
Если кому то надо то вот что входить в саму схему:
плата L298N
Bluetooth Module HC-06
Arduino Nano v3.0
NRF24L01
Arduino MEGA2560 R3
Два моторчика
вот если что ссылка на гугл диск из изображением:
https://drive.google.com/drive/u/0/folders/1jv2ChBbfHb0L0RCttW1MjeegEqy7mvmd
Эти схемы я делал в симуляции сам кроме схемы моторчиков.
НУ а если коротко то оно подключено так
Подключение NRF24L01 до Мега:
VCC >> до земли
GND >> до 3.3в
CE >> до 2 пина
SCK >> до 52 пина
CSN >> до 53 пина
MOSI(MO) >> до 51 пина
MISO(MI) >> до 50 пина
Подключение блютуза Module HC-06 до Мега:
VCC >> до 5в
GND >> до земли
TXD >> до 19 пина
RXD >> до 18 пина
подключение NRF24L01 до Нано:
GND >> до земли
CE >> до Д7
SCK >> до Д13
MISO(MI) >> до Д12
VCC >> до 3.3в
CSN >> до Д8
MOSI(MO) >> до Д11
Подключення Нано до L298N:
ENA >> до Д9
In1 >> до Д6
In2 >> до Д2
In3 >> до Д4
In4 >> до Д3
ENB >> до Д5
GND >> до GND
5в >> до 5в
код на Mega:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <SoftwareSerial.h>
#include <Arduino.h>
SoftwareSerial Peredacha(19,18);
RF24 radio(52, 51); // CE, CSN
const byte address[6] = "00002";
char data;
void setup() {
Peredacha.begin(9600);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
void loop() {
if (Peredacha.available() > 0)
{
data = Peredacha.read();
}
//int values[1] = {data};
radio.write(&data, sizeof(data));
}
Код на Nano:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define enA 9
#define in1 6
#define in2 2
#define in3 4
#define in4 3
#define enB 5
char rx;
char motorspeed;
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00002";
void setup() {
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
}
void loop() {
if (radio.available())
{
radio.read(&rx, sizeof(rx));
}
if (rx = 8)
{
digitalWrite(in1,LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
motorspeed = 100;
}
else if (rx = 2)
{
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
motorspeed = 100;
}
else if (rx = 6)
{
digitalWrite(in1,LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
motorspeed = 100;
}
else if (rx = 4)
{
digitalWrite(in1,HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
motorspeed = 100;
}
else
{
motorspeed = 0;
}
if(rx = 1)
motorspeed = 0;
analogWrite(enA,motorspeed);
analogWrite(enB,motorspeed);
}
Cossack пише:г0сть пише:Что из фразы вместо кроны непонятно?
а еще один вопрос минус впихать в землю ?
да
спасибо !!
все работает проблема была в питании
Cossack пише:из зарядки проводом впихнуть в розьем в ардуино нано там где под подключать провод для прошивки верно ?
Что из фразы вместо кроны непонятно?
а еще один вопрос минус впихать в землю ?
Cossack пише:из зарядки проводом впихнуть в розьем в ардуино нано там где под подключать провод для прошивки верно ?
Что из фразы вместо кроны непонятно?
Наверно то как именно впихнуть у меня ток есть USB кабель
Cossack пише:Ну туда идет батарека крона 9 вольт
куда - "туда"?
Возьми для начала зарядку от мобильника и воткни вместо кроны. Полярность тока не перепутай!
из зарядки проводом впихнуть в розьем в ардуино нано там где под подключать провод для прошивки верно ?
Cossack пише:Ну туда идет батарека крона 9 вольт
куда - "туда"?
Возьми для начала зарядку от мобильника и воткни вместо кроны. Полярность тока не перепутай!
Туда это на Драйвер двигателя L298N
Cossack пише:Нормальним это каким ?
Максимум сколько вольт акумулятор или матарейка можно взять ?
Зависит от рабочего напряжения и тока потребления твоих моторов - см. ответ #5.
p/s мотор напрямую от твоей кроны работает?
Ну туда идет батарека крона 9 вольт
еще 5 вольт от ардуино нано
Что бы показалась фотка (ПКМ//Открыть изображение в новой вкладке)
Cossack пише:Не знаю как но заработало ток не так гладко как казалось мне.
Что би он закрутился сам надо было еще самом руками допомогти за крутитися и то прокрутилось секунт 10 и зупинилосьсказано же было
гость пише:Запитай моторы от нормального БП, а не от батарейки
Нормальним это каким ?
Я не знаю каким именно запитать
Максимум сколько вольт акумулятор или матарейка можно взять ?