Хочу передалать радио машинку на arduino, подбираю компоненты

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

что за новая микросхема? нифига не понял

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

что за новая микросхема? нифига не понял

SI9986. под нее переделываю.

В данный момент к ардуино подключено: блютус, серво. Когда Андроид подключается, серво начинает дергать

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

причем SI9986 и питание

у тебя от чего питается серво и блютуз?

LYNX
Offline
Зарегистрирован: 21.03.2014

не причем. лирическое отступление - для чего переделывал

от 2 Li-In. Далее стабилизатор LM7805. Он него: ардуино, блутус, серво, конденсатор 470uf

LYNX
Offline
Зарегистрирован: 21.03.2014

От стабилизатора идет стабильные 5.05В

Только на серво +/- 0.2В при включенном блютус. Именно не питание серво, а сигнал ШИМа. При том менял ногу шима и тож самое

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

давай фото чего наваял

для сервы лучше отдельный стабилизатор

 

LYNX
Offline
Зарегистрирован: 21.03.2014

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так машинка уже ездит или нет? не понял

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

так машинка уже ездит или нет? не понял

В понедельник драйвер поставлю, будет издить. Без него что подключено работает.

Пока интересует проблема блютус

LYNX
Offline
Зарегистрирован: 21.03.2014

Мне б хотя бы примерно знать куда копать.

Серва точно не причем. т.к. именно сигнал не стабильный (+/- 0.2В)

Перепробовать все PWM разве что...

LYNX
Offline
Зарегистрирован: 21.03.2014

Разбор кода показал:

Если подключиться к блутус, и в коде будет строчка "BlueTooth.begin(9600)", то серва будет дергаться. Может сам модуль глючит?

#include <SoftwareSerial.h>
#include <Servo.h>

SoftwareSerial BlueTooth(12,13); // RX, TX
Servo Servo_Rotation;

//настройки при нажатии кнопки сброс
void setup() {
  BlueTooth.begin(9600);

  Servo_Rotation.attach(5);
}

void loop() {
  Servo_Rotation.write(99);
}

 

LYNX
Offline
Зарегистрирован: 21.03.2014

На отдельное питание синий зуб посадить?

Питание после стабилизатора: 5.06В

Питание на Серво: 5.06В

Сигнал ШИМ 0.39-0.42В

Замена блютус не дала ничего.

Значит только стабилизатор, но не факт. т.к. подключил питание от UART - дергание все равно осталось

 

LYNX
Offline
Зарегистрирован: 21.03.2014

Решил вообще обойтись без #include <SoftwareSerial.h> и читать сериал. Дерганий не было

LYNX
Offline
Зарегистрирован: 21.03.2014

Тестирую код:

void setup() {
  Serial.begin(9600);
}

void loop() {
  while (Serial.available()) {
    switch (Serial.read()) {
        case '1':
          analogWrite(10, 0);
        case '2':
          analogWrite(10, 255);
        case '3':
          analogWrite(11, 0);
        case '4':
          analogWrite(11, 255);
    }
 }
}

но по напряжению на OUTa и OUTb примерно +/-0.02В

При этом на шим INa и INb пробовал комбинации 0 и 5В

Неверно подключил SI9986? (наоборот?)

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm, Помоги с распиновкой Si9986 :) осталось только с ней вроде проблема

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

схема правильная, управляешь неправильно

#define PWM 10
#define DIR 11

void setup(){
  pinMode(PWM, OUTPUT);
  pinMode(DIR, OUTPUT);
}
void loop(){
  for(byte i=0;i<256;i++){
    digitalWrite(DIR, 1); //вперед
    analogWrite(PWM, i);
    delay(50);
  }
  for(byte i=0;i<256;i++){
    digitalWrite(DIR, 0); //назад
    analogWrite(PWM, i);
    delay(50);
  }
}
  //при движении вперед 0 ШИМ-мин. скорость, 255-макс. скорость
  //при движении в обратную сторону макс скорость при 0 ШИМ
  //а минимальная при 255 шим

 

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

