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

Anton19

Members
  • Постов

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

  • Посещение

Сообщения, опубликованные Anton19

  1. Добрый день, являюсь абсолютным новичком в теме радиоелектроники. Собираюсь собрать счетчик гейгера, на основе перобразователя напряжения, stm32 и сбм-20. Решил начать с преобразователя. Немогу только понять где купить трансформатор T1, не хочу очень долго возится с его намоткой. Можете подсказать какой трансформатор необходимо купить или где такой продается. Буду благодарен за ссылку или советы. Спасибо. 

    rk2015-12-4.png

  2. Добрый день, помогите разобраться чисто в теории как работает эта штука. Я новичек в этой сфере. 

    У меня есть контроллер stm32 с помощью него я хочу вращать Nema34. Насколько я понимаю stm32 сможет это делать только с помощью драйвера CW8060.

    Характеристики устройства на картинке:

    Цитата

    Characteristics:
    1.DC power input type:24V~80V
    2.Output current:2~6A
    3.Mircostepping:1(1.8º),1/2,1/4,1/8,1/16,1/32,1/64,1/128,1/256,1/5,1/10,1/25,1/50,1/125,1/250
    4. Protect form : Overheated protect, lock automatic half current ,error connect protect
    5. The maximum pulse rate is 200HZ.
    6. Dimensions:147mm*97mm*30mm
    7. Weight:<500g. 
    8. Working environment:Temperature-15~40℃ Humidity<90%.

    I/O Ports:
    1.VCC+:DC power positive pole
    Note:Must guard against exceeding 70V, so as not to damage the module
    2.GND:DC power cathode
    3.A+,A-:Stepping motor one winding 
    4.B+,B-:Stepping motor other winding
    5.CP +,CP -:Stepping pulse input+5V (Rising edge effective ,rising edge duration >10μS)
    6.CW +,CW-:Stepping motor direction input, voltage level touched off,high towards, low reverse 
    7.REST+,REST-: motor free 

    1. Получается что данный драйвер может выдавать шим с частотой 200гц? 

    2. Если данный драйвер выдает частоту 200 гц, то вывод CP+ тоже воспринимает управляющий импульс с частотой 200 гц?

    3. "rising edge duration >10μS" означает что между фронтом и спадом должно быть не меньше 10 микросекунд? Форма сигнала шим должна быть получается исключительно меандр?

    4. Верно ли я понимаю что все задача этого драйвера просто "усилить" шим с 3.3 вольт 20 милиампер, до 48 вольт, 6 ампер?

    Спасибо.

    Drivercw8060.jpg.bcbd5dc83ecf3950c3f38654743e7206.jpg

  3. Я отправляю данные через USART2 PA2 (pin2) на передатчик данных, подключил usb-uart к PA2 (pin2) и посмотрел в терминале, что отправляется (AA 44 11 55 AA 44 22 66 AA 44 11 55 AA 44 22 66 ...). Все в порядке, я передаю то, что хочу.


    Затем я подключил usb-uart к PA10 (pin10) и посмотрел что приходит через радио приемник, было много данных, но в основном  были (AA 44 11 55 AA 44 22 66 AA 44 11 55 AA 44 22 66 ...). Все в порядке, я получаю от приемника, то что нужно.


    Затем подключил usb-uart на PA9 (pin9) (uart1 TX) и посмотрели что он передает (AA 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 ...).
    Главный вопрос: что я делаю неправильно, почему USART1 TX искажает данные? Как это исправить?

    #include "stm32f10x.h"
    #include "stm32f10x_gpio.h"
    #include "stm32f10x_rcc.h"

    # define SYNC 0XAA
    # define RADDR 0x44
    # define LEDON 0x11 //switch led on command
    # define LEDOFF 0x22 //switch led off command

    void Delay(void) {
      volatile uint32_t i;
      for (i = 0; i != 100; i++)
      ;
    }
    void send_to_uart1(uint8_t data) {
      while (!(USART1 - > SR & USART_SR_TXE)) {}
      USART1 - > DR = data;
    }

    void send_to_uart2(uint8_t data) {
      while (!(USART2 - > SR & USART_SR_TXE));
      USART2 - > DR = data;
    }

    void Send_Packet(uint8_t addr, uint8_t cmd) {
      send_to_uart2(SYNC); //send synchro byte    
      send_to_uart2(addr); //send receiver address
      send_to_uart2(cmd); //send increment command
      send_to_uart2((addr + cmd)); //send checksum
    }

    uint8_t uart_data;

    int main(void) {
      GPIO_InitTypeDef PORTA_init_struct;

      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

      PORTA_init_struct.GPIO_Pin = GPIO_Pin_9;
      PORTA_init_struct.GPIO_Speed = GPIO_Speed_2MHz;
      PORTA_init_struct.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_Init(GPIOA, & PORTA_init_struct);

      PORTA_init_struct.GPIO_Pin = GPIO_Pin_10;
      PORTA_init_struct.GPIO_Speed = GPIO_Speed_50MHz;
      PORTA_init_struct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_Init(GPIOA, & PORTA_init_struct);

      PORTA_init_struct.GPIO_Pin = GPIO_Pin_2;
      PORTA_init_struct.GPIO_Speed = GPIO_Speed_50MHz;
      PORTA_init_struct.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_Init(GPIOA, & PORTA_init_struct);

      PORTA_init_struct.GPIO_Pin = GPIO_Pin_3;
      PORTA_init_struct.GPIO_Speed = GPIO_Speed_50MHz;
      PORTA_init_struct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_Init(GPIOA, & PORTA_init_struct);

      USART_InitTypeDef uart_struct1;
      uart_struct1.USART_BaudRate = 600;
      uart_struct1.USART_WordLength = USART_WordLength_8b;
      uart_struct1.USART_StopBits = USART_StopBits_1;
      uart_struct1.USART_Parity = USART_Parity_No;
      uart_struct1.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
      uart_struct1.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
      USART_Init(USART1, & uart_struct1);
      USART_Cmd(USART1, ENABLE);

      USART_InitTypeDef uart_struct2;
      uart_struct2.USART_BaudRate = 600;
      uart_struct2.USART_WordLength = USART_WordLength_8b;
      uart_struct2.USART_StopBits = USART_StopBits_1;
      uart_struct2.USART_Parity = USART_Parity_No;
      uart_struct2.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
      uart_struct2.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
      USART_Init(USART2, & uart_struct2);
      USART_Cmd(USART2, ENABLE);

      uint8_t raddress, data, chk;

      while (1) {
        Send_Packet(RADDR, LEDON);
        Delay();
        Send_Packet(RADDR, LEDOFF);
        Delay();

        if (USART1 - > SR & USART_SR_RXNE) {
          uart_data = USART1 - > DR;
          send_to_uart1(uart_data);
        }

      }
    }

     

    IMG_20170613_075837.jpg

  4. 4 минуты назад, mail_robot сказал:

    интересно, а что у вас тогда ловит приемник, если на передатчик нихрена не отправляется?

    Ловит какие-то данные из окружающего радио эфира.

  5. Добрый день, подскажите купил радио Transmitter и Receiver, подключил их через usart к stm32, usart ловит данные из Receiver, но что отрпавлять на Transmitter? Подскажите может ссылку на мануал/пример, ничего не могу найти. Спасибо.

    large_rf433link.jpg

  6. 4 часа назад, Sergey-Ufa сказал:

    В виде отдельной микросхемы такие драйверы вряд ли есть. Существуют законченные драйверы в виде электронного блока. Типа такого

    http://www.npoatom.ru/katalog/drivers/g201x/

    Это первое, что попалось в поиске.

    А может схема законченного драйвера в виде электронного блока где-то есть? Вам не попадалось?

  7. Подскажите, есть некоторый опыт управления шаговым двигателем с помощью драйвера L293D максимальный ток 1.2 ампера. Теперь хочу управлять более мощным двигателем что-то типа 34HS8801 на 4 ампера. Насколько я понимаю тут уже надо драйвер двигателя собирать самому на или покупать готовый.
    1. Не подскажите ли схему на такой драйвер.
    Спасибо.

×
×
  • Создать...