Kirill Lubinets

Members
  • Публикации

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

  • Посещение

Репутация

0 Обычный

О Kirill Lubinets

  • Звание
    Новенький

Информация

  • Город
    Одесса

Электроника

  • Стаж в электронике
    Менее года
  • Сфера радиоэлектроники
    Микроконтроллеры, радиосвязь, электротехника, робототехника
  • Оборудование
    ATTEN ADS 1062C, паяльник на 40Вт, мультиметр.
  1. STM32f303vc вывод на блок семисегментного дисплея

    Придется самому походу разбиратся)
  2. Необходимо выводить на блок из 4 семисегментных индикаторов данные, управление лежит на двух сдвиговых регистрах: Первый хранит в себе число на вывод, второй адрес(адресует на конкретный разряд в блоке). Данные передаю через аппаратный SPI, настроенный в STM32CubeMX, но он у меня не работает. Мой алгоритм Задаю наборы для отображения на индикаторе и адресные наборы для перемещения по разрядам в блоке. uint8_t i,j = 0; uint8_t buff[8] = {1,2,3,4,5,6,7,8}; uint8_t digit[10] = { 0xC0, // 0 0xF9, // 1 0xA4, // 2 0xB0, // 3 0x99, // 4 0x92, // 5 0x82, // 6 0xF8, // 7 0x80, // 8 0x90, // 9 }; uint8_t chr[4] = { 0x8, 0x4, 0x2, 0x1 }; Строб необходим для начала записи данных в регистр хранения сдвигового регистра void strob(void){ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET); HAL_Delay(85); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET); HAL_Delay(85); } Функция передачи данных с использованием HAL функции и строба. void spi_send(uint8_t *data, uint8_t it){ strob(); uint8_t *d = data; for(j = 0; j <=it; j++){ d = &data[j]; HAL_SPI_Transmit ( &hspi1, d, 8, 50); } strob(); } Отправляю смешение по элементам блока семисегментного индикатора. while (1) { i++; if(i<=4){ spi_send(chr, i); } else i = 4; i = -1; s.7z Файлы с IAR проектом и CubeMX проектом инициализации. 1dsfs.7z Пример работы индикатора video_2018-07-04_00-13-42.mp4
  3. АЦП шок сенсор

    Инициализирую порт А(там находится АЦП) и порт В(там находятся распаянные светодиоды), конфигурирую светодиоды и АЦП1(ножна PA0). АЦП 10-битный значит он сможет детектировать 1024 различных напряжений на амплитуде 0-5 V. Из этого выходит что чувствительность(шаг квантования) равен 5мВ. Когда датчик приводят в возбуждение(трисут, стукают,дергают) в нем возникает ЭДС самоиндукции что гасит напряжение: 1.Датчик в работе значит на выходе будет менее 5V(напряжение питания); 2.Датчик в спокойствие на выходе будет 5V(напряжение питания); АЛГОРИТМ(while) 1.Считываю значение с АЦП1, делаю паузу, запрещаю дальнейшие преобразование 2.Делаю расчет текущего потенциала на датчике ( значение АЦП * 5(напряжение питания)/1024(разрядность АЦП) ) 3.Сравниваю с условием состояния датчика 3.1. Зажигаю один из светодиодов(в зависимости от состояния датчика) 3.2. Делаю паузу 3.3.Тушу светодиод, включаю на АЦП1 преобразования Думаю я ощибся в условии срабатывания датчика среагировавшего на удар. if(u < 1400) тогда удар был зажечь зеленый светодиод else удара не было зажечь красный светодиод
  4. АЦП шок сенсор

    Дано: отладочная плата STM32F303VC, индукционный датчик. Доброго времени суток, суть моего проекта в детектировании вибраций(ударов) при помощи аналогового датчика. Код отслеживания удара написан, но я не пойму то ли я ошибся с алгоритмом его работы то ли не правильно сконфигурировал отладочную плату. Информация по датчику. Индукционный датчик удара, шок сенсор, Arduino может использоваться в проектах на микроконтроллерах (в т.ч. Arduino), в которых нужно следить за уровнем вибрации или подобных механических возмущений. Принцип действия датчика основан на электромагнитной индукции. Движущийся стальной, ферритовый или магнитный сердечник относительно катушки создает в катушке ЭДС, подходящую по амплитуде ударного воздействия на систему. Чувствительный элемент датчика установлен в прозрачный пластиковый параллелепипед для защиты от действий внешней среды. Для использования датчика нужно подключить его к Arduino контроллеру или другому микропроцессорному управляющему устройству, подать питание, создать программу для работы с датчиком или использовать готовое решение. На корпусе датчика есть два отверстия, с помощью которых можно жестко закрепить датчик на плоской поверхности. В состоянии покоя напряжение на выходе из датчика около 5 В, при возмущении напряжение на датчике падает пропорционально силе возмущения. Индукционный датчик удара, шок сенсор, Arduino имеет один 3-контактный разъем для подключения к контроллеру и питания: контакт обозначенный «–» – общий контакт; средний контакт – напряжение питания; контакт S – аналоговый выходной сигнал датчика. Датчик может питаться как от Arduino контроллера (другого микропроцессорного управляющего устройства), так и от внешнего источника питания. Напряжение питания 3,3 – 5 вольт постоянного тока. Характеристики: принцип действия: индукционный; выходной сигнал: аналоговый; напряжение питания: 3,3 – 5 вольт постоянного тока; размеры: 30 х 18 х 11; вес: 2 г. Shock.7z
  5. Это просто отношение тока эмиттера и тока коллектора,а коэф H21 более комплексная величина. Спасибо одно недоразумения исправили, а по самой теории работы я правильно размышляю?
  6. Биполярный транзистор (npn) при подаче напряжения в цепь эмиттер-база 0.7В уменьшит барьер(сопротивление база-коллектор значительно снизится) в полупроводнике и цепь коллектор-база станет пропускать ток. Биполярный транзистор сам по себе ничего усилить не может коэф усиления равен 0.9999. Я бы его назвал коллекторным повторителем, потому что изменении малого напряжения э-б изменяет сопротивления б-к(100-1МОм), а это значит что ток проходит ровно в такой степени как его приоткрыли.
  7. Решил изучать электронику по Шебесу 1973года. Решаю задачку по "Расчету эквивалентных сопротивлений" по сути здесь и возник вопрос. При расчете эквивалентного сопротивления Rcd, как я понял напряжения от точки с к точке b пройдет только через резистор R2,R4,R3, но в примере решения задачи учитывалось также R5. Вопрос почему при расчете эквивалентного напряжения в этом контуре(c - d) было учтено и R5.
  8. STM32f303vc NRF24l01+

    У меня пока не тот уровень чтобы по регистрам шпарить) Библиотеки есть, но у меня не выходит их прикрутить к проекту.
  9. Windows 7 не видит Virtual Com Port stm32f303vc

    Нету совсем, даже не опознанного не является.
  10. С генерировал проект в CubeMX для отладочной платы stm32f303vc. Выбрал Virtual Com Port, а он его не видит вовсе(светодиод COM мигает и все). Я в расстроенных чувствах не пойму что не так сделал. Прикрепил проект EWARM к теме. ProjectUSB.rar
  11. STM32f303vc NRF24l01+

    Надо с stm32f303vc отправить массив через SPI на радио модуль nRF24l01+ и принять другим nRF24l01+, сохранить изменения в другой массив). Эту удачную передачу отметить активацией светодиода (их на отладке 8 штук). Кон фигурирую проект в CubeMX Компилирую и занимаюсь отладкой в EWARM P.S. В сети есть пара примеров, но они не взаимодействуют с библиотекой HAL, а значит надо всё переписывать. P.S.S. даташиты изучаю, но там такое количество битов и регистров что я в них банально путаюсь. Ссылка на мои старания, но без успешные. https://1drv.ms/f/s!Ann2CRUC07O49m1X_PqH1Q7AsPQ4
  12. Термометр

    Делаю термометр за счет обратного коллекторного тока(КБО) на биполярном транзисторе. Ток с помощью ОУ LM358P в инвертирующем включении преобразую в напряжение Uвх = I*Rос. Как преобразовать по другому ток в напряжение? Как собрать эту схему? Используемые детали: 1.ОУ 358P 2.NPN D13009K P.S. Моделирую схемы в micro-cap 11. Исходники добавил. circuit2.bak_CIR circuit2.CIR
  13. Светодиодная индикация при помощи 74hc595

    Спасибо за разъяснение, перелопачу "даташит".
  14. Светодиодная индикация при помощи 74hc595

    Так получается мне нужно все входные данные DS? Притянуть ST-CP к питанию да и всё? Так получается мне нужно все входные данные DS? Притянуть ST-CP к питанию да и всё?