最近調試的直流電機控制,驅動器是L298N
單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "pwm.h"
- #include "usart.h"
- #include "exti.h"
- #include "key.h"
- int i=0;
- float err=0;
- float lasterr=0;
- float realspeed;
- float setspeed=460;
- float vu=0;
- float c=0;
- int led0=2400;
- float m=300;
- float w=350;
- int main(void)
- {
- delay_init(); //延時函數初始化
- uart_init(9600);
- EXTIX_Init();
- TIM2_Cap_Init(65535,5);
- TIM3_Int_Init(1000-1,7200-1); //=====定時器初始化 100ms一次中斷
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優先級分組2
- LED_Init(); //初始化與LED連接的硬件接口
- TIM1_PWM_Init(7119,0);
- while(1)
- {
- PID_Init();
- c=led0+vu;
- if(c>7199)
- c=7119.0;
- if(c<0.0)
- c=0.0;
- TIM_SetCompare4(TIM1,c);
- led0=c;
- printf("%f,%f,%f\r\n",setspeed,realspeed,err);
-
- }
- }
-
- void TIM3_IRQHandler(void) //TIM3中斷
- {
- extern float realspeed;
- extern int i;
- if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //檢查指定的TIM中斷發生與否
- {
- TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清除TIMx的中斷待處理位
- realspeed=0.985*i*10*60/260;
- i=0;
- }
- }
復制代碼
所有資料51hei提供下載:
直流電機調速.7z
(196.02 KB, 下載次數: 101)
2020-12-28 15:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|