Призрачный Blink

alex0
Offline
Зарегистрирован: 14.12.2015

Подскажите пожалуйста, второй раз сталктваюсь с непонятным приколом ардуино о котором ни разу не слышал не я не первые 10 страниц гугла) Есть ардуино нано с залитым скетчем который нормально работает от внешнего питания или при питании от ЮСБ без подключенных линий данных (DATA + DATA -) но стоит подключить эти линии данных как мой скетч не загружается(ни единого намёка на его присутствие), но судя по светодиоду 13 пина загрузился и работает "Blink.  Такой же прикол у меня есть на Ардуино мега))))

 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А что за линии DATA + DATA -? Что за скетч? Что за подключение? Если ответы на все этти вопросы "ХЗ", то и ответ на Ваш основной вопрос точно такой же.

faeton
faeton аватар
Offline
Зарегистрирован: 21.03.2016

Может быть, какая-то злая программа в компе шлёт злой reset постоянно?

alex0
Offline
Зарегистрирован: 14.12.2015

Подключение USB проводом от внешнего HDD 

Подключение USB состоит из четерех проводов 5V D+ D- GND

Вот скетч, постоянно подвисает через минуту работы независимо от входных данных

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

byte c1cur = 7;
byte c2cur = 6;
byte c1vol = 1;
byte c2vol = 0;
byte beeper = 9;
float c1current = 0;
float c2current = 0;
float c1voltage = 0;
float c2voltage = 0;
float c1capacity = 0;
float c2capacity = 0;
int sec = 1000;
unsigned long lastMillis = 0;
unsigned long cha1mill = 0;
unsigned long cha2mill = 0;


LiquidCrystal_I2C lcd1(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Назначаем дисплей

void setup() {

  lcd1.begin(20, 4); // Назначаем размер дисплея

  lcd1.setCursor(7, 1);
  lcd1.print("LOADING");

  pinMode(13, OUTPUT);
  pinMode(c1cur, INPUT);
  pinMode(c2cur, INPUT);
  pinMode(c1vol, INPUT);
  pinMode(c2vol, INPUT);
  pinMode(beeper, OUTPUT);
  digitalWrite(beeper, LOW);
  analogReference(INTERNAL);
}
void loop() {



  if (sec  < millis() ) {
    sec += 1000;

    c1current = analogRead(c1cur) * 1.074 * 3.6;
    c2current = analogRead(c2cur) * 1.074 * 3.6;
    c1voltage = analogRead(c1vol) * 1.074 * 48;
    c2voltage = analogRead(c2vol) * 1.074 * 48;

    c1capacity = c1capacity + c1current;
    c2capacity = c2capacity + c2current;

    lcd1.clear();

    lcd1.setCursor(0, 4);
    lcd1.print(analogRead(c1cur));
    lcd1.setCursor(7, 4);
    lcd1.print("mA");
    lcd1.setCursor(10, 4);
    lcd1.print(analogRead(c1vol));
    lcd1.setCursor(17, 4);
    lcd1.print("mV");



    lcd1.setCursor(0, 0);
    lcd1.print(c1current);
    lcd1.setCursor(7, 0);
    lcd1.print("mA");
    lcd1.setCursor(10, 0);
    lcd1.print(c1voltage);
    lcd1.setCursor(17, 0);
    lcd1.print("mV");
    lcd1.setCursor(0, 1);
    lcd1.print(c1capacity);
    lcd1.setCursor(7, 1);
    lcd1.print("mAH");

  }
}

Видео https://youtu.be/nOiPisZ-2UI

alex0
Offline
Зарегистрирован: 14.12.2015

 

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

Забыл подпраить R7 R8, они 220 и 680 ом для получения 5 вольт для ардуино и дисплея

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

И где тут Ваши DATA+ и DATA- я всё никак не пойму к чему Вы про них писали

alex0
Offline
Зарегистрирован: 14.12.2015

Если подключить только питание работает мой скетч.

Если подключить полность и питание и линии данных загружается "blink"

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так. А этот USB Вы пихаете в штатный ардуиновский слот для USB?

Ну, смотрите, скечт Вы через него же заливаете? Заливается? Значит, работает.

А какие данные и какой именно программой Вы собираетесь туде передавать "когда не работает"? 

Поймите, я никак не могу понять что именно Вы туда подключаете и зачем. Можете объяснить?

faeton
faeton аватар
Offline
Зарегистрирован: 21.03.2016

alex0 пишет:

Если подключить только питание работает мой скетч.
Если подключить полность и питание и линии данных загружается "blink"

 

После отключения DATA блинк и остаёся? Может быть, это не блинк, а загрузчик мигает светодиодом? Кто-то из компа чего-то шлёт резетное - судя по второй плате, которая тоже страдает от получения DATA.

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

Буквально вчера проверял - если МК подключен к ПК с включенным IDE - МК ботается в бутлоадере пока не выключишь IDE.

При этом именно бутлоадер и мигает 13 ногой.

Как только закроешь IDE - запускается сетап и далее луп.

Если включить IDE - МК опять уходит в бутлоадер и начинает радостно дрыгать 13 ногой ожидая загрузку скетча.....

после загрузки скетча он нормально запускается.

В доках тоже нигде не нашел, разобрался случайно, после чего полдня изучал сырцы бутлоадера.....

alex0
Offline
Зарегистрирован: 14.12.2015

at0mix пишет:

Буквально вчера проверял - если МК подключен к ПК с включенным IDE - МК ботается в бутлоадере пока не выключишь IDE.

При этом именно бутлоадер и мигает 13 ногой.

Как только закроешь IDE - запускается сетап и далее луп.

Если включить IDE - МК опять уходит в бутлоадер и начинает радостно дрыгать 13 ногой ожидая загрузку скетча.....

после загрузки скетча он нормально запускается.

В доках тоже нигде не нашел, разобрался случайно, после чего полдня изучал сырцы бутлоадера.....

 

Проверил. у меня также))) Всем спасибо )))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Охх, блин, так вот оно что. А я то думал Вы какие-то данные туда передавать откуда собираетесь и всё вязался, куда подключил, что за данные :))))) А оно всё проще оказалось. Ну, и слава Богу! Удачи!

