Призрачный Blink
- Войдите на сайт для отправки комментариев
Втр, 26/04/2016 - 22:36
Подскажите пожалуйста, второй раз сталктваюсь с непонятным приколом ардуино о котором ни разу не слышал не я не первые 10 страниц гугла) Есть ардуино нано с залитым скетчем который нормально работает от внешнего питания или при питании от ЮСБ без подключенных линий данных (DATA + DATA -) но стоит подключить эти линии данных как мой скетч не загружается(ни единого намёка на его присутствие), но судя по светодиоду 13 пина загрузился и работает "Blink. Такой же прикол у меня есть на Ардуино мега))))
А что за линии DATA + DATA -? Что за скетч? Что за подключение? Если ответы на все этти вопросы "ХЗ", то и ответ на Ваш основной вопрос точно такой же.
Может быть, какая-то злая программа в компе шлёт злой reset постоянно?
Подключение 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
Схема используется для измерения емкости аккумулятора, но мне кажется что к глюку arduino врятли имеет отношение.
Забыл подпраить R7 R8, они 220 и 680 ом для получения 5 вольт для ардуино и дисплея
И где тут Ваши DATA+ и DATA- я всё никак не пойму к чему Вы про них писали
Если подключить только питание работает мой скетч.
Если подключить полность и питание и линии данных загружается "blink"
Так. А этот USB Вы пихаете в штатный ардуиновский слот для USB?
Ну, смотрите, скечт Вы через него же заливаете? Заливается? Значит, работает.
А какие данные и какой именно программой Вы собираетесь туде передавать "когда не работает"?
Поймите, я никак не могу понять что именно Вы туда подключаете и зачем. Можете объяснить?
Если подключить только питание работает мой скетч.
Если подключить полность и питание и линии данных загружается "blink"
После отключения DATA блинк и остаёся? Может быть, это не блинк, а загрузчик мигает светодиодом? Кто-то из компа чего-то шлёт резетное - судя по второй плате, которая тоже страдает от получения DATA.
Буквально вчера проверял - если МК подключен к ПК с включенным IDE - МК ботается в бутлоадере пока не выключишь IDE.
При этом именно бутлоадер и мигает 13 ногой.
Как только закроешь IDE - запускается сетап и далее луп.
Если включить IDE - МК опять уходит в бутлоадер и начинает радостно дрыгать 13 ногой ожидая загрузку скетча.....
после загрузки скетча он нормально запускается.
В доках тоже нигде не нашел, разобрался случайно, после чего полдня изучал сырцы бутлоадера.....
Буквально вчера проверял - если МК подключен к ПК с включенным IDE - МК ботается в бутлоадере пока не выключишь IDE.
При этом именно бутлоадер и мигает 13 ногой.
Как только закроешь IDE - запускается сетап и далее луп.
Если включить IDE - МК опять уходит в бутлоадер и начинает радостно дрыгать 13 ногой ожидая загрузку скетча.....
после загрузки скетча он нормально запускается.
В доках тоже нигде не нашел, разобрался случайно, после чего полдня изучал сырцы бутлоадера.....
Проверил. у меня также))) Всем спасибо )))
Охх, блин, так вот оно что. А я то думал Вы какие-то данные туда передавать откуда собираетесь и всё вязался, куда подключил, что за данные :))))) А оно всё проще оказалось. Ну, и слава Богу! Удачи!
А кто-то в первом же своём посте предположил, что кто-то из компа держит reset и мигает бутлоадер... И потом ещу дополнил эту теорию вариантом проверки... :)
Если у Вас стоит IDE 1.6.8 - то в нем есть какая то проблема .. он запоминает последний скетч который вы записали.. в вашем случае это был BLINK.. и когда вы подключаете то у вас новый скетч работает пока подключено к компу.. отключаете от компа и всё пропадает.
Поставьте версию IDE 1.6.6 - и будет вам счастье.
Если у Вас стоит IDE 1.6.8 - то в нем есть какая то проблема .. он запоминает последний скетч который вы записали.. в вашем случае это был BLINK.. и когда вы подключаете то у вас новый скетч работает пока подключено к компу.. отключаете от компа и всё пропадает.
Поставьте версию IDE 1.6.6 - и будет вам счастье.
Категорически не согласен - т.к. в моем случае я блинк загружал полгода назад ;) а рабочем скетче 13 лапа не используется.
Исходя из найденных в инете намеков и текста бутлоадера могу с уверенностью сказать что дергает 13ю лапу именно бутлоадер когда мониторит порт и ждет загрузку скетча.
Ну в моем случае.. при проверке на нескольких компьютерах... всё уперлось в версию IDE ... "глючный" NANO абсолютно отказывался работать на 1.6.8. и отлично функционировал на 1.6.6.
Снос и переустановка 1.6.8 результата не давали... и главноый вопрос "а ктоже подменил бутлоадер"??? :)))