Автор Тема: Ардуино контроллер поворотки  (Прочитано 453485 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RX9A

  • Ветеран
  • *****
  • Сообщений: 553
  • Репутация: +163/-2
  • QRA: MO05qe
Re: Ардуино контроллер поворотки
« Ответ #1785 : 31 Декабря 2025, 12:55:50 »
Di     данные вход
DE    передатчик вкл     1=вкл  0 выкл
RE    приемник  вкл       0=вкл  1=выкл
RO   данные выход
Чтобы реализовать  IIC нужно 2 канала 485  по одному гоним CLK по другому DATA  плюс маленькая схемка (резистор ,конденсатор и один элемент логики в 6 ногом корпусе)которая переводит канал данных на передачу.
« Последнее редактирование: 31 Декабря 2025, 12:58:19 от RX9A »

Оффлайн R2RT

  • Постоялец
  • ***
  • Сообщений: 81
  • Репутация: +36/-1
  • Подпись находится в стадии разработки
  • QRA: LO02RP
Re: Ардуино контроллер поворотки
« Ответ #1786 : 31 Декабря 2025, 13:18:16 »
[urlhttps://aliexpress.ru/item/1005007650588726.html?shpMethod=CAINIAO_STANDARD&sku_id=12000041654676079&spm=a2g2w.productlist.search_results.0.49f27b3eh2bKEi][/url]
Для датчика температуры и влажности ...чуть дороже.

PS при этом 1 наверху второй внизу у платы ArNano.
« Последнее редактирование: 31 Декабря 2025, 13:21:53 от R2RT »
Алексей, Бокино

Оффлайн RX9A

  • Ветеран
  • *****
  • Сообщений: 553
  • Репутация: +163/-2
  • QRA: MO05qe
Re: Ардуино контроллер поворотки
« Ответ #1787 : 31 Декабря 2025, 14:06:26 »
Это со встроенным протоколом  MODBUS RTU для AS  немного не подойдет.

Оффлайн R2RT

  • Постоялец
  • ***
  • Сообщений: 81
  • Репутация: +36/-1
  • Подпись находится в стадии разработки
  • QRA: LO02RP
Re: Ардуино контроллер поворотки
« Ответ #1788 : 31 Декабря 2025, 14:20:42 »
https://aliexpress.ru/item/1005009311745651.html?shpMethod=CAINIAO_STANDARD&sku_id=12000048707538306&spm=a2g2w.productlist.search_results.7.76505a010WrCbx
Этот с тремя протоколами... тоже нет?

PS Более "дорогие" варианты сводят на нет своё преимущество.
Действительно проще Arduino Nano - наверх отправить (Slave RS485 RX/TX Master)
« Последнее редактирование: 31 Декабря 2025, 14:34:00 от R2RT »
Алексей, Бокино

Оффлайн RX9A

  • Ветеран
  • *****
  • Сообщений: 553
  • Репутация: +163/-2
  • QRA: MO05qe
Re: Ардуино контроллер поворотки
« Ответ #1789 : 31 Декабря 2025, 14:58:20 »
Тоже нет.   Нужен совсем без протоколов. Низкоуровневый преобразователь. Если использовать IIC или SPI то нужно либо два канала 485 либо контроллер рядом с датчиком и один 485.
Я по этому и отказался от этих вариантов . Контроллер  или зимой замерзнет или от мощи подвиснет.
По этому и применил этакий удлинитель TTL на 485 микросхемах. Наверху только Датчик и драйвер 485. Ни чего лишнего , подал питание и работает.
Обработка ШИМ на Ардуино елементарнейшая . 3-го выйду на работу найду скетч и выложу сюда.

Оффлайн R2RT

  • Постоялец
  • ***
  • Сообщений: 81
  • Репутация: +36/-1
  • Подпись находится в стадии разработки
  • QRA: LO02RP
Re: Ардуино контроллер поворотки
« Ответ #1790 : 31 Декабря 2025, 15:59:52 »
Сергей, а на энкодере AS5600  OUT не соответствует PWM ?
Там 4 это DIR/ SCL/ SDA/ GPO + VCC/ OUT/ GND
В работе при коротком соединении 2 + 2
Алексей, Бокино

Оффлайн RX9A

  • Ветеран
  • *****
  • Сообщений: 553
  • Репутация: +163/-2
  • QRA: MO05qe
Re: Ардуино контроллер поворотки
« Ответ #1791 : 31 Декабря 2025, 17:45:53 »
Из даташита
pin3 OUT Analog/digital output Analog/PWM output
Или аналоговый выход ЦАП  или PWM .   Программируется.
Я и писал нужно проверять что включено по умолчания при подаче питания
у AS5045 Это PWM.
« Последнее редактирование: 31 Декабря 2025, 17:50:32 от RX9A »

Оффлайн RC3UE

  • Ветеран
  • *****
  • Сообщений: 1737
  • Репутация: +338/-80
  • 13 el F9FT/21 el F9FT
  • QRA: LO07NG
Re: Ардуино контроллер поворотки
« Ответ #1792 : 31 Декабря 2025, 18:01:19 »
что включено по умолчания при подаче питания
Аналог.
Цитировать
Output Stage
The OUTS bits in the CONF register are used to choose between
an analog ratiometric output (default) and a digital PWM
output. If PWM is selected, the DAC is powered down.

И вот с этим, походу, будет засада.. Я про то, что если "наверху" будет только энкодер и RS485 адаптер..
« Последнее редактирование: 31 Декабря 2025, 18:06:26 от RC3UE »
73! Александр RC3UE (ex RA3UJ, UA3UES)

Оффлайн RX9A

  • Ветеран
  • *****
  • Сообщений: 553
  • Репутация: +163/-2
  • QRA: MO05qe
Re: Ардуино контроллер поворотки
« Ответ #1793 : 31 Декабря 2025, 19:45:08 »
А если перепрогаммировать  а потом сбросить питание то опять  в аналог переходит????

Оффлайн RC3UE

  • Ветеран
  • *****
  • Сообщений: 1737
  • Репутация: +338/-80
  • 13 el F9FT/21 el F9FT
  • QRA: LO07NG
Re: Ардуино контроллер поворотки
« Ответ #1794 : 31 Декабря 2025, 20:39:33 »
А если перепрогаммировать  а потом сбросить питание то опять  в аналог переходит?
Да вроде как есть в AS5600 что-то типа ППЗУ.. Но как-то не особо понятно описана процедура.
И риск убить чип при этом имеется.
Вот как рассказывает об этом ИИ (перевод гугла) -
Цитировать
Программирование регистра CONF (Configuration) AS5600 включает использование интерфейса I2C для установки таких параметров, как нулевой/максимальный углы, тип выхода (аналоговый/ШИМ) и режимы питания, но для постоянного программирования (прожига) настроек клавиш (ZPOS, MPOS) требуются специальные команды «BURN» (запись 0x80 в регистр CONF),0xFF(и ожидание) и может быть выполнено лишь ограниченное количество раз, отслеживаемое регистром ZMCO. Перед изменением существующих значений (особенно таких битов, как OUTS) необходимо считать их, чтобы избежать повреждения других настроек, убедиться в наличии магнита и соблюдать требования к времени, указанные в техническом описании для прошивки .
Основные этапы программирования I2C
Подключение и идентификация: Используйте протокол I2C с адресом по умолчанию датчика (обычно 0x36или 0x37).
Принцип «чтение перед записью»: перед изменением чего-либо необходимо прочитать регистр CONF ( 0x01) и другие соответствующие регистры ( ZPOS, MPOS, и т. д.), чтобы узнать их текущие значения.
Изменение битов: Используйте побитовые операции (И, ИЛИ, Исключающее ИЛИ) для изменения определенных битов в регистре CONF без влияния на другие, например, для установки типа выхода или режима питания.
Обратная запись: Записать измененное значение обратно в регистр CONF.
Постоянное выжигание (OTP - однократно программируемый)
Ограниченное сжигание: ZPOS и MPOS можно сжигать безвозвратно только три раза (проверьте реестр ZMCO).
Команда угла выгорания:
Убедитесь, что магнит обнаружен (бит MD установлен).
Запись 0x80в реестр 0xFF(BURN register).
Подождите не менее 1 мс.
При желании можно провести проверку, последовательно считывая регистры 0x01, 0x11, 010.
Регистр BURN ( 0xFF): Запись в этот регистр запускает постоянную запись в регистры ZPOS и MPOS.
Общие регистры и биты
CONF ( 0x01): Содержит биты для выбора выхода (OUTS), частоты ШИМ (PWMF), режима питания (PM), фильтра (SF, FTH), гистерезиса (HYST), сторожевого таймера (WD) и направления (вывод DIR).
ZPOS ( 0x02): Нулевая позиция (начальная).
MPOS ( 0x03): Максимальное положение (остановка).
RAW ANGLE ( 0x0C/ 0x0D): Исходный 12-битный ракурс.
Важно: Для получения подробных схем регистров, информации о битовых функциях и точных параметрах синхронизации всегда обращайтесь к официальному техническому описанию микросхемы ams OSRAM AS5600 , поскольку неправильное программирование может потребовать замены устройства.
Я никогда не пробовал такое "шитьё", потому-что просто не требовалось. Ни аналог, ни ШИМ не использовал, только I2C.
И из описания я так и не понял, можно ли прошить "на постоянку" тип выхода..
Так-что, что-либо более конкретное сказать не могу..

P.S. Вот ещё помучал ИИ и.. Он раскололся :)
Цитировать
Для постоянного сохранения настроек конфигурации AS5600 необходимо использовать...BURN_SETTING управление через интерфейс I2C.
Важное предупреждение
Регистр конфигурации ( CONF) можно записать в энергонезависимую память только ОДИН раз . После записи такие параметры, как режим питания, гистерезис и тип выхода, нельзя будет изменить для данного конкретного чипа.
Этапы программирования
Чтобы навсегда сжечь CONF регистр: (оптимистично, однако!  :laugh:; комментарий мой)
Настройка CONFрегистров (0x07, 0x08): Запишите желаемые параметры (например, режим питания, гистерезис, тип выхода) во временные регистры конфигурации.
Необходимо выполнить следующие предварительные условия: команда BURN_SETTING может быть выполнена только в том случае, если регистры углов (ZPOS и MPOS) ранее не были записаны (ZMCO должен быть равен 0).
Выполнить команду записи: Записать значение 0x40 в регистр записи (адрес 0xFF ).
Примечание: Не путайте это с BURN_ANGLE(0x80), который используется для ZPOS/MPOS и может повторяться до 3 раз.
Карта регистров для CONF (0x07, 0x08)
Регистр CONF состоит из 14 бит, распределенных по двум байтам:
PM [1:0]: Режим питания (по умолчанию: 00 - номинальный).
HYST [1:0]: Гистерезис (по умолчанию: 00 - Выкл.).
ВЫХОДЫ [1:0]: Выходной каскад (00 = аналоговый полный диапазон; 01 = аналоговый с уменьшенным диапазоном; 10 = ШИМ).
PWMF [1:0]: Частота ШИМ.
SF [1:0]: Медленный фильтр.
FTH [2:0]: Быстрый порог фильтрации.
WD: Сторожевой таймер (по умолчанию: 0 - выключен).
Пример кода (I2C)
cpp
// Example using Wire library to burn CONF settings
Wire.beginTransmission(0x36); // AS5600 Address
Wire.write(0xFF);            // Burn Register Address
Wire.write(0x40);            // Command to burn SETTINGS (CONF)
Wire.endTransmission();
Используйте код с осторожностью.

« Последнее редактирование: 31 Декабря 2025, 20:51:49 от RC3UE »
73! Александр RC3UE (ex RA3UJ, UA3UES)

Оффлайн R2GKH Виталий

  • Ветеран
  • *****
  • Сообщений: 4845
  • Репутация: +700/-369
  • the Truth is out There...
    • Мысли вслух :)
  • QRA: KO92GP
