Работает при IDE, а сам не запускается.

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Помогите новичку..... При заливке скетча-примера через IDE все ОК. А вот мой при заливке работает, а если переподключить питание - то сам не запускается. Т.е. в loop() даже мигания нет. В каком участке кода искать причину? У меня есть инкюд одной библы, как она может по-разному отрабатываться при компиляции? 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Куда и какое вы подключаете питание?
Скорее всего проблема аппаратная - от USB питание есть, а от встроенного стабилизатора нет.

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Плата Nano, питание через МИни ЮСБ. Проблема точно в коде, потому что типовые примеры запускаются в обоих случаях (т.е. когда открыта среда и когда плата запитана от автономного ИП). А мой код - только при разработке, т.е. открытой среде... 

Добавлю, что я перезашивал загрузчик и мог выстаить бит отвечающий за область запуска не тот. Но ведь, повторяю, типовые примеру работают отлично.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Ну так код, наконец, покажете или надо за картами Таро идти?

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015
#include "TM1637.h"
#define CLK 4//pins definitions for TM1637 and can be changed to other ports    
#define DIO 3
TM1637 tm16371(CLK, DIO);
int numberEnc; //счетчик энкодера
const int Biper = 14;
 
void setup() {
tm16371.set();
tm16371.init(); 
tm16371.display(1,5); // выводится только при IDE!! }

void loop() { 
digitalWrite(SvetoKlik, HIGH); //выводится только при IDE!! 
delay(1000); 
digitalWrite(SvetoKlik, LOW); 
delay(1000); }

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Что то вы мутите...
SvetoKlik где объявлен?
Почему "моргальный" пин не установлен как выход?
Откройте стандартный blink и посмотрите, как там.

И тут хорошо бы посмотреть.

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Я упростил код, показав, что проблема в подлючении библы... Она "вешает" цикл и сама не выводит на индикатор ничего. М.б. зависает на setupе.  Как вычищать такое? В чем отличие запуска скетча сразу после компиляции и наличии связи с компом,  от автономной работе платы?

По вставке кода учту, извините...

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015
tm16371.display(1,5);

если ардуина на чипе 328 то pin 1 используется для serial

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

На выводе 5В при отключенном ЮСБ и подключенном БП какое напряжение?

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Valera19701 пишет:

tm16371.display(1,5);

если ардуина на чипе 328 то pin 1 используется для serial

1) Да, я с проблемой того, что обвязка/компоненты платы, связанные с 1 пином, не дают прошивать ее знаком. Поэтому 1 пин ни с чем не соединен. 2) типовые библы типа Блинк работают ОК. 3) Как все работает? После уомпиляции код заливается ПОСЛЕ загрузчика. И этот код УЖЕ содержит все нужные функции библиотек. Так? Передача идет сразу на setup и..... в случае успешного его выполнения(???) далее на луп. Так? 

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

OlegK пишет:

На выводе 5В при отключенном ЮСБ и подключенном БП какое напряжение?

Итак, по шагам: При ИДЕ плата подключена и запитана через МИНИ юсб. ПРошили, сразу все работает. Выдернули ЮСБ, все погасло, воткнули обратно, зеленый светодиод на плате помигал и.... тишина. Нет ни на индикаторе (1 - место, 5 - цифра для вывода), ни мигания внешнего светодиода. 

В AVR есть вектор запуска, что ли... При включении, при просыпании и т.п., но я полный чайник в запусках, и главное - не понимаю как это искать.... Могу посмотреть фюзы...Есть смысл? 

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Запустил пример типовой библы дисплея TM1637. ClockDisplay. Работает, но тоже НЕ запускается после переподключения! Индикатор управляется по I2C. 

