Как правильно поменять схему и скетч (вопрос новичка)

Ёж в тапках
Offline
Зарегистрирован: 12.05.2017

Добрый день, уважаемые форумчане!

Вот и приехал мой стартер-кит из поднебесной.

И сразу вопрос: как правильно добавить новый скетч?

Ведь Ардуина получает питание от USB и начинает выполнять предыдущий скетч. А мне уже надо собрать новую схему. Использовать те же выходы, которые использовались в предыдущей схеме. А там могут присутствовать какие-то напряжения, которые подаёт Ардуина по старому "скетчу". Как быть?

Поделитесь опытом.

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

1. Отключаем все вниешние цепи (кроме USB).

2. Зашиваем blink.

3. Собираем новую схему.

4. Прошиваем новый скетч.

При желании можно изменить последовательность на 1-4-3.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

Ёж в тапках пишет:

А мне уже надо собрать новую схему. Использовать те же выходы, которые использовались в предыдущей схеме. А там могут присутствовать какие-то напряжения, которые подаёт Ардуина по старому "скетчу". Как быть?

установить стоп-кран на кнопку Reset

220px-EmergencyBrakeUkraine.JPG

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

andriano пишет:

2. Зашиваем blink.

Я обычно заливаю blank

Ёж в тапках
Offline
Зарегистрирован: 12.05.2017

Спасибо!
Я тоже думал о заливке "пустого" скетча. Но хотелось услышать кто как на практике поступает.

Не понял про стоп-кран на кнопку ресет, но эта информация попахивает шуткой.

Если позволите, есть ещё вопрос от новичка:

Читал, что перезаливать скетч можно ограниченное число раз в силу характеристик ячеек памяти. Я понимаю, что и в литературе число указано большое (точно не помню, но кажется 5 000 раз), однако вполне себе можно представить ситуацию, когда человек зальёт скетч 5 000 раз, если использовать Ардуину по прямому назначению - моделировать и отлаживать прототип. Кто-то уже сталкивался с ситуацией, когда Ардуина не принимает новый скетч?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Там счетчик встроенный и микрокапсула с кислотой. По достижении 5400 перезаписей капсула разрушается и растворяет кристалл. На фирменных - ничего, а китайские могут протекать. Мне вот брюки испортила и пятно на столе оставила. :(

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

Где-то читал, что если точить ножи, они постепенно стачиваются. Кто-нибудь уже сталкивался с подобной проблемой?

 

Ардуина - расходный материал. 

И, кстати, я стльно сомневаюсь, что контактные гнезда, куда Вы вставляете проводники, смогут пережить хотя бы 5000 циклов вынул/вставил.

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

andriano пишет:

Где-то читал, что если точить ножи, они постепенно стачиваются. Кто-нибудь уже сталкивался с подобной проблемой?

Ножи надо правильные покупать! На STM вообще никаких проблем!

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

ЕвгенийП пишет:

Ножи надо правильные покупать! На STM вообще никаких проблем!

Неужели не затачиваются?

Ёж в тапках
Offline
Зарегистрирован: 12.05.2017

Посмеяться - дело хорошее.

Однако, я собрал одну схему (подключил семисегментный индикатор) и перезалил скетч раз 20. Помигал так, помигал сяк. Сперва циферки, потом буковки, потом огонёк бегает, побольше задержка - поменьше.

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

Logik
Offline
Зарегистрирован: 05.08.2014

andriano пишет:

Где-то читал, что если точить ножи, они постепенно стачиваются. Кто-нибудь уже сталкивался с подобной 

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

Logik
Offline
Зарегистрирован: 05.08.2014

Ёж в тапках пишет:

Посмеяться - дело хорошее.

Однако, я собрал одну схему (подключил семисегментный индикатор) и перезалил скетч раз 20. Помигал так, помигал сяк. Сперва циферки, потом буковки, потом огонёк бегает, побольше задержка - поменьше.

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

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

Ёж в тапках
Offline
Зарегистрирован: 12.05.2017

Ладно, любители посмеяться, возможно, вы восприняли мой вопрос про ресурс памяти Ардуино, как прикол, про который все и так уже всё знают. Не все и не всё. Я спросил серьёзно.

Теперь у меня новый вопрос:

Хочу потренироваться и подключить к Ардуино четырёхразрядный восьмисегментный индикатор с общим катодом на 12 пинов, цвет свечения красный. Прочитал вот эту тему на форуме: два 8-мисегментных индикаторов. Там уважаемый ЕвгенийП советовал сначала разобраться со схемой.

Предполагаю собрать вот такую схему: схема. Но у меня в "стартовом наборе" нет полевых транзисторов, а есть PN2222 NPN-транзисторы. Ссылка на даташит транзистора: ссылка

Подскажите, какие номиналы резисторов выбрать для обвязки транзисторов PN2222?

А если объясните, зачем они там вообще нужны и как подбирались номиналы - будет совсем здорово!

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

На последний вопрос: подбирать номиналы - исключительно по закону Ома. 

Ну и зачем нужны - тоже из закона Ома все следует.

Ёж в тапках
Offline
Зарегистрирован: 12.05.2017

Как я понял, транзистор у нас работает в ключевом режиме.

Важны токи. Максимальный ток Коллектор-Эмиттер в данной схеме, когда горят все сегменты: 20мА*8 = 160мА.

Чтобы транзистор "открылся" нужен ток в цепи База-Эмиттер меньший в Бетта (коэффициент усиления транзистора по постоянному току, по даташиту это где-то 60) раз: 160мА/60= 3мА. Вот теперь закон Ома: I = U/R. Значит сопротивление в цепи Базы будет: (5В-Uбэ)/3мА = 1333 Ом (принял падение напряжения на открытом переходе БЭ равным 1В). Видимо, уменьшив номинал резистора до 1кОм, я получу больший ток через Базу, но не критический для транзистора или Ардуины. Второй резистор, между базой и эмиттером служит для "подтягивания" к "земле" напряжения на Базе, когда Ардуина на управляющем выводе держит "LOW". И его номинал должен быть в 10 раз больше, номинала первого резистора, т.е. 10кОм.

Кто сможет подсказать, верно я понял? Справедливы ли допуски, которые я принял при расчёте? Важно, чтобы "заработало и ничего не сломалось", а не экономия каждого микроАмпера тока))

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

Ёж в тапках пишет:

Кто сможет подсказать, верно я понял? С

Верно Вы всё поняли. 

Подтягивающий резистор не обязательно в 10 раз, я обычно ставлю в 10-100 раз типа "какой есть и какой не жалко". Если помех прилетает много, то нужно поменьше, если там всё тихо, то можно и побольше. Там ведь какая вилка: чем меньше сопротивлене этого резистора, тем надёжнее запирание, но тем больше паразитный ток с базы на землю.

Только я бы от греха подальше считал бы h21 не 60, а 30, т.к. минимальный у этого транзистора 30 (при Ic=500mA и Vce=10V).

Ёж в тапках
Offline
Зарегистрирован: 12.05.2017

Спасибо!

Всё заработало.

Если кто наткнётся, рабочий скетч для этой схемы тут: ссылка.