схема правильная, управляешь неправильно

#define PWM 10
#define DIR 11

void setup(){
  pinMode(PWM, OUTPUT);
  pinMode(DIR, OUTPUT);
}
void loop(){
  for(byte i=0;i<256;i++){
    digitalWrite(DIR, 1); //вперед
    analogWrite(PWM, i);
    delay(50);
  }
  for(byte i=0;i<256;i++){
    digitalWrite(DIR, 0); //назад
    analogWrite(PWM, i);
    delay(50);
  }
}
  //при движении вперед 0 ШИМ-мин. скорость, 255-макс. скорость
  //при движении в обратную сторону макс скорость при 0 ШИМ
  //а минимальная при 255 шим

 

Модифицировал код

 

На пине 10 и 11, напряжение меняется 0 и 5В поочередно

На OUT а и б значение 0

#define PWM 10
#define DIR 11

void setup(){
  pinMode(PWM, OUTPUT);
  pinMode(DIR, OUTPUT);
}
void loop(){
  digitalWrite(DIR, HIGH); //вперед
  analogWrite(PWM, 255);
  delay(2000);
  
  digitalWrite(DIR, LOW); //назад
  analogWrite(PWM, 255);
  delay(2000);
  
  digitalWrite(DIR, HIGH); //вперед
  analogWrite(PWM, 0);
  delay(2000);

  digitalWrite(DIR, LOW); //назад
  analogWrite(PWM, 0);
  delay(2000);  
}

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

микруха не греется?

питаешь от чего?

земли SI9986 и арудины объеденил?

 

LYNX
Offline
Зарегистрирован: 21.03.2014

Землю объеденина вся

Микруха не греется, либо не заметил

Питание через стабилизатор 5В

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

нарисуй схему

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

нарисуй схему

Хорошо, сегодня постараюсь сделать :) Не знаешь реально ли выпаять стабилизатор 5В в мат плате. или его там нет?

Заранее тебе за все спасибо :))

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хз. может и есть. но вроде нет. выпаять реально горячим воздухом

зачем тебе питать драйвер мотора через линейный стабилизатор. это очень нелогично

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

хз. может и есть. но вроде нет. выпаять реально горячим воздухом

зачем тебе питать драйвер мотора через линейный стабилизатор. это очень нелогично

Вот схема, извеняюсь за качество

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

))) использовани библиотеки servo кое что меняет в работе ардуины в плане шим

http://arduino.ru/Reference/Library/Servo

Mega. На контроллерах отличных от Mega использование библиотеки отключает возможность использовать выходы 9 и 10 в режиме ШИМ даже если привод не подключен к этим выводам

для шим испjльзуй не 10 а 11 пин, для DIR 10

точка первого пина нарисована неправильно

фото ужасное

скачай программу sPlan и нарисуй нормально. да хоть в паинте но чтобы все читалось

LYNX
Offline
Зарегистрирован: 21.03.2014

Спасибо большое. Завтра перепаяю

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да не нужно перепаивать.  в программе просто измени

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

да не нужно перепаивать.  в программе просто измени

Пины сменил. Теперь от 0 до -1В

Точка на схемке внизу справа

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

что это значит 0 и -1?

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

что это значит 0 и -1?

Напряжение на моторчика от -1В до 0, ну или 0..1В

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а он крутится?

вместо измерения на моторчике, где шим и смотреть нужно не вольтметром а осциллографом, посомтри питания на микросхеме. у тебя через стабилизатор питается ведь

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

а он крутится?

вместо измерения на моторчике, где шим и смотреть нужно не вольтметром а осциллографом, посомтри питания на микросхеме. у тебя через стабилизатор питается ведь

осфилографа нет.

питание на схемку 5В

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

жду схему

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

жду схему

Вот

vvadim
Offline
Зарегистрирован: 23.05.2012

