1. 程式人生 > 其它 >DSP2833x實驗_直流電機

DSP2833x實驗_直流電機

直流電機介紹:

  直流電機是指能將直流電能轉換成機械能(直流電動機)或將機械能轉換成直流電能(直流發電機)的旋轉電機。它是能實現直流電能和機械能互相轉換的電機。當它作電動機執行時是直流電動機,將電能轉換為機械能;作發電機執行時是直流發電機,將機械能轉換為電能。

              

硬體電路:

分為兩條通路控制正反轉。

軟體設計:

#include "dc_motor.h"

void DC_Motor_Init(void)
{
    EALLOW;
    SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; // 開啟GPIO時鐘
    
//DC_motor 埠配置 GpioCtrlRegs.GPAMUX1.bit.GPIO0 =0;//設定為通用GPIO功能 GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;//設定GPIO方向為輸出 GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0; //使能GPIO上拉電阻 GpioCtrlRegs.GPAMUX1.bit.GPIO1 =0; GpioCtrlRegs.GPADIR.bit.GPIO1 = 1; GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0; //使能GPIO上拉電阻 EDIS; GpioDataRegs.GPACLEAR.bit.GPIO0
=1;//預設拉低停止 GpioDataRegs.GPACLEAR.bit.GPIO1 =1; }

#ifndef DC_MOTOR_H_
#define DC_MOTOR_H_

#include "DSP2833x_Device.h" // DSP2833x 標頭檔案
#include "DSP2833x_Examples.h" // DSP2833x 例子相關標頭檔案

#define DC_MOTOR_INA_SETH (GpioDataRegs.GPASET.bit.GPIO0=1)//拉高,支路導通
#define DC_MOTOR_INB_SETH (GpioDataRegs.GPASET.bit.GPIO1=1)

#define DC_MOTOR_INA_SETL (GpioDataRegs.GPACLEAR.bit.GPIO0=1)//拉低,支路截止
#define DC_MOTOR_INB_SETL (GpioDataRegs.GPACLEAR.bit.GPIO1=1)

void DC_Motor_Init(void);

#endif /* DC_MOTOR_H_ */

        key = KEY_Scan(0);
        switch(key)
        {
            case KEY1_PRESS:DC_MOTOR_INA_SETH;DC_MOTOR_INB_SETL;LED1_ON;LED2_OFF;LED3_OFF;break;//正轉
            case KEY2_PRESS:DC_MOTOR_INB_SETH;DC_MOTOR_INA_SETL;LED2_ON;LED1_OFF;LED3_OFF;break;//反轉
            case KEY3_PRESS:DC_MOTOR_INA_SETL;DC_MOTOR_INB_SETL;LED3_ON;LED1_OFF;LED2_OFF;break;//拉低,停止
            default: LED5_ON;
        }