Дорогой читатель, после столь длительного перерыва, рады приветствовать тебя на страницах нашего блога. Наконец, мы начали восстанавливать контент, потерянный в процессе перехода от старого магазина, к новому магазину и бренду – «Точка Пайки». Сегодняшняя публикация посвящена очень важной проблеме – аппаратному убийству платы Arduino. Нам часто пишут о том, что всё работало нормально до некоторого момента, а потом плата либо просто перестала определяться компьютером, либо перестала прошиваться, либо нашла ещё какой-то способ отказаться работать и доставить печали своему владельцу. Прочитав не один десяток таких писем за время существования проекта, мы решили обратиться к нашему техническому консультанту, чтобы узнать, как повредить свою плату так, что она наверняка уже не оправится от этого и перестанет радовать тебя своими техническими возможностями.

Стоит отметить, что всё описанное в данной статье относится к любой версии Arduino, построенной без серьёзных модификаций основной схемы. Является ли это проблемой? С одной стороны – да, это может вызвать затруднения у тех, кто не прочитает нашу статью. С другой - попытки сделать плату менее уязвимой, привели бы к её усложнению и удорожанию стоимости и, разумеется, было бы не так просто собрать её аналог на макетной плате. К тому же, при переносе проектов с платы Arduino на самостоятельно сделанную плату, пришлось бы столкнуться с большим количеством проблем, которые ранее решала используемая плата Arduino.

Перейдём, непосредственно, к теме статьи: все возможности можно разделить на несколько больших групп:

  1. Замыкание питания на землю
  2. Перегрузки по току и напряжению
  3. Неправильное подключение
  4. Бонусная группа, о ней можно прочитать в конце статьи

ЗАМЫКАНИЕ ПИТАНИЯ НА ЗЕМЛЮ

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

короткое замыкание

В случае с Arduino, фейерверка, скорее всего, достичь не удастся (хотя, стоит заметить, небольшой взрыв позволял бы намного быстрее осознать, что что-то пошло не так).

Что происходит в момент короткого замыкания? При коротком замыкании сильно возрастает ток, что, согласно закону Джоуля-Ленца, приводит к сильному тепловыделению, а, следовательно, повреждению всего, где этот ток проходит.

Рассмотрим, как можно этого достичь.

Самое простое (и потому распространённое) – это замыкание через цифровые выходы платы.

Почему так происходит? Дело в том, что при работе чип ATmega оперирует теми линиями земли и питания, что ему даны, т.е. ни земля, ни 5V не берутся из ниоткуда, а при переключении цифровых входов/выходов просто подсоединяются к соответствующим входам.

Что можно сделать через GPIO:

  1. Замыкаем любой из пинов на землю. Подаём на него высокий сигнал через digitalWrite. Получаем КЗ. Обратная схема (замыкание на 5V и подача низкого сигнала) тоже верна.  Ток возрастает до максимального, что есть в источнике. Чувствуем запах желаемого результата, дёргаемся, выключаем, но плату уже не вернуть.
  2. Замыкаем пины друг на друга, а потом на один подаём высокий сигнал, а на другой - низкий. Результат как и в пункте 1. Последовательность действий - такая же.

Менее распространённым методом является замыкание пина внешнего питания Vin на землю (в основном потому, что он редко используется новичками). Данный пин является входом для внешнего питания платы.

И да, никто не отменял простого замыкания Vcc на GND. Это наиболее частый способ убийства Arduino Nano и Pro Mini. Встречается он в тех случаях, когда желание сделать что-либо глушит внутреннюю оценку кривизны рук.

ВНМИАНИЕ! Ты можешь лишиться возможности использовать методы из данной группы, если проверишь код и схему до того, как подашь питание.

ПЕРЕГРУЗКИ ПО ТОКУ И НАПРЯЖЕНИЮ

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

Такие ситуации происходят потому, что микроконтроллеры проектируются на определённой компонентной базе и с определёнными стандартами. То есть то, что нельзя считывать сигнал 12 вольт - это не конструкторская недоработка, это понимание того, что есть дополнительные модули, которые позволят легко обойти это ограничение, не раздувая до неприличных размеров схему микроконтроллера.

