找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2053|回復: 0
收起左側

STM32F103R6單片機定時器1控制舵機演示程序與Proteus仿真圖

[復制鏈接]
ID:648760 發(fā)表于 2023-4-27 00:16 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
屏幕截圖 1.png 屏幕截圖 2.png 媒體1[00_00_05--00_00_25].gif

單片機源程序如下:
如圖,定時器1的四個通道輸出PWM脈沖驅動四個舵機到不同角度,一號舵機由于輸入的PWM的寬度在主函數中循環(huán)調整,可以來回轉動。主函數如下:
int main(void)
{
  /* USER CODE BEGIN 1 */
    uint8_t i = 0;
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM2_Init();
  MX_TIM1_Init();
  /* USER CODE BEGIN 2 */
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
    HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
    HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_3);
    HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
    while (1)
    {
    /* USER CODE END WHILE */
while (1)
        {
            HAL_Delay(10);
            if(i < 200)
            {
                __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 50+i);
                i++;
            }
            else
                break;

        }

        while (1)
        {
            HAL_Delay(10);
            if(i > 0)
            {
                __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 50+i);
                i--;
            }
            else
                break;
                                        }
    /* USER CODE BEGIN 3 */
    }

  /* USER CODE END 3 */
}
在proteus中對舵機的屬性進行了修改:重新設定最小PWM寬度為0.5ms與2.5ms。

需要說明的是先前想使用定時器2,但是不知什么原因,PA0(定時器2的默認通道1一直沒輸出),其余三個通道正常,CubeEMX的各通道配置方法也沒看出問題。三個軟件的設計與proteus仿真文件全部奉上
望大神明示: 仿真和代碼.7z (312.84 KB, 下載次數: 49)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表