faeton
faeton аватар
Offline
Зарегистрирован: 21.03.2016

А кто-то в первом же своём посте предположил, что кто-то из компа держит reset и мигает бутлоадер... И потом ещу дополнил эту теорию вариантом проверки... :)

zitadel007
Offline
Зарегистрирован: 24.04.2016

Если у Вас стоит IDE 1.6.8 - то в нем есть какая то проблема .. он запоминает последний скетч который вы записали.. в вашем случае это был BLINK.. и когда вы подключаете то у вас новый скетч работает пока подключено к компу.. отключаете от компа и всё пропадает.
Поставьте версию IDE 1.6.6 - и будет вам счастье.

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

zitadel007 пишет:

Если у Вас стоит IDE 1.6.8 - то в нем есть какая то проблема .. он запоминает последний скетч который вы записали.. в вашем случае это был BLINK.. и когда вы подключаете то у вас новый скетч работает пока подключено к компу.. отключаете от компа и всё пропадает.
Поставьте версию IDE 1.6.6 - и будет вам счастье.

Категорически не согласен - т.к. в моем случае я блинк загружал полгода назад ;) а рабочем скетче 13 лапа не используется.

Исходя из найденных в инете намеков и текста бутлоадера могу с уверенностью сказать что дергает 13ю лапу именно бутлоадер когда мониторит порт и ждет загрузку скетча.

zitadel007
Offline
Зарегистрирован: 24.04.2016

Ну в моем случае.. при проверке на нескольких компьютерах... всё уперлось в версию IDE ...  "глючный" NANO абсолютно отказывался работать на 1.6.8. и отлично функционировал на 1.6.6.
Снос и переустановка 1.6.8 результата не давали... и главноый вопрос "а ктоже подменил бутлоадер"??? :)))