Еще опыт: внешний БП на 5 вольт паралелльно ЮСБ шнурку, тоже с 5 в. Заливаю, ничего не работает. Выдергиваю ЮСБ, снова вталкиваю, мигание на плате, т.к. подключается СОМ порт, логично, и... все работает.  Что за ф...я? Т.е. как бы вообще все пишится не во Флеш что-ли? Как обесточишь, так все стирается..... Но тоже не верно,т.к. Блинк работает.

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Заработало нормально, когда сменил библиотеку. Но удовлетворенности - никакой, потому что надо учиться все понимать, а не методоТыкать)))

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Поторопился((( Опять тот же косяк... Кто может помочь все же?

Четкий вопрос: В чем отличие запуска платы/скетча от питания по МИНИ ЮСБ и от внешнего  БП (на Vin 5 В)?  

vk007
Offline
Зарегистрирован: 16.06.2015

dim3740 пишет:

В чем отличие запуска платы/скетча от питания по МИНИ ЮСБ и от внешнего  БП (на Vin 5 В)?  

От USB напряжение идет напрямую (ну почти) на "+5V", а если напряжение подавать на вывод "Vin", то до "+5V" оно будет пробираться через микросхему стабилизатора. Но поскольку на стабилизаторе падает некоторая часть подаваемого напряжения, то +5В от внешнего БП в таком случае будет маловато - нужно как минимум 6В (еще лучше 7В). Если БП выдает хорошие стабильные 5В, то их можно сразу подать на "+5V".

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Спасибо. Я до этого так и делал, подавая 5 в на вход "+5". Потом, в связи с сабжем, почитал, что это все же ВЫХОД внутренного стабилизатора и НЕ рекомендуется подавать на него снаружи. В любом случае, короче, я делал так и проблема была и при в этом случае.....

Что такое процесс соединения с виртуальным ЮСБ (COM) портом в части влияния на запуск?

а) МИНИ ЮСБ подсоединяется БЕЗ открытой IDE. б) МИНИ юсб подсоединяется когда открыта среда, и она ищет ком порт - мигает 7 раз зеленый светодиод в) уже есть другие 5 вольт, и тогда "паралельное" запитка 2- источников.

далее: что значит как пишут "надо несколько секунд для запуска скетча, т.к. отрабтывается загрузчик и мигает светодиод". Мигание - разве это не соединение с компортом?

И еще: Скажем если шьем программтором, то там ресет идет через него. Нет ли некого ресета, когда соединяется именно через ЮСБ, т.е. сама ИДЕ или винда что-то шлет при инициализации порта и запуск устойчивее?

dim3740
dim3740 аватар
Offline
Зарегистрирован: 25.03.2015

Кому нужно будет: вроде "вылечил" RC цепочкой на вход Reset платы. Будем тестить дальше.... 

Afanasy
Offline
Зарегистрирован: 04.02.2021

dim3740 пишет:

Помогите новичку..... При заливке скетча-примера через IDE все ОК. А вот мой при заливке работает, а если переподключить питание - то сам не запускается. Т.е. в loop() даже мигания нет. В каком участке кода искать причину? У меня есть инкюд одной библы, как она может по-разному отрабатываться при компиляции? 

Все верно люди знающие говорят о недостаточном напряжении на Vin

У меня была такая же проблема  (Nano) и я был уверен, что 5В в аккурат должно приходить на Vin чтобы все было по фэн-шуй!!! 

Но оказалось, что для стабильной работы Nano нужно подавать больше 5 В (у меня нормально работает от 6 В) .

Почему? Не знаю ! Думаю что действительно это связано с падением напряжения после внутреннего стабилизатора.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Afanasy пишет:

Но оказалось, что для стабильной работы Nano нужно подавать больше 5 В (у меня нормально работает от 6 В) .

Почему? Не знаю !

А что вольтметры уже запретили?

И читать дэйташиты - тоже?

b707
Offline
Зарегистрирован: 26.05.2017

Afanasy пишет:

Почему? Не знаю !

потому что книжки надо читать! 5вольт подаются на пин 5v, а на VIN надо больше 6-6.5

Kakmyc
Offline
Зарегистрирован: 15.01.2018

b707 пишет:

потому что книжки надо читать! 5вольт подаются на пин 5v, а на VIN надо больше 6-6.5

В даташите оригинала четко обозначено Vin=7...12V