Что мы можем тут сделать:

  1. Приложить напряжение больше 5.5 вольт к любому из пинов GPIO (или 3.7В в версиях плат с напряжение 3.3В).
  2. Подать больше 5В на пин питания Vcc (или больше 3.3В в версиях с этим напряжением). В данном случае это актуально для плат из серии Mini и Nano, так как у Mega, Uno, Leonardo - эти входы изолированы от шаловливых ручек пользователя.
  3. Более 13 вольт на пин RESET.
  4. Перегрузить выходные пины. Для этого надо просто подключить напрямую шаговый двигатель, либо побольше диодов без резисторов ко всем пинам. Контроллер будет пытаться выдать требуемый ток и, когда он в сумме превысит 200 мА, мы получим требуемый результат.
  5. Отсутствие диода обратной цепи при работе с индуктивными компонентами. Подключение индуктивных компонентов может вызывать обратный ток, который повредит плату. 

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

НЕПРАВИЛЬНОЕ ПОДКЛЮЧЕНИЕ

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

  1. Неправильная полярность. Самый простой из вариантов. К входу земля подключаем 5V, к входу Vin - землю. Контроллеру это смертельно не понравится.
  2. Запитывание одновременно от Vcc и Vin. Это приведёт к тому, что ток потечёт в обратном направлении (если будет разность потенциалов), что… ну, думаю, ты уже понял.. В случае с Mega и Uno - это запитывание от USB и чего-либо ещё.
  3. Запитывание от выходов 3.3V и 5V. Почему? Потому что это выходы. Нет. Правда. Это просто выходы, а не входы.
  4. Сборка схемы под напряжением. Это чаще всего безопасно для сборщика, а ввиду того, что собирающему схему будет приятна экономия времени на постоянное включение/отключение, то у него есть все шансы неосознанно применить этот способ.
  5. Подача питания на землю. Комментарии излишни, не так ли?

РАССТРЕЛ ИЗ «САЙГИ»

Последнему из способов, что мы хотим описать сегодня, было решено дать собственный раздел. Список, приведённый выше, в разных вариантах гуляет по многим сайтам. Нам же хотелось добавить что-то своё. Однако, ввиду недостатка времени и наличия «Сайги», способ, описанный тут, показался наиболее интересным.

Сперва немного о «Сайге».

Карабин «Сайга» является гражданским охотничьим оружием. Это самозарядный гладкоствольный карабин с укороченным стволом, складывающимся пластмассовым прикладом, цевье и ствольная накладка выполнены из пластмассы (высокопрочного полиамида), внешний вид приближен к автомату Калашникова. 

Калибр

.410

Патроны

дробь, пули, «Магнум», с длиной гильзы 76 мм

Масса

3,4 кг

Размер магазина

10 патронов

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

Плата Arduino – подойдёт любая, по которой ты сможешь попасть.

Дальнейший процесс словами описывать просто бесполезно, мы постараемся, как-нибудь в будущем, выбрать время и снять об этом видео

ЗАКЛЮЧЕНИЕ

В итоге, можно дать следующие советы:

  1. Читайте даташиты. В Arduino микроконтроллер практически голый, поэтому всё, что верно для него, верно и для самой платы: ATmega 328 (используется в Nano, Mini, UNO), ATmega 2560 (используется в Arduino Mega), ATmega32u4 (Micro и Leonardo). К остальному используемому оборудованию это тоже относится.
  2. Внимательно читайте инструкции к схемам, которые вы собираете
  3. Учитывайте кривизну рук, требуемую для достижения желаемого эффекта.
  4. Убирайте свою «Сайгу» подальше (если она у вас есть).

Ну и в заключение, если ты хочешь попробовать применить описанные здесь способы на собственной плате Arduino или уже применил один из них и срочно ищешь замену - переходи в соответствующий раздел и покупай гарантированно рабочую плату по приятной цене!