#define PUL 6
#define DIR 5
#define ENA 4
#define PINA 9
/*
功能:初始化
*/
void setup()
{
pinMode(PUL,OUTPUT);
pinMode(DIR,OUTPUT);
pinMode(ENA,OUTPUT);
pinMode(PINA,INPUT);
Serial.begin(9600);
digitalWrite(ENA,HIGH);//使能驱动器
}
/*
功能:产生PWM
*/
void pwm()
{
for (int i=0; i <100000; i++)
{
digitalWrite(PUL,LOW);
delayMicroseconds(5); //想要电机转的快点,缩小数值;反之,增加数值
digitalWrite(PUL,HIGH);
delayMicroseconds(5);
}
}
void loop()
{
//目标检测
if(digitalRead(PINA)==LOW)
{
digitalWrite(DIR,LOW);
delay(10);
pwm();
}
else
{
digitalWrite(DIR,HIGH);//改变转向
delay(10);
pwm();
}
}
当人到感应区后,电机顺时针180旋转,人离开感应区后,电机逆时针回到起点,我用的是步进电机 42HS4013A4---G10是减速步进电机 1.8 1.3A,传感器是HC-SR501 人体红外感应模块 红外传感器 热释电 进口探头 可是为什么电机朝着一个方向转啊,望大神帮我看一下程序哪里出错了? 我真的好急的!!谢谢。
|