А насчет оптронной развязки можно подробнее?
..А.. так вам надо восполнить этот пробел. Лекцию я вряд ли стану читать.. :rolleyes:
В самых общих чертах, вариантов масса. Есть оптосимисторы, которыми можно управлять с ножки МК, но, лучше, конечно, отвязаться через транзисторный ключ.
Есть оптроны специальные, которые ориентированы на управление обычным симистором. То есть, находите нужный симистор, присобачиваете к нему оптрон.. Есть всякие «оптореле», там полевые ключи, кажется, управляемые оптроном. Но, они пока дорогие.
Есть с функцией управления по переходу напряжения сети через нуль, для снижения помех. Есть..
..Наиболее бюджетный вариант я часто использую: блок питания с балластным конденсатором (может быть, слышали про такие?) и простой оптрон, с простеньким же транзисторным ключом, на одной плате. Такой самодельный модуль опторазвязки ставится непосредственно возле симистора и управляется импульсом в половину миллисекунды. Это удобно для ШИМ или маломощных симисторов (тогда уже оптрон может быть открыт постоянно). Достаточно один раз отработать конструкцию и слегка потом модифицировать, под разные задачи… Но, кому-то это может показаться кустарщиной.. :rolleyes:
..Вот пример схемы, для ШИМ-управления движком постоянного тока в 1,5 kW.
..Есть небольшой симистор, MAC97, в корпусе TO-92, до 0,5 ампера он, кажется.. им можно коммутировать небольшие контакторы, что я и делал когда-то, с помощью помянутого модуля.
А что-то серии MOC, прямо предназначено для управления симисторами, с пресловутой функцией «зеро», вдобавок.
..Ищите, что для вас проще и понятней, в интернете подобной информации есть.. :rolleyes:
Изменено 13 мая, 2011 пользователем Wise
Знаток
Регистрация: 22.05.2013 Адрес: Екатеринбург Сообщений: 513 Репутация: 181
|
Доброго времени, коллеги! У меня возникла проблема, которая доставляет некоторые неудобства. Я разработал и собрал маленькое устройство на микроконтроллере, которое должно управлять дизельной тепловой пушкой. Микроконтроллер PIC12F675 питается от сетевого трансформатора , «сила» подключена через релюшки (то бишь, гальванически развязан с сетью). На стенде работает прекрасно. Ставили в маленькие аппараты Ресанта — тоже, работа на 5+. Сегодня установили автомат в большую промышленную пушку Ballu (не помню модель, но аппарат реально огромный), микроконтроллер начал «сходить с ума» от наводок с 12 кВ схемы розжига. Заземлили корпус — аппарат заработал отлично. В принципе, на этом можно было бы остановиться, но этические соображения не позволяют «отпустить» потенциально опасный прибор. И понятно, что без заземления «такое» включать нельзя (топливо и все такое), но хотелось бы, чтобы работало ДАЖЕ без заземления. Тогда я буду спокоен на 100%. Не могли бы подсказать, как правильно изготовить экран или как избежать сбоев другими путями. P.S. Были «фирменные» платы на компараторах. Тоже глючат без земли. Отсоединяешь бронепровод от блока розжига (который не «прошивает» на корпус 100%) — проблема уходит. Ясно, через блок розжига помеха распространяется по всему корпусу.
__________________ |
|
Приглашаем 22 июня на вебинар, посвященный подходу компании MEAN WELL к созданию мощных управляемых систем низковольтного и высоковольтного питания и зарядных установок для промышленного, технологического, телекоммуникационного, медицинского, радиопередающего и другого оборудования, а также для систем альтернативной энергетики. На вебинаре мы рассмотрим новинки и серийную продукцию в концепции «3+N», расскажем об этой концепции и о том, как создать из готовых модулей систему питания мощностью до 360 кВт с напряжением до 380…400 В (постоянного тока). Будут представлены ИП с рециркуляцией энергии для тестового оборудования и модули управления питанием. |
Эксперт
Регистрация: 08.11.2009 Сообщений: 2,284 Репутация: 613
|
Цитата:
Сообщение от ipaSoft MCLR не выведен, а подтянут «изнутри» к плюсу. первая ошибкО….
Последний раз редактировалось DmitriyVDN; 02.02.2016 в 22:04.
|
|
Знаток
Регистрация: 22.05.2013 Адрес: Екатеринбург Сообщений: 513 Репутация: 181
|
Плата нехитрая, односторонняя. Модель платы без «керамики» во вложении.
__________________ |
|
Эксперт
Регистрация: 08.11.2009 Сообщений: 2,284 Репутация: 613
|
и в этой нехитрой плате вы умудрились сделать кучу ошибок…. |
|
Знаток
Регистрация: 22.05.2013 Адрес: Екатеринбург Сообщений: 513 Репутация: 181
|
Переделал схему с учетом всех рекомендаций, переделал плату (без автороутера). Сделал двухсторонней с «общим» слоем. Завтра будем попробовать.
__________________ |
|
Эксперт
Регистрация: 08.11.2009 Сообщений: 2,284 Репутация: 613
|
покажи , и полную схему тоже …. посмотрим что получилось… |
|
Знаток
Регистрация: 22.05.2013 Адрес: Екатеринбург Сообщений: 513 Репутация: 181
|
Безупречно работает. Спасибо, Дмитрий. Вашими рекомендациями.. MCLR через RCD и керамика как надо. Только не стал базы к эмиттерам подтягивать, упустил из виду, торопился. Очень рад. Куда слать магарыч? =)
__________________ |
|
Эксперт
Регистрация: 08.11.2009 Сообщений: 2,284 Репутация: 613
|
R177104235564 |
|
Новичок Регистрация: 03.04.2016 Сообщений: 1 Репутация: 10
|
Цитата:
Сообщение от DmitriyVDN а так это должно стать настольной книгой: Спасибо за вложение, очень полезно и позновательно для меня оказалось! Сейчас дебажу pic18f2520, постоянно срабатывал WDT при включении, например, света в комнате, и т.д. Сделал по книге — помогло. + ещё откинул общую землю от 8-й ноги и использовал её (ногу) в качестве земли для конденсаторов кварца. Теперь всё норм. |
|
Знаток Регистрация: 13.07.2007 Сообщений: 652 Репутация: 118
|
Всё перечисленное имеет место. |
|
Платформа Arduino – это один из самых простых путей погрузиться в мир микроконтроллеров и попробовать самому их программировать. Но однако и на этом пути вас могут подстерегать различные ошибки. Некоторые из них устранить очень просто, а на устранение других у вас могут уйти целые дни. В этой статье мы рассмотрим 10 самых распространенных ошибок при работе с платформой Arduino и способы их устранения.
Если вы начинающий в Arduino, то вначале рекомендуем вам ознакомиться с руководством по первому использованию платы Arduino для начинающих – в ней вы найдете решение самых простых ошибок, возникающих при работе с данной платой.
В этой ситуации плата Arduino, подключается к компьютеру, не распознается им. В этом случае плата Arduino не появляется в списке устройств, подключенных к компьютеру по COM портам, как показано на следующем рисунке.
Решение
Эта проблема обычно случается когда вы используете не оригинальную плату Arduino, а ее дешевые клоны, обычно китайского производства. В этих клонах Arduino вместо стандартного для оригинальных плат Arduino FTDI чипа (FT232RL) используется более дешевый чип CH340g (для преобразования USB в последовательный интерфейс). Драйверы для стандартного чипа FT232RL уже содержатся в установочном пакете Arduino IDE, поэтому при ее установке они также автоматически устанавливаются на ваш компьютер. А чтобы использовать клон платы Arduino с чипом CH340g вам необходимо предварительно скачать и установить драйвер для этого чипа – скачать его можно по следующей ссылке. Установка его крайне простая – я думаю, она не вызовет у вас никаких затруднений.
После его установки вы сможете увидеть в диспетчере устройств, к какому COM порту подключена ваша плата Arduino.
2. Плата не синхронизируется
В этом случае ваш компьютер видит подключенную к нему плату Arduino, но вы не сможете загрузить в нее код программы и вы при попытке загрузке в нее программы вместо привычного сообщения «done uploading» увидите сообщение об ошибке: “avrdude: stk500_getsync(): not in sync: resp=0x00”.
Решение
Ошибка синхронизации resp = 0x00 является общим ответом (ошибкой) на все проблемы, связанные с некорректной работой микроконтроллера Atmega (или вообще его неработоспособным состоянием), являющегося «сердцем» платы Arduino. Соответственно, причин этой ошибки может быть достаточно много. Мы рекомендуем вам выполнить следующую последовательность шагов чтобы попробовать устранить эту проблему:
- Убедитесь в том, что ничего не подключено к цифровым контактам 0 и 1 платы Arduino (включая шилды).
- Убедитесь в том, что в настройках Arduino IDE вы выбрали правильный тип платы и правильный COM порт.
- Пару раз нажмите кнопку сброса на плате Arduino и попробуйте после этого загрузить в нее код программы.
- Если не помогло, то отключите и заново подсоедините плату Arduino к компьютеру.
- Закройте и снова запустите Arduino IDE.
Если ничего из перечисленного не помогло, то попробуйте подключить к своему компьютеру другую плату Arduino или же подключите вашу плату Arduino к другому компьютеру. Если вы обнаружите, что проблема в компьютере, то переустановите Arduino IDE. Иногда бывает и так, что Arduino IDE из Windows работает с глюками, а из другой операционной системы на этом же компьютере работает без проблем. Также встречаются энтузиасты, которые устанавливают Arduino IDE в операционную систему от платы Raspberry Pi, то есть работают с Arduino IDE на компьютере, который состоит из платы Raspberry Pi и монитора – они говорят, что в этом случае Arduino IDE работает гораздо лучше чем из под Windows. Также, если не хотите менять компьютер или операционную систему на нем, вместо Arduino IDE можно попробовать использовать аналогичные инструменты — оболочку PlatformIO или Arduino Web Editor (официальный онлайн инструмент, его не нужно устанавливать).
Если проблема оказалась в плате Arduino, то можно попробовать прошить ее стандартным программным обеспечением Arduino (то есть попросту сменить в ней загрузчик). Если это не помогло, то, скорее всего, вам придется использовать в своей работе другую плату Arduino.
3. Код программы не начинает исполняться при нажатии кнопки сброса (Reset)
В этом случае плата Arduino при включении питания и при нажатии кнопки сброса не начинает исполнять записанный в нее скетч, а обычно возвращается к исполнению стандартного скетча, записанного в загрузчик платы – это скетч мигания светодиодом.
Решение
Описанная проблема может возникать по достаточно большому количеству причин.
Если плата «висит» и ничего не делает, вы сначала должны убедиться в том, что вы в это же самое время не передаете ей никаких данных с компьютера по последовательному порту. При включении питания загрузчик платы первые несколько секунд проверяет не передаются ли плате по последовательному порту какие либо данные (например, не производится ли попытка загрузки в плату нового скетча). Если никакого нового скетча не поступает, то спустя несколько секунд загрузчик начинает исполнять последний скетч, загруженный в плату. Если же ваша программа периодически передает данные по последовательному порту плате, то загрузчик попросту не перейдет к исполнению последнего загруженного в плату скетча.
Если же передача данных по последовательному порту является исключительно важной частью вашего проекта, вам необходимо предусмотреть в ней задержку, необходимую для того чтобы у загрузчика было время переключиться на исполнение последнего загруженного в плату скетча. Если же у вас нет возможности сделать такую задержку, то вам необходимо будет использовать какие-нибудь внешние программаторы для загрузки кода программы в плату Arduino, которые загружают код программы в обход встроенного в плату загрузчика.
Если же плата Arduino при включении питания или нажатии кнопки сброса не зависает, а начинает исполнять встроенный в загрузчик скетч мигания светодиодом, то кардинальным способом решения этой проблемы является смена загрузчика в плате, поскольку он мог быть поврежден в результате каких-нибудь обстоятельств.
4. Invalid Device Signature Error (ошибка подписи)
Эта ошибка возникает при попытке загрузки кода программы в плату Arduino, тип которой отличается от той платы, которую вы выбрали в настройках Arduino IDE. Ошибка возникает из-за того, что подпись устройства (device signature) на используемой плате отличается от подписи того типа платы, которую вы выбрали в Arduino IDE.
Решение
Выбрать правильный тип платы Arduino в настройках Arduino IDE. Если это не помогает, то можно попробовать прошить плату последней версией загрузчика Arduino (Arduino bootloader).
5. Ошибка запуска (Launch4j Error)
Arduino IDE необходимо некоторое время для того чтобы запуститься и если после ее запуска вы на что-нибудь кликаете, то возникает ошибка Launch4J error как показано на представленном рисунке. Launch4j – это инструмент, который используется для упаковки (wrapping) приложений Java в программной среде Windows, который позволяет им исполняться как обычным программам Windows.
Arduino IDE написана на JAVA и эта ошибка возникает из-за несовместимости библиотеки Java Run Time Environment (JRE), поставляемой вместе с Arduino IDE.
Решение
Часто решить эту проблему удается простым выключением Bluetooth или WiFi на вашем компьютере. Если это не помогает, то более сложным вариантом решения данной проблемы является замена библиотеки JRE в Arduino IDE на ее последнюю версию.
6. Последовательный порт уже используется (Serial Port Already in Use)
Одна из самых простых проблем для решения. Она обычно происходит когда вы пытаетесь загрузить код программы в плату Arduino в то время когда открыто окно монитора последовательной связи (serial monitor) (но эта проблема в последних версиях Arduino IDE уже устранена) или вы пытаетесь его открыть во время обмена информацией между Arduino IDE и платой Arduino, или вы пытаетесь в это время использовать этот же самый COM порт для связи с другим устройством. То есть данная проблема возникает тогда, когда вы пытаетесь использовать последовательный порт одновременно для двух вещей.
Решение
Когда вы хотите загрузить программу в плату Arduino с помощью Arduino IDE, просто закройте (остановите работу) всех программ/приложений, которые в это же самое время могут использовать данный последовательный порт. Если в каких то программах вы не уверены, то отключите и снова подсоедините плату Arduino к компьютеру.
7. Скетч успешно загружен, но ничего не происходит
Эта проблема аналогична ранее рассмотренным проблемам. В данном случае у вас появилось сообщение, что программа успешно загружена в плату Arduino, но сама плата после этого ничего не делает.
Решение
- Убедитесь в том, что тип выбранной в настройках Arduino IDE платы совпадает с типом платы, в которую вы загрузили программу.
- Также подобная ошибка может быть вызвана тем, что размер загружаемого в плату скетча превышает объем ее памяти для хранения программ. Уменьшите объем скетча или используйте плату Arduino с большим объемом памяти.
- Еще одной причиной подобной ошибки может быть сильная зашумленность цепей питания. Убедитесь в том, что питающее напряжение, подаваемое на плату, достаточно стабильно.
8. Неизвестная ошибка связи (Unsatisfied Link Error)
Очень редко возникающая ошибка. Связана с тем, что на вашем компьютере используется очень старая библиотека для последовательной связи, возможно, от какой то предыдущей версии операционной системы.
Решение
Для решения этой проблемы найдите файл comm.jar или jcl.jar в папке /System/Library/Frameworks/JavaVM.framework/ или в папках на вашем компьютере, относящимся к переменным окружения CLASSPATH или PATH.
9. Размер скетча слишком большой (Sketch Too Large)
Эта ошибка происходит когда размер кода программы больше чем объем перепрограммируемой памяти (flash memory, памяти для хранения программ) используемой вами платы Arduino. К примеру, объем этой памяти в плате Arduino Uno составляет 32 Кбайта, из которых 2 Кбайта заняты загрузчиком. Если вы попытаетесь загрузить в данную плату скетч объемом более 32 Кбайт, то увидите подобную ошибку.
Решение
Для решения этой проблемы модно использовать следующие способы уменьшения объема кода программы:
- Там, где это возможно, используйте целые типы данных (integer) вместо вещественных (float).
- Там, где это возможно, используйте при объявлениях переменных спецификатор “const”.
- Подключайте в программу только те библиотеки, которые вы будете использовать. Там, где это возможно, используйте облегченные версии используемых библиотек.
- Используйте специальные алгоритмы и другие способы уменьшения объема кода программы.
Более радикальным решением этой проблемы является смена платы Arduino на плату с большим объемом памяти. Например, плату Arduino Uno можно заменить на плату Arduino Mega, или даже на плату Arduino Due.
10. Ошибка переполнения стека (java.lang.StackOverflowError)
Иногда плата Arduino не может выполнить программы, в которых используется некорректная работа со строками, например, у строковых переменных пропущены кавычки в некоторых выражениях (или функциях).
Решение
В этом случае вам необходимо тщательно проинспектировать код своей программы, обращая особое внимание на те строки, в которые используются строковые переменные (типа string). Убедитесь в том, что все кавычки присутствуют в необходимых им местах. Также убедитесь в правильном использовании слешей (косых черт).
В данной статье мы рассмотрели 10 самых распространённых ошибок при работе с Arduino. Разумеется, реальное число ошибок, которые могут возникать при работе с платами Arduino, гораздо больше чем 10, однако мы попытались в этой статье рассмотреть самые распространённые из них. Если у вас возникает какая либо ошибка, которая не рассмотрена в данной статье, можете описать ее в комментариях и мы попробуем вместе с вами ее решить.
Загрузка…
11 335 просмотров
Время на прочтение
2 мин
Количество просмотров 9.2K
Представим: купили вы новый камень для своего проекта, а он — зараза — не шьется! Все собрано правильно, программатор правильный — всё равно ошибка. Знакомо? Мне да. Поэтому я решил написать про это статью.
Немного предыстории
Понадобилась мне значит Atmega32, купил, впаял, пытаюсь прошить — ошибка!
Лезем в гугл, где вам предложат:
-
Проверить соединение
-
Проверить пайку
-
Выкинуть микроконтроллер
Другая история — попалась мне Atmega328p, друг попросил накатить загрузчик. Ошибка такая же. Похоже на случай описанный ранее? На первый взгляд да. А вот когда начнем разбираться…
Прошиваем Atmega32
Я, как и многие другие, использую дешевой китайский программатор USBasp.
Некоторые программаторы приходят со сбитыми элементами, непропаями и соплями. Даже если вы купите USBasp в нашем магазине, то скорее всего он будет собран в том же китайском подвале, что и его собратья купленные в китайских интернет-магазинах.
На программаторе мы видим 3 джампера: прошивка программатора — JP1, напряжение питания — JP2, и незапаяный джампер JP3 — прошивка на пониженной скорости.
Что такое «низкая скорость прошивки» и почему важна частота?
Пока перенесёмся из мира электроники, мир наш. Представим что на работе раз в час приходит начальник, чтобы проверить, как вы работаете. Время появления начальника вам известно, соответственно, вы начинаете работать и не получаете пинков от него. Но в один прекрасный момент, начальник начинает приходить раз в 45 минут, но вы этого не знаете. Так же и с МК, если он настроен на 16 MHz, но будет кварц на 8 MHz, чип не будет работать. Настройки частоты задаются фьюзами. За источник тактирования отвечают CKSEL. В зависимости от частоты, меняется скорость прошивки. Обычно на новых камнях стоят одни из этих источников тактирования:
-
External 16 MHz
-
External 8 MHz
-
Internal 8 MHz
-
Internal 1 MHz
-
Internal 128 KHz
Для работы с чипом имеющим частоту меньше 1 МГц, нужно снизить скорость прошивки. Это можно сделать перемычкой JP3 на программаторе, или в настройках используемой вами программы. После этого Atmega32 прошилась!
Прошиваем Atmega328p
В этом случае колдовать со скоростью прошивки не пришлось. Но пришлось поиграть с кварцами. Просто глядя на камень его настройки установить невозможно. А если МК не запускается, определить фьюзы даже с программатором это бесполезная затея. Не буду томить — в моем случае какой-то китаец настроил Atmega328p на External 8 MHz. Подключаем чип к программатору, жмем «Записать загрузчик» и…
Далее не забываем подкинуть кварц на выбранную вами частоту. В Arduino IDE частота меняется здесь (в большинстве кастомных ядер):
Если все равно не работает
Первый вариант: вы перебрали не все кварцы. По-хорошему, у вас должно быть достаточно разных кварцев — на 16, 8, 4 MHz. В последнее время появились микроконтроллеры с частотой 20 MHz, но их достаточно мало. Однако и такой вариант следует предусмотреть. Вот полный список частот Atmega32, на свой чип гуглите:
Второй вариант: вы выбрали не тот чип. Например, вот модификации atmega328:
Третий вариант: МК в мусорку. Попался с брачком, ну или сгорел.
Заключение
Описанные в статье проблемы выявить и устранить не всегда бывает легко, но возможно. Надеюсь статья была вам полезна, и вы узнали что-то новое или справились с проблемой. Если есть вопросы, пишите в комментарии, а на этом я с вами прощаюсь, всем удачи и всем, пока!
Начиная работу с Ардуино, пользователи могут столкнутся с рядом проблем: от сгоревших контактов на плате до ошибок в работе микроконтроллера.
В этой статье разберем, как диагностировать плату на примере Arduino Uno и найти её неисправности
Содержание
- Проверка аппаратной части платы
- Проверка программной части
- Заключение
Проверка аппаратной части платы
Если Ардуино по каким-либо причинам не хочет работать, для начала стоит осмотреть плату по следующим признакам:
- Качество пайки. Каждый элемент платы должен стоять на своем месте и быть припаян к дорожкам на плате.
- Наличие прогаров, повреждений на дорожках платы или каких-либо элементах.
- Наличие всех компонентов на плате. На фото представлена оригинальная Arduino Uno с микроконтроллером AtMega328P. Если используется реплика, смотрите фото или даташит на Вашу конкретную модель
Если внешний осмотр не дал каких-либо результатов — используем мультиметр. Для этого включаем мультиметр в режим прозвона короткого замыкания и проверяем по линиям питания 5, 12 вольт и USB . При наличии КЗ по одной из линии питания можем подключить питание. Проверяем при помощи тепловизора или методом «тыка» сильно нагревающееся элементы — они есть источники КЗ. При этом надо учитывать, что:
- если пробой произошел по линии 12V, скорее всего произошел пробой стабилизатора на 5V и через плату пошел большой ток. В таких случаях, микроконтроллер, скорее всего, труп;
- если питание подавалось прямо на микроконтроллер через контакт 5V на плате и на нем произошло КЗ — микроконтроллер, скорее всего, труп;
- если питание подавалось через USB то стоит проверить диод-предохранитель по линии питания от порта. Вероятно, он сгорел и спас остальные элементы от такой же участи. Ремонт простой — замена диода на новый.
Не удалось найти КЗ? Ставим мультиметр в режим проверки напряжения, подключаем питание по 12V и проверяем наличие напряжения по линиям 5 и 12V. Если напряжение отсутствует — ищем виновника, проверяя сопротивление на каждом элементе по линии питания. Если сопротивление отсутствует (на некоторых мультиметрах выдает единицу) — произошел обрыв контакта с дорожками на плате, либо внутри самого элемента, что означает его замену.
Проверка программной части
Проверили аппаратную часть, можем приступать к проверке программной. Подключаем плату к USB-порту компьютера и проверяем, светится ли зеленый светодиодный индикатор питания на плате.
Оранжевый светодиод рядом с центром платы должен включаться и выключаться при запуске платы. Платы поставляются с завода, на котором предварительно установлено программное обеспечение, чтобы мигать светодиодом. Простая проверка того, что плата работает. Может быть не актуально для китайских реплик.
Иногда плата не определяется компьютером. Это происходит с дешевыми репликами плат, на которых установлен UART преобразователь CH340g или иная модель. На оригинальных Ардуино или дорогих клонах стоит модель чипа FT232RL. При скачивании Arduino IDE, драйвер устанавливается автоматически. Для копий драйвер надо скачивать отдельно.
Плата может не определяться, если повреждены информационные контакты USB-порта. Для проверки, надо осмотреть вход USB и его распайку на плате.
После запуска, пробуем загрузить скетч для проверки работоспособности пинов:
#define FIRST_PIN 0 // первый вывод
#define LAST_PIN 19 // последний вывод
void Test1(byte pin)
{
if(pin < 10) Serial.print(» PIN: «);
else Serial.print(» PIN: «);
Serial.print(pin);
pinMode(pin, OUTPUT);
digitalWrite(pin, 0);
Serial.print(» LOW: «);
if(!digitalRead(pin)) Serial.print(«OK «);
else Serial.print(«FAIL«);
digitalWrite(pin, 1);
Serial.print(» HIGH: «);
if(digitalRead(pin)) Serial.print(«OK «);
else Serial.print(«FAIL«);
pinMode(pin, INPUT);
Serial.print(» PULL UP: «);
if(digitalRead(pin)) Serial.print(«OK «);
else Serial.print(«FAIL«);
digitalWrite(pin, 0);
}
void Test2(byte pin)
{
Serial.print(» «);
pinMode(pin, OUTPUT);
digitalWrite(pin, 1);
delay(5);
if(!digitalRead(pin))Serial.println(«SHORT«);
else Serial.println(«OK«);
pinMode(pin, INPUT);
digitalWrite(pin, 0);
}
void setup() {
Serial.begin(9600);
Serial.println(«Test of short circuit on GND or VCC and between pins:»);
Serial.println();
for(byte i = FIRST_PIN; i <= LAST_PIN; i++)
{
for(byte j = FIRST_PIN; j <= LAST_PIN; j++)
{
pinMode(j, INPUT);
digitalWrite(j, 0);
}
Test1(i);
for(byte j = FIRST_PIN; j <= LAST_PIN; j++)
{
pinMode(j, OUTPUT);
digitalWrite(j, 0);
}
Test2(i);
}
for(byte j = FIRST_PIN; j <= LAST_PIN; j++)
{
pinMode(j, INPUT);
digitalWrite(j, 0);
}
}
void loop() {}
После проверки, тест выдаст лог, в котором обозначит состояние выводов. На 0, 1 и 13 выводах могут быть выявлены неисправности — это нормально, так как 0 и 1 выводы заняты UART’ом (микросхема отвечающая за загрузку скетчей), а на 13 выводе светодиод. В остальных случаях — проверяем целостностность контактов на плате.
Если скетч не загружается и Arduino IDE выдает ошибку «avrdude: stk500_getsync(): not in sync: resp=0x00»:
- Убедитесь в том, что в настройках Arduino IDE вы выбрали правильный тип платы и правильный COM порт.
- Пару раз нажмите кнопку сброса на Ардуино и попробуйте после этого загрузить в нее код программы.
- Отключите и заново подсоедините плату к компьютеру.
- Закройте и снова запустите Arduino IDE.
Если выполненные действия не помогли — попробуйте прошить плату.
Здесь мы рассказывали о том, как это сделать с помощью другой платы Ардуино.
Заключение
Хоть Ардуино и позиционируются как решение для начинающих электронщиков и программистов, владельцы плат могут столкнуться с множеством проблем при ее использовании.
После последовательной проверки всех компонентов системы, начиная аппаратной, заканчивая программной частью, можно с уверенностью сказать, что Ардуино работает и готова к дальнейшему использованию.