Задать вопрос
  • Как на практике производится перенос проектов Arduino в отдельное устройство?

    @vanyamba-electronics
    Процесс создания Arduino на макетной плате пошагово описан в статье Building an Arduino on a Breadboard.

    Всё, что требуется - это взять микроконтроллер ATmega328P, прошить в него бутлоадер Arduino, запрограммировать FUSE-биты и после этого можно использовать для его программирования Arduino IDE.

    Единственное, что может потребоваться - это создать для него специальную конфигурацию, в том случае, если Вы захотите тактировать Ваш микроконтроллер не от кристалла 16 MHz, а например от встроенного осциллятора на 8 MHz. В этом случае нужно будет просто отредактировать файл boards.txt, добавив в него собственную конфигурацию.
    Ответ написан
    Комментировать
  • Можно ли использовать полевой транзистор для коммутации сигналов?

    @vanyamba-electronics
    Что-то у Вас земля Arduino подключена к отрицательному полюсу нагрузки.
    Так подключать не следует. Потому что при таком подключении у Вас получается разница напряжений между землёй нагрузки и зёмлей Arduino 12 Вольт. При попытке заземлить такое устройство Arduino сразу же выйдет из строя.
    Ответ написан
    Комментировать
  • Как избавиться от задержки при передаче данных в arduino через последовательный порт?

    @vanyamba-electronics
    Когда хост обращается к последовательному порту Ардуино (вызов функции serial.open()), происходит так называемый мягкий сброс (soft reset) микроконтроллера. При этом запускается бутлоадер Ардуино, который некоторое время ждёт, не поступит ли от хоста специальной последовательности символов для запуска программы загрузки новой прошивки.

    Поскольку специальная последовательность не поступает, то бутлоадер передаёт управление прошивке пользователя, запуская Ваш скетч.

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

    Без этой перемычки при загрузке скетча в Arduino IDE надо будет вручную нажимать кнопку сброса, чтобы запустить бутлоадер.
    Ответ написан
  • Можно ли с выхода ардуино сразу на реле вывод делать?

    @vanyamba-electronics
    Не стоит. В реле используется индуктивность, поэтому его нужно подключать так же, как например динамик - через транзистор.
    Могу порекомендовать прочитать мою заметку Как подключить к Arduino 8-омный динамик.
    Ответ написан
    Комментировать
  • На чем пишутся скетчи в Arduino?

    @vanyamba-electronics
    Это самый что ни на есть обычный C++. Для компиляции скетчей используется либо AVR-GCC (для микроконтроллеров AVR8), либо ARM-NONE-EABI-GCC - для микроконтроллеров ARM.
    Ответ написан
    Комментировать
  • Как создать USB HID из Arduino?

    @vanyamba-electronics
    Самому пытаться программировать USB можно, конечно, но приготовьтесь, что на решение только одной этой задачи у Вас уйдут следующие несколько лет. Проще воспользоваться готовой библиотекой.
    В случае, если в микроконтроллере нет встроенного USB-порта, то можно попробовать использовать библиотеку V-USB (виртуальный USB), но как и все чисто софтовые решения, это скорее эмулятор, чем полноценный порт. Требует много процессорного времени, и к тому же качество её работы оставляет желать лучшего. Например, если погрузить компьютер в спящий режим, то V-USB вряд ли это распознает, и придётся каждый раз переподключать микроконтроллер, или нажимать на кнопку сброса.
    Так что попробовать стоит, но лично я рекомендую использовать микроконтроллер ATmega32U4, на котором построена плата Arduino Leonardo. Для него поддержка USB HID реализована в самом программном обеспечении Arduino IDE, так что для того, чтобы превратить микроконтроллер в "мышь" и "клавиатуру" (одновременно), достаточно просто загрузить скетч примера.
    И наконец, третий вариант. В современных Arduino вместо чипа USB-RS232 используется микроконтроллер ATmega16U2. Это практически тот же Arduino Leonardo, только памяти у него в 2 раза меньше. Можно перепрограммировать в USB HID его, разве что потребуется программатор, потому что он программируется через интерфейс ICSP.
    Ответ написан
    Комментировать
  • Как правильно инкапсулировать методы одного класса в методы другого?

    @vanyamba-electronics
    1 ошибка. Инклюд внутри функции. Поместите эти инклюды в начало файла lib.h.

    2 ошибка. В методе lib::open() вы пытаетесь создать на стеке локальную версию объекта EthernetClient. Когда метод завершится, должен быть вызван его деструктор класса.
    Ответ написан
    Комментировать
  • Где найти библиотеку?

    @vanyamba-electronics
    Это не библиотека. Этот инклюд требуется, чтобы размещать данные во flash памяти программ микроконтроллера.
    Например так
    #include <avr/pgmspace.h>
    const prog_char isrDebug[] = { "\r\nISR debug " };
    extern const prog_char isrDebug[] PROGMEM;
    Ответ написан
    Комментировать
  • Как сделать микроконтроллеру самовыключение?

    @vanyamba-electronics
    Потребуется логический элемент ИЛИ. При нажатии на кнопку сигнал подаётся на элемент ИЛИ, с выхода которого включается транзистор, подающий питание на микроконтроллер. Микроконтроллер при запуске подаёт второй сигнал на элемент ИЛИ, чтобы пользователь мог отпустить кнопку. После окончания работы программы микроконтроллер подаёт сигнал выключения.

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

    fa38b6bc94724d40a6b204c759e9cf8b.png

    Пользователь нажимает на кнопку S1 и удерживает её нажатой, пока не начнёт светиться светодиод LED1. При старте программы, микроконтроллер подаёт высокий логический уровень на выводе PWRON.
    Ответ написан
    5 комментариев
  • Как подключить на пин ардуино сигнал с другого устройства?

    @vanyamba-electronics
    Проблема может возникнуть, если напряжение питания берётся не через трансформатор, а напрямую от сети 220 В через выпрямитель и делитель напряжения. Подробнее можно почитать в статье Конденсаторное питание.
    Чтобы убедиться в том, что 2 устройства можно безопасно между собой, нужно взять вольтметр и замерить напряжение между землями. Если оно не равно нулю, то напрямую их соединять нельзя, нужно передавать сигнал через оптопару.
    Ответ написан
    Комментировать
  • Можете подсказать аналог Arduino Micro с Ethernet и PoE?

    @vanyamba-electronics
    Я бы делал не на Ethernet, а на WiFi подобную сетку. Есть и платки компактные - ESP8266.
    Ответ написан
  • Как заставить работать 433Мгц брелок и реле?

    @vanyamba-electronics
    Для этой задачи нужно написать простейшую машину состояний, с двумя состояниями - ВКЛ и ВЫКЛ, переключаемыми по нажатию кнопки.
    Ответ написан
    Комментировать
  • Как разогнать HDD?

    @vanyamba-electronics
    Ардуино для этого вряд ли подойдёт. Скорость работы Arduino - 16МГц. Умножаем на 60 секунд. Делим на 5400 оборотов диска. Получаем 177777 команд.
    Допустим, мы решили записать данные на диск. Если мы станем писать их последовательно, то получится 2692 бита на 1 дорожку.
    То есть, чтобы записывать данные с помощью Arduino, потребуется записывать каждый бит 1 раз на оборот, смещаясь по фазе вращения. Получается, что для записи 5400 бит потребуется 5400 оборотов, то есть 1 минута.
    Следовательно, диск надо будет вращать гораздо медленнее. То есть не разгонять, а наоборот - тормозить.
    Например, на скорости 33,33333 в минуту на одну дорожку поместится уже 288800000 бит. А столько уже в память Ардуино не поместится, то есть данные надо будет писать с хоста, передавая их по USB (скорости USART не хватит).
    Отсюда вывод. Диск на вращать со скоростью 61 оборот в минуту. Тогда Ардуино сможет записывать по 32768 байт на дорожку за 1 секунду.
    Ответ написан
    Комментировать
  • Как мерить уровень сигнала Кабельного телевидения с ардуино?

    @vanyamba-electronics
    Вот неплохая схемка. Однако мне кажется, что проблема просто в том, что вместо 75 Омного кабеля используется 50 Омный.
    Ответ написан
    Комментировать
  • Почему python не открывает серийный порт через браузер?

    @vanyamba-electronics
    Если Вы работаете с последовательным портом через файл устройства, то проще всего открывать его как обычный файл. Посмотрите примеры к заметке Мой первый шилд и волшебный экран
    Ответ написан
    Комментировать
  • Arduino. Как сделать мелодию для двух и более пьезоизлучателей?

    @vanyamba-electronics
    Чтобы с помощью Arduino управлять генерацией сигналов, потребуется изучить генерацию сигналов в режиме быстрого ШИМ (широтно-умпульсная модуляция). Я думаю, данная статья о генерации сигналов с помощью Arduino окажется не бесполезной.
    Arduino. Генератор сигналов
    Ответ написан
  • Научите загрузке bootloader`a?

    @vanyamba-electronics
    Если микроконтроллер не дал дуба, что возможно, хотя шансы невелики, то для его прошивки потребуется программатор - например, AVR-ISP, USBtinyISP или Раrallel programmer (он же 5 проводков).
    После подключения в Arduino IDE выбирается тип платы, тип программатора и прошивается загрузчик (Tools > Burn Bootloader).
    Ответ написан
  • Самый лучший ресурс для изучения UNIX, для начинающего?

    @vanyamba-electronics
    Лучший учебник по Линуксу - это сам Линукс. Лично я почуствовал себя в своей тарелке как пользователь, лишь спустя 10 лет использования. Возможно ли ускорить этот процесс? Наверное, но какой получится стоимость - это тот ещё вопрос.
    Поэтому лучший совет - это не напрягаться, а пользоваться и получать удовольствия от самого обучения. Потому что результат стоит того.
    Ответ написан
    1 комментарий
  • Что можно реализовать на Arduino?

    @vanyamba-electronics
    Ну, например, отправить 3 запроса в качестве web-клиента в связке с Ethernet Shield.
    Ответ написан
    Комментировать