Речь пойдет о низковольтном реле SRD-05VDC-SL-C китайского производства. Очень часто приходится коммутировать напряжение 220 v, в большинстве случаев самый идеальный вариант - это реле. Данное реле отличается тем, что им можно управлять с помощью 5-ти вольт, то есть в случае питания логики или микроконтроллера от 5-ти вольт, для реле не нужно городить дополнительную линию питания 12 или 24 вольта.
Поискав на реле srd-5vdc-sl-c datasheet я понял, что есть целая серия реле SRD с различным напряжением управления. Давайте расшифруем буквенно-цифровое обозначение реле и посмотрим, с чем имеем дело.
SRD -это серия реле.
05VDC - это Nominal coil voltage, дословно номинальное напряжение катушки, то есть напряжение управления реле, или то напряжение, которое надо подать на катушку реле, чтоб реле сработало и переключилось.
SL - первая бука S это Sealed type, реле закрытого типа. Вторая, L, Coil sensitivity, из даташита видим 0.36W, то есть мощность, которую необходимо подать на катушку - проще говоря, сколько катушка потребляет.
C - Contact form, тип схемы контактов реле, когда в нормальном состоянии (без подачи на обмотку напряжения) первый контакт замкнут со вторым, при подаче питания на катушку и срабатывании реле - первый контакт размыкается со вторым и замыкается с третьим.
Теперь разберемся с контактами реле и посмотрим как правильно подключить.
Как видим, распиновка реле SRD-05VDC-SL-C проста: с той стороны, где три вывода, крайние два - это катушка, на них надо подавать управляющие 5 вольт. Средний - это тот, к которому мы подводим коммутируемое напряжение, 220 вольт, например. И с противоположной стороны мы можем снимать напряжение, с одного вывода при отсутствии управляющего напряжения, или со второго при срабатывании реле (при подаче напряжения на обмотку). На картинке все нарисовано, поэтому я думаю у вас не возникнет вопроса как подключить SRD-05VDC-SL-C.
Перейдем к потреблению катушки реле. В даташите сказано 0.36 ватт, делим на 5 вольт, должно получится 72 миллиампера. Но поскольку это из графы "чувствительность катушки", то я предполагаю, что это минимум, при котором реле сработает. Давайте померяем и посмотрим сколько тока надо для реле SRD-05VDC-SL-C. Просто подадим на обмотку 5 вольт и посмотрим амперметром. В качестве источника питания - зарядное от телефона. Амперметр показал 72 миллиампера, что вполне соответствует указанным в даташите параметрам.
С таким потреблением реле нельзя подключать напрямую к ногам Arduino или микроконтроллера, так как можно запросто сжечь порт. Поэтому надо подключать через транзистор в режиме ключа.
Посмотрим, какой ток выдерживает это реле. В даташите есть таблица CONTACT RATING.
Из таблицы мы видим, что при резистивной нагрузке (лампа накаливания, например, или нагревательный элемент) максимальный ток составит 7 ампер, при индуктивной нагрузке (двигатель, например) - всего 3 ампера. Не стоит забывать, что это не номинальные, а максимальные значения.
Последняя строчка из этой таблицы говорит нам из чего сделаны контакты реле - это серебро с кадмием. Сколько содержится серебра в китайском реле, я сказать не берусь, но надеюсь, что оно там есть.
На базе этого реле есть готовые модули для Arduino - про них ничего сказать не могу, в руки не попадали. Само же реле SRD-05VDC-SL-C имеет немного нестандартное расстояние между выводами, в беспаечную макетную плату его не поставить. Да и на обычной макетной плате тоже проблемы - я решал их немного подгибая выводы реле и рассверливая посадочные отверстия в плате. Но если разводить и травить свою плату - то данное реле хорошо тем, что может работать от одного с ардуино источника питания. При этом не стоит забывать, что если блок питания слабенький, то напряжение будет проседать в момент срабатывания реле и микроконтроллер будет перезагружаться либо зависать. Решается использованием более мощного БП.
Так что если ищете какое реле выбрать для Arduino или микроконтроллера Attiny или Atmega - то с уверенностью советую использовать SRD-05VDC-SL-C, вполне достойное и с большинством задач справиться.
понедельник, 25 февраля 2019 г.
суббота, 23 февраля 2019 г.
Как пользоваться мультиметром DT-838
Многие начинающие электронщики, да и просто купившие мультиметр автолюбители, часто задаются вопросом как же пользоваться этим измерительным прибором.
Иногда при покупке в комплекте нету инструкции. Либо же человек раньше пользовался стрелочным тестером и не знает как пользоваться цифровым мультиметром.
Я хочу немножко прояснить вопрос как пользоваться одним из самых популярных и недорогих мультиметров - dt838. Из всей серии dt83X этот выделяеться наличием возможности измерения температуры с помощью термопары. Поэтому, при покупке в комплекте, помимо щупов, так же идет и термопара. На фото ниже можно посмотреть, что входит в комплект.
Что ж, начнем с самого верхнего положения селектора (селектор - это крутилка, с помощью которой вы выбираете режим измерения). Тут все просто - надпись OFF означает, что мультиметр выключен.
Крутим ручку селектора на одно деление вправо, попадаем на режим измерения переменного напряжения. Он подписан ACV, в этом положении мы можем измерить напряжение максимум до 750 вольт. Можно замерить, сколько вольт в розетке, например. Щупы при этом ставим следующим образом: черный пихаем в самый нижний разъем мультиметра, который подписан COM - это "земля", или минус при постоянном напряжении. Красный щуп в отверстие, расположенное рядом. На фото ниже показано положение щупов в мультиметре - в таком положении следует выполнять все измерения, кроме одного, до него мы скоро доберемся. Итак, щупы в мультиметр вставили, вторые концы щупов смело суем в розетку и смотрим на дисплей - там вы увидите показатели напряжения.
Следующее положение селектора в зоне ACV - до 200 вольт, отличается большей избирательностью, точность измерения повышается до десятичного знака после запятой. Но больше 200 вольт измерять нельзя - мультиметр выйдет из строя.
Следуящая зона DCA - это режим измерения постоянного тока. Первое положение позволяет измерять постоянный ток с точностью до микроампера, но при максимальном токе до 2 миллиампер. В быту используется очень редко.
Следующее положение - 20m, позволяет измерять ток максимум до 20-ти миллиампер, с точностью до десятков микроампер, использую для замера потребления микросхем и прочих малопотребляющих деталей.
Следующее - 200m, как вы уже догадались, можно замерять ток до 200 миллиампер.
10A - вот на этом положении остановимся подробнее. В этом положении можно замерять ток до 10-ти ампер, вот только положение щупов надо поменять. Если этого не сделать и померять сколько потребляет тока жесткий диск компьютера, например, то мультиметр сгорит. Щупы ставим так, как на фото ниже.
Следующее положение hFE служит для измерения hFE биполярных транзисторов. Что такое hFE - это коэффициент усиления по току, показывает во сколько раз ток коллектора транзистора больше тока базы. Для замера hFE предусмотрено посадочное место для транзисторов PNP и NPN проводимости, удобно для транзисторов в корпусе TO-92 - синее круглое гнездо внизу слева. Тут важно не просто сориентировать правильно выводы транзистора, но и достать ножками до контактных площадок, которые расположены довольно глубоко. Эта глубина создает некоторые неудобства для проверки выпаянных транзисторов, если ножки короткие - приходится допаивать кусочки проводов. То же самое и для транзисторов, которые не в корпусе TO-92 - TO-220 или smd.
Использую в основном для подбора комплиментарных пар.
Теперь добрались до режима измерения температуры, подписанного TEMP. Для измерения температуры служит термопара, её следует подключить вместо щупов. Сразу же увидите температуру окружающего воздуха.
Для того, чтоб померять температуру какого-то предмета, термопару следует плотно к нему прижать. Давайте интереса ради измерим температуру жала паяльника. Включаем паяльник, ждем, пока нагреется, после чего прижимаем термопару к жалу и смотрим показатели на дисплее. Видим, что температура жала 343 градуса.
Следующий режим - это прозвонка. Снимаем термопару, ставим на место щупы, черный в нижний разъем, красный в средний. Если коснемся щупами друг друга, проще говоря замкнем цепь, мультиметр запищит, подавая сигнал о том, что между щупами есть контакт. Очень удобно для отслеживания на платах шин или для поиска обрывов в проводах.
Дальше идет режим измерения сопротивления. Тут сектор разделен на несколько диапазонов, каждый отличается избирательностью и максимальным измеряемым сопротивлением. Помимо измерения сопротивления тут есть режим проверки диодов, который совмещен с режимом измерения сопротивления до 2 килоОм. Отличается этот режим тем, что в этом режиме на щупы подается ток 1.2 мА напряжением 2.8 вольт. В режиме на 200 Ом при напряжении 2.8 вольта ток немного больше - 2 мА, в остальных режимах напряжение составляет 0.5 вольт при токе 20 мкА - этого недостаточно, чтоб PN-переход диода открылся. Итак, давайте подробней рассмотрим процесс проверки диодов и узнаем, как мультиметром проверить светодиод, например.
В режиме измерения сопротивлений до 2 килоОм или до 200 Ом касаемся красным щупом анода, черным - катода, светодиод при этом должен засветится. Таким же образом с помощью мультиметра можно узнать, где у светодиода анод, а где катод - если не светится, переворачиваем светодиод относительно щупов, засветился - значит на красном щупе анод. Тот же принцип работает и для обычных диодов, только ориентируемся по показаниям дисплея.
В этом же режиме можно мультиметром проверить биполярный транзистор на пробой или на обрыв - проверяем PN-переходы. Как проверить полевой транзистор, можно посмотреть в статье Как мультиметром проверить MOSFET
Добрались до последнего режима, это режим измерения постоянного напряжения, подписан DCV. В этом режиме можно мультиметром померять напряжение аккумуляторной батареи, автомобильной бортовой электросети или же узнать, достаточно ли вольт выдает зарядка для телефона. При всех замерах следует помнить про выбор диапазона измерения дабы сжечь мультиметр. Максимум что можно на него подать - это 1000 вольт постоянного тока. Так же не стоит в этом режиме пытаться замерить напряжения в розетке.
В заключение скажу, что мультиметр не имеет автоматического выключателя, посему после работы следует перевести селектор в положение OFF, дабы батарея не села. Если такое уж случится, и батарея сядет, на дисплее высветится знак батареи - её следует заменить.
Как заменить батарейку на мультиметре? Да очень просто. Питается мультиметр от батареи типа КРОНА, напряжением 9 вольт. Покупаем батарейку, сзади на мультиметре есть один или два винта или шурупа (зависит от производителя), откручиваем их и меняем батарейку.
Вот такая вот получилась инструкция к мультиметру dt 838, изначально задумывалась как коротенькая заметка, описание dt-838. Пользуйтесь, учитесь и следите за тем, в каком режиме и что вы собираетесь измерять, дабы не угробить мультиметр.
Так же при работе с высоким напряжением соблюдайте технику безопасности и постоянно помните, что электрический ток при высоком напряжении имеет дурную привычку убивать.
Я хочу немножко прояснить вопрос как пользоваться одним из самых популярных и недорогих мультиметров - dt838. Из всей серии dt83X этот выделяеться наличием возможности измерения температуры с помощью термопары. Поэтому, при покупке в комплекте, помимо щупов, так же идет и термопара. На фото ниже можно посмотреть, что входит в комплект.
Что ж, начнем с самого верхнего положения селектора (селектор - это крутилка, с помощью которой вы выбираете режим измерения). Тут все просто - надпись OFF означает, что мультиметр выключен.
Крутим ручку селектора на одно деление вправо, попадаем на режим измерения переменного напряжения. Он подписан ACV, в этом положении мы можем измерить напряжение максимум до 750 вольт. Можно замерить, сколько вольт в розетке, например. Щупы при этом ставим следующим образом: черный пихаем в самый нижний разъем мультиметра, который подписан COM - это "земля", или минус при постоянном напряжении. Красный щуп в отверстие, расположенное рядом. На фото ниже показано положение щупов в мультиметре - в таком положении следует выполнять все измерения, кроме одного, до него мы скоро доберемся. Итак, щупы в мультиметр вставили, вторые концы щупов смело суем в розетку и смотрим на дисплей - там вы увидите показатели напряжения.
Следующее положение селектора в зоне ACV - до 200 вольт, отличается большей избирательностью, точность измерения повышается до десятичного знака после запятой. Но больше 200 вольт измерять нельзя - мультиметр выйдет из строя.
Следуящая зона DCA - это режим измерения постоянного тока. Первое положение позволяет измерять постоянный ток с точностью до микроампера, но при максимальном токе до 2 миллиампер. В быту используется очень редко.
Следующее положение - 20m, позволяет измерять ток максимум до 20-ти миллиампер, с точностью до десятков микроампер, использую для замера потребления микросхем и прочих малопотребляющих деталей.
Следующее - 200m, как вы уже догадались, можно замерять ток до 200 миллиампер.
10A - вот на этом положении остановимся подробнее. В этом положении можно замерять ток до 10-ти ампер, вот только положение щупов надо поменять. Если этого не сделать и померять сколько потребляет тока жесткий диск компьютера, например, то мультиметр сгорит. Щупы ставим так, как на фото ниже.
Следующее положение hFE служит для измерения hFE биполярных транзисторов. Что такое hFE - это коэффициент усиления по току, показывает во сколько раз ток коллектора транзистора больше тока базы. Для замера hFE предусмотрено посадочное место для транзисторов PNP и NPN проводимости, удобно для транзисторов в корпусе TO-92 - синее круглое гнездо внизу слева. Тут важно не просто сориентировать правильно выводы транзистора, но и достать ножками до контактных площадок, которые расположены довольно глубоко. Эта глубина создает некоторые неудобства для проверки выпаянных транзисторов, если ножки короткие - приходится допаивать кусочки проводов. То же самое и для транзисторов, которые не в корпусе TO-92 - TO-220 или smd.
Использую в основном для подбора комплиментарных пар.
Теперь добрались до режима измерения температуры, подписанного TEMP. Для измерения температуры служит термопара, её следует подключить вместо щупов. Сразу же увидите температуру окружающего воздуха.
Для того, чтоб померять температуру какого-то предмета, термопару следует плотно к нему прижать. Давайте интереса ради измерим температуру жала паяльника. Включаем паяльник, ждем, пока нагреется, после чего прижимаем термопару к жалу и смотрим показатели на дисплее. Видим, что температура жала 343 градуса.
Следующий режим - это прозвонка. Снимаем термопару, ставим на место щупы, черный в нижний разъем, красный в средний. Если коснемся щупами друг друга, проще говоря замкнем цепь, мультиметр запищит, подавая сигнал о том, что между щупами есть контакт. Очень удобно для отслеживания на платах шин или для поиска обрывов в проводах.
Дальше идет режим измерения сопротивления. Тут сектор разделен на несколько диапазонов, каждый отличается избирательностью и максимальным измеряемым сопротивлением. Помимо измерения сопротивления тут есть режим проверки диодов, который совмещен с режимом измерения сопротивления до 2 килоОм. Отличается этот режим тем, что в этом режиме на щупы подается ток 1.2 мА напряжением 2.8 вольт. В режиме на 200 Ом при напряжении 2.8 вольта ток немного больше - 2 мА, в остальных режимах напряжение составляет 0.5 вольт при токе 20 мкА - этого недостаточно, чтоб PN-переход диода открылся. Итак, давайте подробней рассмотрим процесс проверки диодов и узнаем, как мультиметром проверить светодиод, например.
В режиме измерения сопротивлений до 2 килоОм или до 200 Ом касаемся красным щупом анода, черным - катода, светодиод при этом должен засветится. Таким же образом с помощью мультиметра можно узнать, где у светодиода анод, а где катод - если не светится, переворачиваем светодиод относительно щупов, засветился - значит на красном щупе анод. Тот же принцип работает и для обычных диодов, только ориентируемся по показаниям дисплея.
В этом же режиме можно мультиметром проверить биполярный транзистор на пробой или на обрыв - проверяем PN-переходы. Как проверить полевой транзистор, можно посмотреть в статье Как мультиметром проверить MOSFET
Добрались до последнего режима, это режим измерения постоянного напряжения, подписан DCV. В этом режиме можно мультиметром померять напряжение аккумуляторной батареи, автомобильной бортовой электросети или же узнать, достаточно ли вольт выдает зарядка для телефона. При всех замерах следует помнить про выбор диапазона измерения дабы сжечь мультиметр. Максимум что можно на него подать - это 1000 вольт постоянного тока. Так же не стоит в этом режиме пытаться замерить напряжения в розетке.
В заключение скажу, что мультиметр не имеет автоматического выключателя, посему после работы следует перевести селектор в положение OFF, дабы батарея не села. Если такое уж случится, и батарея сядет, на дисплее высветится знак батареи - её следует заменить.
Как заменить батарейку на мультиметре? Да очень просто. Питается мультиметр от батареи типа КРОНА, напряжением 9 вольт. Покупаем батарейку, сзади на мультиметре есть один или два винта или шурупа (зависит от производителя), откручиваем их и меняем батарейку.
Вот такая вот получилась инструкция к мультиметру dt 838, изначально задумывалась как коротенькая заметка, описание dt-838. Пользуйтесь, учитесь и следите за тем, в каком режиме и что вы собираетесь измерять, дабы не угробить мультиметр.
Так же при работе с высоким напряжением соблюдайте технику безопасности и постоянно помните, что электрический ток при высоком напряжении имеет дурную привычку убивать.
понедельник, 18 февраля 2019 г.
Arduino IDE или C/C++?
В этой статье я хочу сравнить среды и средства разработки, выявить их положительные и отрицательные стороны, а так же разобраться, с чего лучше начинать изучать микроконтроллеры.
Многие из тех, кто хочет познакомиться с микроконтроллерами, не знают с чего начать. Какой микроконтроллер выбрать начинающему, какой язык программирования, какую среду разработки? У каждого выбора есть свои плюсы и минусы. Разобраться во всем и сразу невозможно. Чем же руководствоваться при выборе? В первую очередь целью. Достаточно задать себе вопрос "Зачем мне это надо?". Итак, давайте сравним среду разработки Arduino с написанием прошивки для микроконтроллера на C/C++ в Atmel Studio, например.
Неоспоримый плюс Arduino IDE в легкости освоения. Для того, чтоб сделать первый шаг и моргнуть светодиодом, не нужно изучать язык программирования, не нужно изучать архитектуру микроконтроллера и заниматься его инициализацией. Но в этом кроется основной на мой взгляд минус Arduino IDE - нет понимания как работает микроконтроллер, для программиста он остается таким себе "черным ящиком". Столкнувшись с тем, что в реальном времени необходимо работать с большим массивом информации с внешних датчиков и управлять несколькими двигателями, программисту будет трудно написать код так, чтоб все работало точно и безотказно. Например, использовать прерывания по таймеру вместо ардуиновского delay.
В этом есть неоспоримый плюс написания прошивок на C/C++ - понимание работы микроконтроллера, его особенностей и периферии. Это дает возможность использовать микроконтроллер рационально, в большинстве случаев дает прирост производительности, что в свою очередь дает экономию на разрабатываемом приборе. Минус - время на изучение. Чтоб освоить с нуля язык, необходимо время, плюс изучение микроконтроллера. При переходе на другой микроконтроллер - надо изучать новый микроконтроллер, его регистры, периферию. При переходе на другую архитектуру - еще больше времени. С приходом опыта этот минус немного нивелируется и времени на освоение нового уходит все меньше и меньше, ибо ты уже как минимум с половиной из того, что надо изучить, сталкивался в предыдущих микроконтроллерах, но все же требуется некоторый мозговой штурм для изучения нового.
Еще один минус Arduino IDE - это то, как эта среда использует ресурсы микроконтроллера. Если необходимо много всего впихнуть в микроконтроллер или работать в режиме реального времени - то появляются трудности. Проблема решается выбором более мощного контроллера, что в свою очередь несет общее удорожание разрабатываемого прибора. Например, там, где можно было бы обойтись Attiny4313, придется ставить Atmega238. На C/C++ подобная проблема изначально отсутствует, так как среда разработки не добавляет в код то, чего туда не пишет программист, что в свою очередь позволяет более рационально использовать ресурсы микроконтроллера.
Один из плюсов C/C++ - нет фактически никаких ограничений по алгоритмам и кодам, кроме накладываемых ограничений самого микроконтроллера. Из-за этого в среде Arduino IDE очень часто встречаются вставки кода на C, когда гибкости Arduino language попросту не хватает.
Еще один неоспоримый плюс Arduino - множество примеров в свободном доступе. Платформа поддерживает очень большое число различный датчиков и контроллеров, для быстрого запуска нового датчика в большинстве случаев достаточно всего лишь скачать готовую библиотеку под этот самый датчик. Это очень сильно экономит время. Но в этом есть и определенный минус - все то же непонимание, как это все работает. Используя чужие наработки и не вникая в них, до конца не понимаешь, как работает тот или иной датчик.
Это основные плюсы и минусы двух разных подходов. Что касается того, стоит ли полностью отказываться от одного в пользу другого - однозначно нет. Для нормального изучения микроконтроллеров однозначно использовать C/C++, а вот для того, чтоб быстро запустить или проверить новое устройство - Arduino IDE.
В заключение хочу сказать о том, что выбор среды разработки в первую очередь должен давать ответ на вопрос "зачем мне это надо?". Например, что должен знать начинающий программист-микроконтроллерщик? Правильно, микроконтроллеры. С Arduino IDE вряд ли удастся добиться полного знания и понимания с чем работаешь. Но если нужно очень быстро создать прототип устройства, которое в дальнейшем можно будет легко воспроизвести кем угодно - то тут лучше взять ардуино.
Сам же я начинал писать на C/C++, активно пишу и сейчас, и не менее активно использую Arduino IDE. Для примера приведу микроконтроллер Attiny13a - код, написанный для него в Atmel Studio, будет занимать гораздо меньше места, чем тот же код написанный в Arduino IDE. В то же время когда мне пришли с алиекспресс датчики BMP280, для проверки их на работоспособность я использовал Arduino IDE с уже готовой библиотекой для этих датчиков - я потратил гораздо меньше времени, нежели потратил бы разрабатывая свои библиотеки на C в Atmel Studio. Потому я никогда не поддерживал и не буду поддерживать холиваров на тему "что лучше: Arduino language или C/C++?", у каждого способа и метода есть свой неповторимый функционал и назначение. Используя в равной мере оба способа там, где это надо, либо выбирая наиболее подходящий для конкретного случая - можно добиться гораздо лучших результатов, нежели ограничивая себя чем-то одним.
Многие из тех, кто хочет познакомиться с микроконтроллерами, не знают с чего начать. Какой микроконтроллер выбрать начинающему, какой язык программирования, какую среду разработки? У каждого выбора есть свои плюсы и минусы. Разобраться во всем и сразу невозможно. Чем же руководствоваться при выборе? В первую очередь целью. Достаточно задать себе вопрос "Зачем мне это надо?". Итак, давайте сравним среду разработки Arduino с написанием прошивки для микроконтроллера на C/C++ в Atmel Studio, например.
Неоспоримый плюс Arduino IDE в легкости освоения. Для того, чтоб сделать первый шаг и моргнуть светодиодом, не нужно изучать язык программирования, не нужно изучать архитектуру микроконтроллера и заниматься его инициализацией. Но в этом кроется основной на мой взгляд минус Arduino IDE - нет понимания как работает микроконтроллер, для программиста он остается таким себе "черным ящиком". Столкнувшись с тем, что в реальном времени необходимо работать с большим массивом информации с внешних датчиков и управлять несколькими двигателями, программисту будет трудно написать код так, чтоб все работало точно и безотказно. Например, использовать прерывания по таймеру вместо ардуиновского delay.
В этом есть неоспоримый плюс написания прошивок на C/C++ - понимание работы микроконтроллера, его особенностей и периферии. Это дает возможность использовать микроконтроллер рационально, в большинстве случаев дает прирост производительности, что в свою очередь дает экономию на разрабатываемом приборе. Минус - время на изучение. Чтоб освоить с нуля язык, необходимо время, плюс изучение микроконтроллера. При переходе на другой микроконтроллер - надо изучать новый микроконтроллер, его регистры, периферию. При переходе на другую архитектуру - еще больше времени. С приходом опыта этот минус немного нивелируется и времени на освоение нового уходит все меньше и меньше, ибо ты уже как минимум с половиной из того, что надо изучить, сталкивался в предыдущих микроконтроллерах, но все же требуется некоторый мозговой штурм для изучения нового.
Еще один минус Arduino IDE - это то, как эта среда использует ресурсы микроконтроллера. Если необходимо много всего впихнуть в микроконтроллер или работать в режиме реального времени - то появляются трудности. Проблема решается выбором более мощного контроллера, что в свою очередь несет общее удорожание разрабатываемого прибора. Например, там, где можно было бы обойтись Attiny4313, придется ставить Atmega238. На C/C++ подобная проблема изначально отсутствует, так как среда разработки не добавляет в код то, чего туда не пишет программист, что в свою очередь позволяет более рационально использовать ресурсы микроконтроллера.
Один из плюсов C/C++ - нет фактически никаких ограничений по алгоритмам и кодам, кроме накладываемых ограничений самого микроконтроллера. Из-за этого в среде Arduino IDE очень часто встречаются вставки кода на C, когда гибкости Arduino language попросту не хватает.
Еще один неоспоримый плюс Arduino - множество примеров в свободном доступе. Платформа поддерживает очень большое число различный датчиков и контроллеров, для быстрого запуска нового датчика в большинстве случаев достаточно всего лишь скачать готовую библиотеку под этот самый датчик. Это очень сильно экономит время. Но в этом есть и определенный минус - все то же непонимание, как это все работает. Используя чужие наработки и не вникая в них, до конца не понимаешь, как работает тот или иной датчик.
Это основные плюсы и минусы двух разных подходов. Что касается того, стоит ли полностью отказываться от одного в пользу другого - однозначно нет. Для нормального изучения микроконтроллеров однозначно использовать C/C++, а вот для того, чтоб быстро запустить или проверить новое устройство - Arduino IDE.
В заключение хочу сказать о том, что выбор среды разработки в первую очередь должен давать ответ на вопрос "зачем мне это надо?". Например, что должен знать начинающий программист-микроконтроллерщик? Правильно, микроконтроллеры. С Arduino IDE вряд ли удастся добиться полного знания и понимания с чем работаешь. Но если нужно очень быстро создать прототип устройства, которое в дальнейшем можно будет легко воспроизвести кем угодно - то тут лучше взять ардуино.
Сам же я начинал писать на C/C++, активно пишу и сейчас, и не менее активно использую Arduino IDE. Для примера приведу микроконтроллер Attiny13a - код, написанный для него в Atmel Studio, будет занимать гораздо меньше места, чем тот же код написанный в Arduino IDE. В то же время когда мне пришли с алиекспресс датчики BMP280, для проверки их на работоспособность я использовал Arduino IDE с уже готовой библиотекой для этих датчиков - я потратил гораздо меньше времени, нежели потратил бы разрабатывая свои библиотеки на C в Atmel Studio. Потому я никогда не поддерживал и не буду поддерживать холиваров на тему "что лучше: Arduino language или C/C++?", у каждого способа и метода есть свой неповторимый функционал и назначение. Используя в равной мере оба способа там, где это надо, либо выбирая наиболее подходящий для конкретного случая - можно добиться гораздо лучших результатов, нежели ограничивая себя чем-то одним.
Подписаться на:
Сообщения (Atom)








