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

reg33

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о reg33

  • Звание
    Участник
    Участник

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

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

  1. энкодер и stm32f103

    Вроде все сложилось. На мой взгляд самый объективный получился считает без пропусков, функция юзается в прерываниях 4кГц. void readEncoderState(){ if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_7)!=encoderState){ if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_6)!=encoderState){ encoderCnt++; printf ("%u \r\n",encoderCnt); } else { encoderCnt--; printf ("%u \r\n",encoderCnt); } } encoderState=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_7); if(encoderCnt<=1) {encoderCnt=0;} if(encoderCnt>=30) {encoderCnt=30;} } опыта написания кода у меня мало, поэтому использовал printf (); для вывода в консоль.
  2. энкодер и stm32f103

    не помогло. написал следующую функцию Все равно считает только в плюс. Подключил лог.анализатор к PIN 7 порта_A к GLK энкодера и PIN 6 порта_А к DT энкодера. Скрин с лог анализатора прилагаю
  3. энкодер и stm32f103

    Добрый день. Пытаюсь подключить к stm32f103 энкодер. Энкодер планирую опрашивать в прерываниях по таймеру. Написал функцию int encoderCnt; int encoderState; void readEncoderState(){ if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_7)!=encoderState){ if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_6)!=encoderState){ encoderCnt++; printf ("%u \r\n",encoderCnt); } else { encoderCnt--; printf ("%u \r\n",encoderCnt); } } encoderState=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_7); } она упорно только инкрементирует. Функция вызывается в прерываниях по таймеру с частотой 4 кГЦ. Что я делаю не так? За ранее благодарен.
  4. прикиньте на макетке открылся и нормуль открывается для моих задач хватает поставил что было под рукой я не собираюсь на 10А его грузить
  5. так я сразу вопрос обозначил а народ 6 страниц флуда на по теме накидал. Пока толпой решали как построить входную цепь. Как бы вдоде задачка понятная реализовать входную цепь без ОУ и прочих причиндалов с минимум обвязки ну наверно логично что на стоке будет нагрузка Ну накидал по быстрому в altim desginer либы не подрублены.
  6. В итоге создал вот такую схемку. При этом отключенный девайс или если нет входного сигнала на входе adc присутствует 0.2V. При подаче сигнала уровень становится выше 0.3V. В коде создан кольцевой буфер, среднее значение вычисляется из него. При этом задержка срабатывания выставляется программно. Что не нравится что есть инерция изменения напряжения. При появлении сигнала напряжение растет инертно и при пропадании сигнала так же медленно падает ну где то в течении 10 секунд. Думаю это конденсатор 10 мКФ.
  7. Собрал данную схему, сигнал подаю на анод dn9 при отстутствии сигнала на adc 0.23v. Откуда оно берется ?
  8. Вот вы меня услышали нужен входной каскад который грамотно согласует вход adc с звуковым выходом он линейный. Я думаю шумы adc есть методы убрать но программного просто удобно ИМХО. И почему Вы так настроены против adc? Полосы 1-5кгц будет достаточно
  9. Амплитуда входного сигнала составляет 0,7v-2,5. По поводу наличия шума его же можно отстроить при отладке девайса путем внесения изменений в код программы. Выключу звук на микшере ноутбука и это будет значение нуля для adc. При повышении громкости adc начнет фиксировать уровень сигнала. Порог детектирования уровня аудио сигнала в процессе отладки Я почитал там сравнивается вход с опорным сигналом. Диапазон звуковой частоты полоса 100-20000Гц амплитуда 0,775В.
  10. Точные измерения не планировалось. А планируется сделать детектор наличия аудио сигнала. По предложенной схеме разделительный кондесатор и резистивный делитель без сигнала присутствует 1,64в. Можно конечно это напряжение взять за 0. А отклонения от него путем пересчета среднеарифметического значения буфера измерений adc и считать наличием аудио сигнала?
  11. Вроде мне и так понятно почему частота сэмплирования должна на порядок выше быть парсить измеряемый сигнал. Если я правильно вас понял предлагаете rms микросхему использовать? Про период выборки я писал что это просто измерение для того чо бы убедиться что adc работает и не более. А про ссылку и статью просто меня заинтересовало ка без делителей фильтров разделительных конденсаторов там добились адекватной работы adc. Если бы я хорошо разбирался в теме я бы не обратился за помощью
  12. Вообще я хотел повторить подобный девайс http://kazus.ru/shemes/showpage/0/1311/1.html но на stm32
  13. Вот щас такая схема. Входной резистор 560 Ом. Делитель из двух резисторов по 1 кОм. Конденсатор стоит электролит 10мkФ на 25В. Контакт audio он не входной сигнал замыкал на землю. При этом напряжение adc 1.63v 1.64v 1.63v 1.63v 1.64v 1.63v 1.63v 1.63v 1.63v при подаче аудио сигнала на плату наблюдается изменение напряжения замеры идут каждые 300 мС. 1.67v 1.61v 1.74v 1.43v 1.46v 1.63v 1.64v 1.83v 1.75v 1.65v 1.60v 1.52v 1.69v 1.68v 1.68v Щас схема выглядит так.
  14. перенес конденсатор перед делителем замкнул на землю на входе adc 1.65В (половина напряжения 3,3В). Напряжения в 1В (входе АЦП с помощью самого АПЦ или мультиметра должно быть в районе 1В. (С)) нет. По поводу STM32CubeMonitor у меня J-Link.
  15. Буду признателен если посоветуйте правильную схему
×
×
  • Создать...