Ви не увійшли.
Сторінки 1

Всім привіт я студент колледжа і я роблю робочу модель дрона але під час тесту кодов ничего не происходить.
Код пишется у меня на 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 (2022-04-19 23:53:50)
Неактивний

Если кратко то он должен был работать так:
А как работает на самом деле?

Привіт), а де навчаєшся ?
Скажи в чом помилка ? бо ми не будемо збирати це все..звучить страшновато  
  
  Тиш будеш провіряти на свої моделі.. і сам осмислювати в чому нам для тебе підсказати..
 Тиш будеш провіряти на свої моделі.. і сам осмислювати в чому нам для тебе підсказати..
Остання редакція zDimaby (2022-04-19 20:51:31)
Неактивний

Привіт), а де навчаєшся ?
Скажи в чом помилка ? бо ми не будемо збирати це все..звучить страшновато

Тиш будеш провіряти на свої моделі.. і сам осмислювати в чому нам для тебе підсказати..
 Привіт навчаюсь у Полтаві в "Полтавський політехнічний фаховий коледж Національного технічного університету "Харківський політехнічний інститут" а якщо коротко в (ВСП "ППФК НТУ "ХПІ")
Спеціальність 123: Компютерна інженарія 
Іду на Системного адміністратора 
3 курс із 4
Це моя курсова робота просто в якій у мене по бажанню є створення моделі
Остання редакція Cossack (2022-04-19 21:39:07)
Неактивний

Cossack пише:Если кратко то он должен был работать так:
А как работает на самом деле?
Ну по перших подключаю к телефону і нажимаю на кнопки але нічого не происходить не даю ни одного действия.
 Потом сделал так отключил антену которая идет до нано
и сделал тест для диода что бы нажать вперед диод должен загореться.
Но и это не работает
Неактивний

и сделал тест для диода что бы нажать вперед диод должен загореться.
Но и это не работает
Показывай этот тест
з/ы и зачем ты на Меге, у которой 4 аппаратных сериала, используешь softserial? Легких путей не ищешь? 

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 выключается светодиод
}
}Неактивний

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 пише: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 пише:Если кому то надо
кроме тебя - никому не надо.
Это в мегу
а как оно подключено я же фото прикрепил(для открытия надо нажать ПКМ\ открыть изображения в другой вкладке)
Неактивний

а как оно подключено я же фото прикрепил(для открытия надо нажать ПКМ открыть изображения в другой вкладке)
https://drive.google.com/file/d/16vGsC8ip2JeJAlPx5seT0KjJWu9TLqZ3/view?usp=sharing
т.е. ты предлагаешь нам сидеть и догадываться что это за картинки, откуда они слизаны и рыться в интернетах чтобы догадаться где и какой пин на этих малюнках?

Это в мегу
Почитай про 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 пише:Это в мегу
Почитай про Serial, особенно про мегу
https://doc.arduino.ua/ru/prog/Serial
Прочитал ну если коротко про меня то я накосячил из виводами да?
Хз почему но теория по ардуино мне сложно дается чем практика
Неактивний

Прочитал ну если коротко про меня то я накосячил из виводами да?
Ну если бы не накосячил то не было бы этой темы. Еще раз прочитай про serial и посмотри как он объявляется для меги и как он объявлен у тебя в тестовом коде. И второй момент - у тебя есть два устройства. У каждого есть два вывода: вход 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 выключается светодиод
}
}Неактивний

В качестве компенсации(я там немного накосячил)
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 блютуза или не подключай вообще(если он у тебя нигде не используется) или подключи через делитель иначе есть шанс сжечь модуль. У него уровни 3,3В. С меги прилетает 5
а если подключить VCC  до 3.3в ?
тогда можно будет подключать Rx
(Мы на парах не проходили просто блютуз и так далее тому для меня очень сложно разобраться)
Неактивний

а если подключить VCC до 3.3в ?
тогда можно будет подключать Rx(Мы на парах не проходили просто блютуз и так далее тому для меня очень сложно разобраться)
Нет. Если у меги будет питание 3,3 - тогда можно. Rx у тебя нигде не задействован(по крайнее мере в том коде что ты выложил) поэтому просто не подключай его. Или ты собираешься что-то отправлять на телефон по синезубу?
з/ы у мну там еще одна очепятка - val = Serial1.read();

Cossack пише:а если подключить VCC до 3.3в ?
тогда можно будет подключать Rx(Мы на парах не проходили просто блютуз и так далее тому для меня очень сложно разобраться)
Нет. Если у меги будет питание 3,3 - тогда можно. Rx у тебя нигде не задействован(по крайнее мере в том коде что ты выложил) поэтому просто не подключай его. Или ты собираешься что-то отправлять на телефон по синезубу?
з/ы у мну там еще одна очепятка - val = Serial1.read();
ага то есть Rx отвечает за отправку на телефон
а TXD з телефона на пк 
Верно?
Неактивний

В качестве компенсации(я там немного накосячил)
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" тож ничего
Неактивний

к каким пинам подключал?

Ссылку смотрю ты читал по диагонали. Serial1 - это 18,19 пины
Сторінки 1