1. 程式人生 > 實用技巧 >811【畢設課設】基於微控制器微電機定位控制系統設計

811【畢設課設】基於微控制器微電機定位控制系統設計

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

電機定位控制系統介紹:

本微電機驅動電路裝置是以H橋驅動電路為核心,使用兩個S9013三極體作為前級驅動,H橋採用兩個TIP42和兩個TIP41功率三極體,每個時刻是兩個功率管導通,從而實現微電機的正反轉,以及停止電機,同時在電機兩端並聯瓷片電容,避免諧波的影響,是電機穩定執行。用LM317將12V調至5V,給微控制器供電,同時採用51微控制器STC89C52的IO口來控制微電機的正反轉和停止,本裝置還可以實現任意位置定位,將電位器與電機軸同軸捆綁,變阻器兩端接5V,觸頭送入微控制器AD採集,通過PID演算法,實現微電機的精準定位,而且本電機還加入的電流電壓保護電路,實現最整個裝置的保護。

#include<reg52.h>
#include"12864.h"
#include"tlv2543.h"
#define N 30;
sbit a=P1^5;
sbit b=P1^6;
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P3^4;
sbit K4=P3^5;
sbit K5=P3^6;
sbit K6=P3^7;
sbit K7=P2^7;
uint du,U4,U5;
int n=0,flag,flag1,k1,flag2;
uint U1=2000;
uint D;      //PWM控制輸入值
uint U2,U3;	 //AD讀取值
float Kp=1.09;		 //定義比例係數
float Ki=0.00;		 //定義積分系數
float Kd=0.000;		 //定義微分系數
xdata unsigned table[24]={824,3785,3244,2728,2214,1697,1192,4179,3630,3104,2586,2068,
                         1554,1044,2000,3480,984,1452,1920,2394,2870,3352,3844,4352 }; //刻盤角度對應電壓值

void delay_us(uchar t)
{
	uint j,k;
	for(k=t;k>0;k--)
		for(j=36;j>0;j--);
}

int PID()						   
{
	int err1=0,err2=0,err3=0;
	err1=U1-U2;
	err3=err2;
	err2=err1;	
	return(Kp*err1+Ki*err2+Kd*err3);
}