|
沙发
楼主 |
发表于 2014-11-28 19:47
|
只看该作者
平台的搭建共需要如下三步:
(1)L298N驱动板与机械手的连接,如图4-1所示
(2)L298N 驱动板VCC、GND分别连接Arduino mege 2560 VCC、GND,接口接线请参照代码注释。
(3)L298N 驱动板与DC直流电源连接。
4.1.2 控制代码及注解
#define motorpin 8
#define motorpwm 11
/**********************************************
// IN1->pin8 IN2->pwm11 接口接线
***********************************************/
void setup()
{}
void loop()
{
motor(motorpin,motorpwm,1,200); //机械手以200的速度张开
delay(3000); //延时3秒
motor(motorpin,motorpwm,2,200); //机械手以200的速度闭合
delay(3000); //延时3秒
}
void motor(char pin,char pwmpin,char state,int _Rval )
//参数pin是输入的高低电平的IO口,pwmpin表示输入的PWM波形的IO口,state指电机状态(正转或反转),val是调速值大小0-255
{
pinMode(pin, OUTPUT);
if(state==1) //当state为1时正转
{
analogWrite(pwmpin, _Rval);
digitalWrite(pin,1);
}
else if(state==2) //当state为2时反转
{
analogWrite(pwmpin,_Rval);
digitalWrite(pin,0);
}
else if(state==0) //当state为0时停止
{
analogWrite(pwmpin,0);
digitalWrite(pin,0);
}
}
4.2 51单片机控制平台
4.2.1 STC89C52单片机平台的搭建
在本说明中选用L298N电机驱动板,12VDC直流电源,STC89C52单片机。
平台的搭建共需要如下三步:
(1)L298N驱动板与机械手的连接,如图4-1所示
(2)L298N 驱动板VCC、GND分别连接STC89C52单片机 VCC、GND,接口接线请参照代码注释。
(3)L298N 驱动板与DC直流电源连接。
4.2.2 控制代码及注解
/************头文件*********/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
/*****************延时函数*************************/
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/**********************************************
// IN1->P0^1 IN2->P0^2
***********************************************/
void main()
{
while(1)
{
P0=0xaa; //机械手张开
delay(4500); //延时
P0=0x55; //机械手合拢
delay(4000); //延时
}
}
4.3 STM32单片机控制平台
4.3.1 STM32F103RBT6单片机平台的搭建
在本说明中选用L298N电机驱动板,12VDC直流电源,STM32F103RBT6单片机。
平台的搭建共需要如下三步:
(1)L298N驱动板与机械手的连接,如图4-1所示
(2)L298N 驱动板VCC、GND分别连接STM32F103RBT6单片机VCC、GND,接口接线请参照代码注释。
(3)L298N 驱动板与DC直流电源连接。
4.3.2 控制代码及注解
/************头文件*********/
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
/**********************************************
// IN1->PB1 IN2->PB2
// PWM-->PB0 接口接线
***********************************************/
int main(void)
{
u16 robotpwmval=500; //PWM值设置
delay_init(); //延时函数初始化
NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,响应优先级
uart_init(9600); //串口初始化为9600
Motor_IO(); //电机in1,in2 IO口初始化
TIM3_PWM_Init(899,0); //不分频。PWM频率=72000/900=8Khz
delay_ms(10);
TIM_SetCompare2(TIM3,robotpwmval);
Motor_D(); //机械手合拢
// Motor_F(); //机械手张开
second(10);
Motor_S(); //机械手停止
}
|
|