Уже давно убедился, что однозначно ПРАВИЛЬНЕЙ  подключать серву от отдельного стабилизатора 6 (шесть) вольт.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

драйвер лучше питать от аккумулятора сразу, просто шимом ограничить

серву запитать от стабилизатора

а все остальное от ардуины, ардуине подать питание на vin

LYNX
Offline
Зарегистрирован: 21.03.2014

На Arduino vin(raw) и +5в не одно и тоже?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

нет/ vin для внешнего патиня от 7 до 12В кажется. в про мини вроде raw как раз называется

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

нет/ vin для внешнего патиня от 7 до 12В кажется. в про мини вроде raw как раз называется


Т.е. на raw и драйвер подаем от батарейки. Серво от стабилизатора как сейчас?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну да. тогда и должны по идее пропасть глюки

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

ну да. тогда и должны по идее пропасть глюки

Питайние схемки 8.25В

Пин10 0..5В

Пин11 0..5В

Пин10 - Пин11   -5..0..5В

OUTa - OUTb  0В

 

Моторчик крутится если подсоединить к батарейки. Если к Пин10 - Пин11 нет :)

Может кверх нога подключил?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да ты без шим на управляющие пины просто подай 1 и 0. потом наоборот. должно крутится сначала в одну потом в другую на макс. скорости

если нет или с распиновкой/стороной ошибся, или микруха дохлая

LYNX
Offline
Зарегистрирован: 21.03.2014

Такой?

#define PWM 11
#define DIR 10

void setup(){
  pinMode(PWM, OUTPUT);
  pinMode(DIR, OUTPUT);
}
void loop(){
  digitalWrite(DIR, HIGH); //вперед
  analogWrite(PWM, LOW);
  delay(5000);
  
  digitalWrite(DIR, LOW); //назад
  analogWrite(PWM, HIGH);
  delay(5000);  
}

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да такой. попробуй пины поменять

хотя в коде чтобы не перегружать мотор и драйвер перед сменой направления движения подать 1 и 1 или 0 и 0 на 100 милисекунд например. тогда мотор сначала остановится (ну или почти остановится) а потом смена направления вращения

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

да такой. попробуй пины поменять

хотя в коде чтобы не перегружать мотор и драйвер перед сменой направления движения подать 1 и 1 или 0 и 0 на 100 милисекунд например. тогда мотор сначала остановится (ну или почти остановится) а потом смена направления вращения

Не крутится. Попробовую перевернуть драйве. наверно распиновка наоборот

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хз. странно

уже много раз эту микруху использовал. ни разу проблем не было

LYNX
Offline
Зарегистрирован: 21.03.2014

Кверх тормашкой поставил, не работало. Поставил другую правильно - заработано. Осталось с кодом наколдовать  :)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

внимательнее. там микруха наверно сдохла уже

LYNX
Offline
Зарегистрирован: 21.03.2014

jeka_tm пишет:

внимательнее. там микруха наверно сдохла уже

Еще есть пару запасных :)

Все равно спс за помощь

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

главное получилось. давай допиливай и видео выложи

LYNX
Offline
Зарегистрирован: 21.03.2014

Появились вопросы:

1. Питание на ардуино надо подавать на RAW от батареек и 5В от стабилизатора, правильно понял?

2. Сильно греется чип Атмел - почти невозможно держать палез (вроде при некоторых комбинациях кода)

3. Вопросы по коду

#define PWM 11
#define DIR 10

void setup(){
  pinMode(PWM, OUTPUT);
  pinMode(DIR, OUTPUT);
}
void loop(){
  digitalWrite(DIR, 1);
  analogWrite(PWM, 126);
}

3.1. PWM 11, DIR 10, DIR = 1 - движение вперед наполовину скорости

3.2. PWM 11, DIR 10, DIR = 0 - движение вперед наполовину скорости

3.3. PWM 10, DIR 11, DIR = 1 - движение вперед полная скорость

3.4. PWM 10, DIR 11, DIR = 0 - не двигается