не стабильный цикл

mitos
Offline
Зарегистрирован: 11.12.2011

у меня arduino mega.

подключил семисегментный индикатор и написал простой счетчик от 1 до 0.

залил скетч, работало не стабильно , не считало до 0 сбрасывалось раньше .

отключил от компа и запитал от внешнего питания и стало работать нормально.

заметил что при подключеном usb мигает led на плате который сидит на pin 13.

видимо мега реагирует на usb, вопрос на что реагирует и как исправить.

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

не понимаю в чем дело .

 

Zaliv
Offline
Зарегистрирован: 05.03.2011

А пробовали подключить к другому USB на другом компе, может питания не хватает на этом конкретном порту USB? У меня, например, на ноуте один из портов специально для повышенной нагрузки, как из описания следует. 

mitos
Offline
Зарегистрирован: 11.12.2011

я не с ноутом работаю , дескотоп обычный .

да и не похоже это на падение напряжения.

и главное почему перед каждым сбоем мигает led на 13 выходе

и еще вопрос должен ли мигать при работе led RX ? 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Схему и скетч в студию, и фото всего что у вас и как соединено 

mitos
Offline
Зарегистрирован: 11.12.2011

вот такой простой скетч  

 
void setup() {                
  DDRA = B11111111;         // устанавливаем порт A выводы с 22 по 28  выхода   
}
 
void loop() {
  PORTA = B00000110;//1
  delay(1000);
  PORTA = B01011011;//2
  delay(1000);
  PORTA = B01001111;//3
  delay(1000);
  PORTA = B01100110;//4
  delay(1000);
  PORTA = B01101101;//5
  delay(1000);
  PORTA = B01111101;//6
  delay(1000);
  PORTA = B00000111;//7
  delay(1000);
  PORTA = B01111111;//8
   delay(1000);
  PORTA = B01101111;//9
  delay(1000);
  PORTA = B00111111;//0
  delay(3000);
  
}
фото не поможет, а с видео есть небольшие проблемы, но постараюсь сделать .
соединение простое, каждая нога через резистор подключена к своему сегменту индикатора, катод на минус .
вот и все соединения.
проблема в том что при работе от usb происходит вспышка led на плате и цикл сбрасывается на начало .

 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

А пробовали стандартными кодами digitalWrite? На какой ток выставлен каждый сегмент? Какого размера матрица, а то мало ли может 7ми дюймовая цифра;) Включите вольтметр в ардуину, на землю и +5В и померяйте напряжение от юсб и от внешнего источника питания. 

whoim
Offline
Зарегистрирован: 03.11.2011

 usb происходит вспышка led на плате и цикл сбрасывается на начало
запитал от внешнего питания и стало работать нормально

налицо сброс по нехватке питания, попробуйте покороче шнурок USB и/или в зад материнке, если на "морде" висит. На морде у дешевых корпусов как правило хуже с питанием из за длинны и качества проводов.

mitos
Offline
Зарегистрирован: 11.12.2011

сегменты подключены через резистора 220 Ом, матрица мелкая высота цифры примерно 1 см .
вот попытался снять как это работает.
видны вспышки led на плате и в этот момент сброс счетчика .
померил напряжение получилось что то не понятное.
скачет от 4.2 до 4.7 4.8 V
http://depositfiles.com/rmv/1153173541444234

step962
Offline
Зарегистрирован: 23.05.2011

 Падение напряжения на светодиоде - в районе 2 В. Значит, на сопротивление приходится падение напряжения ок. 3 В. При номинале сопротивлений 220 Ом получаем ток в р-не 14 мА. Когда вы зажигаете восьмерку, общий ток получается ок  100 мА (14х7=98). Предел нагрузки для одного порта микроконтроллера (200 мА - предел по нагрузке на всех выводах камня). А в пограничной зоне всякие чудеса могут встречаться. Например, усиленное потребление тока микроконтроллером, с которым USB-порт на какой-то момент перестает справляться. Или еще что-нибудь эдакое.

Попробуйте увеличить номинал резисторов до 300-400 Ом или хотя бы развести часть выводов на другой порт. Не поможет - останется использовать ключи.

whoim
Offline
Зарегистрирован: 03.11.2011

общий предел USB 500мА, при питании с морды минус сто как с куста. 

step962
Offline
Зарегистрирован: 23.05.2011

 А пики потребления МК при работе в граничной зоне по какому-либо из параметров?

whoim
Offline
Зарегистрирован: 03.11.2011

 step962 вот уж не знаю, но все таки думаю МК+led+возможные потери на проводах = сброс устройства после старта

step962
Offline
Зарегистрирован: 23.05.2011

 От другого источника тока ("отключил от компа и запитал от внешнего питания и стало работать нормально." батарейка? более мощный ИП?) работает. Значит, дело в комбинации USB+аппарат (МК+led+возможные потери на проводах). Плюс какая-то необычная ситуация - тут просматривается достижение границы по нагрузке для одного порта МК.

 

Все в качестве версии

mitos
Offline
Зарегистрирован: 11.12.2011

Подключал в блоку питания 12v 2A, так что похоже действительно проблема в нехватке тока от usb.

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

надо будет шнурок usb разрезать чтоб ток померить.

но цифровой мультиметр может не устеть пики заметить . 

самое непонятное ,для меня, почему вспыхивает светодиод который сидит на 13 выводе.

он ведь не прописан в скетче.

whoim
Offline
Зарегистрирован: 03.11.2011

 после резета загрузчик ищет закачку в себя и моргает. Нажмите резет - моргнет.

mitos
Offline
Зарегистрирован: 11.12.2011

 whoim, правда ваша :) мигает 

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

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

 

whoim
Offline
Зарегистрирован: 03.11.2011

 у меня на самоделках всегда без резета. Не заведен с ft232rl, у вас мб как раз из за нехватки по питанию такое. Попробуйте перевесить дуину на задний usb-порт

mitos
Offline
Зарегистрирован: 11.12.2011

пробовал переключится на задние usb результат тот же.

причем происходит это в случае если плата подключена на usb и если подключено и usb и бп.

при отключеном usb работа стабильная .

возможет дефект платы ?  

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Вариант только один пока что:

-подключить плату к компу через юсб;

 -залить вашу программу, и всё что должно быть подключено;

- взять вольтметр(мультиметр) и один провод в +5В ардуины, второй в GND;

-замерять и записать;

отключить матрицу, оставив только чистую ардуину, померять напряжение и сравнить с матрицей;

-подключить к другому компьютеру и проверить всё с первого шага

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

 может быть еще длинный и или некачественный юсб кабель

whoim
Offline
Зарегистрирован: 03.11.2011

можно в разрыв +5в воткнуть амперметр (мультиметр) и померять "расход". От 400Ма уже надо беспокоится. Если сзади матери - то 500ма предел.

whoim
Offline
Зарегистрирован: 03.11.2011

 может быть еще длинный и или некачественный юсб кабель

очень может быть, я по работе пару раз в неделю стабильно сталкиваюсь с hp/canon, которые внезапно перестали работать. Глядя на кабель - плАчу и пытаюсь понять, как же они ранее работали. Вожу с собой толстенькие с экраном, поменял - все работает

mitos
Offline
Зарегистрирован: 11.12.2011

Пробовал с двумя разными шнурками.Результат одинаковый. Подключал в usb и на задней панели компа .

И потом , если ардуина подключена и к USB и БП то провалы напруги по USB вроде не должны мешать или пока USB подключен то питание идет только от USB ?