Перейти к содержанию

Владимир Манзаров

Members
  • Постов

    32
  • Зарегистрирован

  • Посещение

Информация

  • Город
    екеке

Электроника

  • Стаж в электронике
    Менее года
  • Сфера радиоэлектроники
    нкенкн
  • Оборудование
    кенкн

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения Владимир Манзаров

Новобранец

Новобранец (2/14)

  • Преданный
  • 10 постов на форуме
  • Месяц на форуме
  • Неделя на форуме

Последние значки

-3

Репутация

  1. Всем привет. Настраиваю таймер на генерацию ШИМ сигнала. Появился вопрос по поводу выбора Counter Mode. Помимо Up, Down которые сбрасывают счетчик на фронте и спаде, есть еще и center aligned. Как я понял, этот режим не сбрасывает счетчик, а позволяет плавно переходить от нуля до ARR и обратно. Но тут у меня появился вопрос: меняется ли период ШИМ сигнала при этом? Мне просто необходимо вызывать прерывание по середине импульса ШИМ, но если период ШИМ сигнала при этом меняется, то это мне не подойдет.
  2. Всем привет. Довольно глупый вопрос, но хотелось бы уточнить. Допустим есть два включенных таймера. Каждый вызывает прерывание по переполнению, но у первого таймера период переполнения 100 мс, а у второго - 10 мс. Вопрос: включаются ли эти таймеры одновременно? То есть, когда второй таймер отработает прерывание 10 раз, последнее прерывание вызовется одновременно с первым?
  3. Без каракулей не получилось, но вот примерно так выглядит схема подкючения. Силовой драйвер другой, на 24 вольта, ну и вместо arudino стоит stm32 f103c8t6, в остальном все так же. Плюс датчик тока ACS758 50 A источник питания не батарейка и мотор не на 5 В, а на 24 В)))
  4. Хорошо, буду знать. То есть тогда следует мерить ток не в середине импульса ШИМ, а в его конце-начале?
  5. Нет. Я предполагаю, что ток отстает в скорости нарастания от напряжения, как на картинке. Если что, ШИМ - это черная линия, а ток - красная. Поэтому для меня довольно логично считать ток на середине периода ШИМ. А для вас?
  6. Дело в том, что датчик тока устроен на эффекта Холла. Есть там такая характеристика, как чувствительность (отношение напряжение к силе тока). То есть через АЦП показывает по факту напряжение, но его можно перевести в ток
  7. Всем привет. Есть силовой драйвер, двигатель постоянного тока (с каким возбуждением, не знаю), датчик тока и источник питания. Так вот, я вроде отладил датчик тока на значения, примерно равные тем, что показывает источник питания(24 V), по крайней мере на определенном диапазоне скважности ШИМ( управляю двигателем с помощью генерации ШИМ сигнала ). Так вот, если подавать на двигатель ШИМ сигнал со скважностью от 0 до 75%, то датчик тока показывает примерно те же значения, что и источник питания. Но стоит увеличить коэффициент заполнения от 75%, то датчик тока показывает довольно низкую силу тока, на источнике питания при этом ток все еще растет при увеличении оборотов. Это нормальное явление или неправильное? Можно ли объяснить это с точки зрения электротехники или ошибка все-таки в коде? Я беру значения АЦП датчика тока на половине периода ШИМ сигнала, то есть примерно тогда, когда амплитуда тока примерно максимальна.
  8. Всем привет, работаю с стм32 bluepill. Устанавливаю третий таймер на ШИМ генерацию (Канал 1). Задача следующая: вызвать прерывания по заполнению счетчика на половину. Встроенный коллбек не работает, через systick тоже, да и его приоритет по-моему самый низкий из всех. Как можно грамотно вызывать прерывание по определённому значению счетчика? (Тактовая частота 72 мГц, предделитель 24, ARR регистр = 1000). while(1) использовать нельзя.
  9. Мне нужно именно такое прерывание, которое вызывается в середине импульса ШИМ. То, что вы написали, обычно работает по переполнению, а мне нужно заполнение до половины
  10. Всем привет, работаю на стм32 BluePill. Мне нужно сделать так, чтобы возникало прерывание на каждый полупериод одного таймера. Такая функция уже есть, называется HAL_TIM_PWM_PulseFinishedHalfCpltCallback Включаю третий таймер на генерацию ШИМ. Предделитель 719, ARR = 1000. В main ввожу HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_1); Чуть выше main ввожу void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim) { if (htim -> Instance == TIM3){ cringe = 50; } } однако эта переменная в stm studio показывает мне число 536891392 и не меняется. Почему не работает callback функция?
  11. Всем привет, я работаю с СТМ32 BluePill. Есть датчик тока ACS712 на диапазон +-5А. Мне необходимо достаточно точно определять значения переменного тока. Дело в том, что для работы с этим датчиком нужно всегда знать условный ноль, то есть когда на датчик тока идет 3.3/2 В. По АЦП мне показывает 2138, вместо необходимых 2048 или около (макс значение ацп 4096). Что с этим делать? Также хочу спросить по поводу кода для поиска условного нуля. Я сделал такую реализацию: в начале работы (когда нет нагрузки) каждые 10 мс снимаются показания с АЦП, складываются и делятся на число измерений. Таким образом можно находить условный ноль. Но есть одна проблема - при любой подключенной нагрузке, даже когда ток не идет, а просто есть подключение, значение тока уходит с нуля на порядок. Как можно решить такую проблему? Это можно реализовать программно или нужно ковыряться где-то еще?
  12. Добрый день. Есть задача - постоянно знать значение силы тока, идущего на двигатель. Есть два датчика тока, еще не купленных. Они оба работают на эффекте Холла, но один измеряет диапазон токов от -50 до 50А (Allegro ACS758), а другой от -5 до 5А (ACS712). Суть в том, что на двигателе сила тока едва ли будет выше 4 А, а датчик тока на 5А найти гораздо сложнее, чем на 50. Вопрос: если нужно довольно точное измерение тока, то реально лучше поискать датчик на нормальный диапазон токов (-5.... 5 А) или можно работать и с забугорными диапазонами?
  13. Извиняюсь, наоборот. заданное минус текущее. Пишу код сам. Ну смотрите, мотор может увеличить свою скорость так, что заданное значение станет меньше, чем текущее. Это можно реализовать просто внешними воздействиями. Просто условное колесо, которое крутится от мотора, пнуть или кинуть так, что он прокрутится и его скорость увеличится. Это ведь тоже надо регулировать.
×
×
  • Создать...