本程序所用Arduino开发板为Arduino UNO开发板
通过红外传感器检测工件,当工件经过时舵机响应,对工件进行操作
此程序实现的功能为:
Arduino启动,当传感器检测到工件,舵机开始旋转90°,
当再次检测到下一个工件,舵机回转90°,就这样在每次检测到工件时来回摆动
#include <Servo.h> // 声明调用Servo.h库
Servo myservo; // 创建一个舵机对象
int PIN_SENSOR = 13; //红外传感器引脚
int n=0;
void setup()
{
pinMode(PIN_SENSOR, INPUT);
Serial.begin(4800);//设置波特率为4800
myservo.attach(9); // 将引脚9上的舵机与声明的舵机对象连接起来
}
void loop()
{
int y = digitalRead(PIN_SENSOR); //读取传感器信号
Serial.println(y);
delay(5);
int x = digitalRead(PIN_SENSOR);//延时5ms再次读取传感器信号
Serial.println(x);
if (x==0)
{
if (x||y) //对两次读取值进行综合判断,确定舵机是否执行
{ n=n+1;
if (n%2==1)
{myservo.write(0); // 给舵机写入角度0°
delay(5);
}
if (n%2==0)
{myservo.write(90); // 给舵机写入角度90°
delay(5);
}
}
else
return;
}
}
|