Задать вопрос
Ответы пользователя по тегу Arduino
  • ESP32 ближе в работе к STM или Arduino?

    @mordo445
    STM сами по себе, ESP32 сами по себе. На платформе ардуино они пересекаются, но имеют разные ограничения. Обе архитектуры раскрываются в собственном инструментарии разработки, кроме того STM это целое семейство мощных и не очень контроллеров, в формате ардуино же вам доступен "Blue pill" который на STM32F103C8T6.
    Если вам нужна оригинальная микросхема ищите ее у крупных поставщиков. А если вы ищите модуль, где ни будь на али, то тут посоветовать ничего не могу. Что там будет это как повезет.
    Ответ написан
  • Как правильно настроить аппаратный UART между Arduino DUE и Mega?

    @mordo445
    почему вы не отправляете все данные одним пакетом? У вас же 15 байт, всё влезат в буфер. Нет смысла отправлять отдельные байты, лучше отправить структуру и парсить ее в структуру
    Ответ написан
    Комментировать
  • Ошибка с ESP32?

    @mordo445
    Обложи код отладочными сообщениями в терминал, надо выяснить на каком моменте, на вызове какой функции контроллер падает.
    На моем опыте библиотека SPI довольно капризна, и контроллер падал 1. когда запускалась связь с неработающим устройством. 2. Когда не было устройства на шине. 3. Когда на шине было устройство, а инициализация не проводилась.
    И самое главное 4. когда библиотека SPI была не совместима с версией ядра и другими библиотеками, на это я тоже довольно много времени потратил.
    Ответ написан
  • Программирование плат Arduino, какой язык лучше использовать?

    @mordo445
    Ардуино это лишь среда разработки и пакет библиотек для упрощения разработки. Но Ардуино не ограничен возможностями библиотеки или среды, она позволяет использовать все инструменты доступные в родительском фреймворке, для Uno/Nano на AMega328 всё что может AVR C++ доступно, и вы можете как писать в стиле Ардуино, используя его встроенные библиотеки, так и использовать чистые функции AVR C++, и даже использовать ассемблер для отдельных операций. Компилятор под капотом тот же самый.
    Научится программировать легче в песочнице Ардуино, главное не забыть потом развиваться за ее пределы. И если цель стать эмбеддером, а не хобби иметь, лучше сразу брать камушки посовременнее и учится с ними. Освоить арду потом будет как раз-два.
    Ответ написан
    Комментировать
  • Как мигать светодиодом без delay в setup()?

    @mordo445
    void setup(){
    <...>
    byte n = 4;
    While(n){
    <моргаем диодом>
    n--;
    }
    <...>
    }
    Ответ написан
    Комментировать
  • Почему точность функции dtostrf() снижается при обработке чисел с шестью или более знаками перед запятой?

    @mordo445
    В том что это 8-битный контроллер и операции с плавающей точкой на семействе AVR Atmel выполняются с погрешностью. Посмотрите код деления double на double в ассемблере или поверьте на слово, оперируя float/double вы получите погрешность, даже с меньшим количеством знаков перед/после запятой, проявляющуюся случайно. Если вам требуется повышенная точность, используйте int, где то там была библиотека, реализующая хранение float в двух переменных int и операции с ним
    Ответ написан
  • Как написать простой код со светодиодной лентой ардуино?

    @mordo445
    Написать простой код несложно. Сначала надо найти "как на ардуино работают с адресной лентой". В множестве выдач быстро обнаруживается, что чаще других используют библиотеку FastLED. Дальше идем на ее Git и видим множество доступных примеров. Через пару часов чтения и экспериментов со своими изменениями в коде примеров вы получите что то отдаленно похожее на задумку...
    Это вообще универсальный ответ, о том, как что то написать новичку
    Ответ написан
    Комментировать
  • Направление шагового двигателя Arduino?

    @mordo445
    Посмотрел в описании библиотеки за вас
    moveTo()
    void AccelStepper::moveTo	(	long 	absolute	)

    Set the target position. The run() function will try to move the motor (at most one step per call) from the current position to the target position set by the most recent call to this function. Caution: moveTo() also recalculates the speed for the next step. If you are trying to use constant speed movements, you should call setSpeed() after calling moveTo().

    Parameters
    [in] absolute The desired absolute position. Negative is anticlockwise from the 0 position.
    References computeNewSpeed().

    Referenced by
    move(), MultiStepper::moveTo(), and runToNewPosition()
    .

    Таки функция ждет положительные и отрицательные значения в шагах мотора, для поворота от нулевой позиции. Жаль нет под рукой мотора, проверить. Попробуйте переписать код и проверить что там попадает в функцию в виде position.
    Конструкция
    while (stepper.distanceToGo() != 0) {
      stepper.run();
    ...};

    должна быть лишняя, потому как
    stepper.runToPosition();
    блокирует выполнения кода в основном цикле, пока мотор не докатит до нужной позиции, опять же из описания библиотеки.
    Ответ написан
  • Как отправлять пакеты по Wi-Fi для управления МК ESP8622?

    @mordo445
    Для стороны ESP нет ничего сложного. В ядре Ардуино для ESP реализована подсистема lwIP, принимающая и передающая ip пакеты по байтам, конструктор пакетов фактически. Для нее естественно уже есть множество библиотек, реализующих протоколы и интерфейсы, многие в ядре. На ваш выбор:
    WiFiUDP.h - реализует прием и отправку udp пакетов, в том числе multicast. Самый быстрый в имплементации вариант.
    ESP8266HTTPClient.h и ESP8266WebServer.h - тут я думаю объяснять ничего не нужно. Поддерживают авторизацию, открытую/base64 и digest. Сервер мощнее клиента, можно и cgi использовать. На питоне, думаю не будет большой проблемой вызвать GET с нужным путем по адресу сервера
    Есть еще ICMP, SNMP и NTP от энтузиастов, а так же разнообразные библиотеки для работы с MQTT. Выбор большой, освоение не составляет большого труда, библиотеки в основном хорошо документированы.
    Ответ написан
    Комментировать
  • Можно ли два контакта подключить вот так от процессора ардуино?

    @mordo445
    63ea089619164051115044.png
    А где DRS Error? Ручная разводка, без указания связей? Не для первого раза.
    Ответ написан
    1 комментарий
  • Как определить расстояние между двумя радиомодулями?

    @mordo445
    В Биботе насколько помню есть ИК-дальномер/детектор препятствий в черных зрачках пчелы.
    Вот человек решал похожую задачу, создавая своего бибота, может что ни будь отсюда пригодится ссылка.
    Ответ написан
    Комментировать
  • Какой микроконтроллер выдержит напряжение 24v и будет исправно ШИМить?

    @mordo445
    С теми знаниями электроники, что вы продемонстрировали лучше поменять подход. Попробуйте, например, запрос на алиэкспресс "Led strip pwm rgb". В результате вы получите готовые модули, которые могут содержать контроллер, а могут принимать 3.3 или 5 В ШИМ, питание 24 В, и подключить три канала ленты на несколько ампер. Еще там есть готовые контроллеры на ESPxxxx, с wi-fi и управлением уровнями. Например ключи в сборе, в корпусе, диммер с крутилкой, готовый контроллер
    Ответ написан
    Комментировать
  • Можно ли прошивку записать на arduino nano, а затем выпаять atmega328p и вставить в свою самоделку?

    @mordo445
    Можно, но какой смысл? Правильно обвязанная плата с 328 мегой будет размером почти как нано. Используйте свою ардуино как программатор, просто напишите в поисковом запросе "программатор avr на arduino". Как верно подметил kalapanga следует добавить в поддержку вашей arduino ide голых процессоров. Можете использовать пособие от Гайвера, подробное. Ваш код скорее всего влезет в tiny13, а она меньше в размерах значительно, и обвязки требуется меньше.
    Ответ написан
    Комментировать
  • Вопросы про модули RF433 Arduino?

    @mordo445
    Дорогой mIka01 , скажите руководителю, что пока он сам не придумает как при помощи RF433 и 16MHz ардуины обнаружить доплеровское смещение от объекта за стеной, вам такие задачи в продашен не ставит -- разве что как учебный проект результат которого только обучение. RF433 использует амплитудную модуляцию, сдвиг сигнала на выходе это результат, скажем так, сработавшего тригера, который получил от демодулятора достаточной длины и уровня сигнал, который устройством будет считаться за единицу и будет передан в контроллер. От доплеровского сдвига он зависит весьма опосредовано -- в непонятную сторону, определяемую разбросом параметров элементов. Сдвиг будет больше при плохом сигнале. Ща нарисую

    60df1c710eeb0798647029.png

    Тот мизерный эффект Доплера, который будет создаваться движущимися не параходом и не самолетом будет двигать несущую в ширь или в узь, и в зависимости от настройки регенератора приемника на эту частоту будет давать уровень сигнала выше или ниже, и только. Гораздо сильнее на решение демодулятора будут влиять помехи многолучевого распространения и наводок -- для вас это шум и помеха полезному сигналу. Я нарисовал диаграмму, с защитными интервалами, но что то не уверен что они там у RF433 есть, по моему просто вкл/выкл, так что вы будете страдать от такого шума сильнее. Сигнал на выходе приемника будет ерзать по фазе совершенно не передавая как нибудь объяснимо что там вокруг антенн происходит. А для каких нибудь извращений с обработкой сигнала самой ардуиной вам частоты процессора будет очень не хватать, всего то 16 МГц, понадобится антенна размером с маленький дирижабль
    Если вам руководитель расскажет как это сделать, не томите, поделитесь! Я даже попробую на практике.
    Ответ написан
    8 комментариев
  • Как отправить данные с одного устройства на другое зная только MAC адрес?

    @mordo445
    Вам нужно найти ip адрес другого устройства. Для правильной, надежной и простой в разработке связи вам нужно использовать ip-адрес. Что бы одно устройство смогло найти ip адрес другого и с ним связаться они должны быть в одном широковещательном сегменте сети. У вас есть варианты:
    1. Используйте SSDP. Он возвращает информацию об устройстве, в ответе будет IP адрес. Для дальнейшей коммуникации адреса должны быть из одной подсети.
    2. Создайте собственный протокол на основе мультикаст, пусть ваше устройство "слушает" заранее определенную группу, а второе в эту группу вещает. Адреса устройств не важны, сеть не должна блокировать прохождение мультикаст трафика, если не поддерживается IGMP-snooping, устройства будут захламлять сеть своим трафиком.
    3. Используйте на устройствах только заранее известные ip адреса. Выход в интернет будет весьма затруднен, не годится для серийных устройств (как и аврдуино,lol).
    Я к сожалению не программист-разработчик, так что с кодом не помогу, только с идеями.
    Ответ написан