Re: Ардуино контроллер поворотки
« Ответ #1795 : 02 Января 2026, 11:11:47 »
Коллеги, а никто не задумывался, как преобразовать цифровой сигнал в аналоговый 1...6 Вольт?
Хотелось-бы отображать на стандартном пульту Yaesy G-800 азимут.

 
Мы стояли на плоскости,
                  С переменным углом отражения...

Оффлайн R3KBF Петр

  • Ветеран
  • *****
  • Сообщений: 1387
  • Репутация: +520/-17
  • Воронеж
  • QRA: KO91PO
Re: Ардуино контроллер поворотки
« Ответ #1796 : 02 Января 2026, 12:23:14 »
ЦАП же.

Оффлайн RX9A

  • Ветеран
  • *****
  • Сообщений: 553
  • Репутация: +163/-2
  • QRA: MO05qe
Re: Ардуино контроллер поворотки
« Ответ #1797 : 02 Января 2026, 12:47:35 »
Шим резистор и конденсатор. Есть реализация на 8 , 10, 12 и 16 бит

Оффлайн UA3ATQ

  • Ветеран
  • *****
  • Сообщений: 2336
  • Репутация: +303/-25
  • QRA: KO85QV
Re: Ардуино контроллер поворотки
« Ответ #1798 : 02 Января 2026, 14:01:17 »
Шим, если есть большой избыток процессорного времени или PWM периферия в контроллере. DAC, если он есть в контроллере, или внешний I2C DAC, если процессор надо поэкономить.

Оффлайн RX9A

  • Ветеран
  • *****
  • Сообщений: 553
  • Репутация: +163/-2
  • QRA: MO05qe
Re: Ардуино контроллер поворотки
« Ответ #1799 : 02 Января 2026, 15:36:31 »
В фреймворке Arduino предусмотрена готовая функция для запуска аппаратного ШИМ сигнала на пине analogWrite(pin, value):

pin - номер GPIO, который поддерживает ШИМ сигнал. См. описание к конкретной плате/МК, также на распиновке такие пины помечены символом ~. Например на Arduino Nano/UNO это пины 3, 5, 6, 9, 10, 11 - выводы аппаратных таймеров