Arduino编程->步进电机角度控制
2017-07-20 10:18
573 查看
#include<Stepper.h>
#define KEY 2 //定义 key_1 I/O number is 2
// 参考文件
/*
28BYJ-48.pdf
该参数根据电机每一转的步数来修改
*/
const int stepsPerRevolution = 256;
const int stepsDelay = 10000;
int stepin=0;
int count=1;
/*
steps=5.68888 旋转1度
steps=170.666 旋转30度
steps=256 旋转45度
steps=341.333 旋转60度
steps=512 旋转90度
steps=1024 旋转180度
steps=2048 旋转360度
*/
// 初始化步进电机要使用的Arduino的引脚编号
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup()
{
// 设置转速,单位r/min
myStepper.setSpeed(20);
// 初始化串口
Serial.begin(9600);
}
void clockwise()
{
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
}
void anticlockwise()
{
// 逆时针一次旋转
Serial.println("counterclockwise");
myStepper.step(-2048);
delay(500);
}
void loop01()
{
int i;
while(1)
{
i=analogRead(5);
if(i>900) //开关打开
{
if((count==0)&&(stepin<8))
{
clockwise();
count=1;
stepin=stepin+1;
}
if((count==0)&&(stepin==8))
{
anticlockwise();
count=1;
stepin=0;
}
delay(1000);
}
else if(i<10)//开关关闭
{
count=0;
}
}
}
void loop()
{
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(stepsDelay);
// 逆时针一次旋转
Serial.println("counterclockwise");
myStepper.step(-2048);
delay(500);
}
void main1()
{
int i;
while(1)
{
i=analogRead(5);
if(i>900)
{
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(2048);
delay(1000);
// 逆时针一次旋转
Serial.println("counterclockwise");
myStepper.step(-2048);
delay(5000);
}
}
}
相关文章推荐
- A4988 步进电机加速控制算法的尝试(上)――arduino实现篇
- 51单片机 步进电机的驱动和旋转角度控制
- Arduino下跑马灯和步进电机控制代码实现
- 【arduino】arduino uno + A4988控制42步进电机
- 【Arduino学习笔记】ULN2003APG步进电机控制代码
- Arduino对57步进电机的控制
- <Linux+Qt>Qt4编程控制mplayer嵌入自定义界面监控或视频显示
- Arduino控制步进电机和舵机机器臂
- 编程实现>ASP.NET 3.5会话控制>Cookie
- Arduino 控制减速步进电机 校验
- 51单片机 步进电机旋转角度控制
- 通过串口传值给Arduino,再通过Arduino控制小车(直流电机)移动与二自由度云台转动角度
- Arduino(2560)控制两个步进电机通过控制器
- SQL Server ->> Database Promgramming Object Security Control(数据库编程对象安全控制)
- Arduino通过串口控制舵机角度实验
- 使用Arduino开发板控制步进电机
- Arduino学习笔记一,电位器控制步进电机。
- <<The Pratice of Programming>>编程风格之命名
- Vert.x 安全和访问控制 译<九>
- 分布式编程->XML Webservice实现原理及相关知识