Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。
它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,它们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
Arduino输入0/1控制步进电机正反转一定行程:
J接线方法采用共阳极接法
VCC 2 //电源+ PLS+ DIR+ ENA+ 共阳极串联
PLS 3 //脉冲 DIR 4 //方向 ENA 5 //使能
代码如下
#define VCC 2 //电源+
#define PLS 3 //脉冲
#define DIR 4 //方向
#define ENA 5 //使能
int p;
//int String p;
String comdata = "";//字符串函数
void setup()
{
pinMode(VCC, OUTPUT);
pinMode(PLS, OUTPUT);
pinMode(DIR, OUTPUT);
pinMode(ENA, OUTPUT);
Serial.begin(9600);//打开串口波特率9600
//Serial.println("\n\nString toInt():");
}
void loop()
{
digitalWrite(VCC, HIGH);
digitalWrite(ENA, HIGH);
if (Serial.available() > 0)//判读是否串口有数据
{
String comdata = "";//缓存清零
while (Serial.available() > 0)//循环串口是否有数据
{
comdata += char(Serial.read());//叠加数据到comdata
delay(2);//延时等待响应
}
if (comdata.length() > 0)//如果comdata有数据
{
String my_str = "123";
int p = comdata.toInt();
Serial.println(p);//打印comdata数据
//p = Serial.parseInt();
//Serial.println(p);
//p=toInt(comdata);
//p=Serial.parseInt();
if(p==1)
{
digitalWrite(DIR, HIGH); //正转
//正转一圈,用时1s
//此处驱动器定义1600步为1圈
//本来1600X625微秒=1秒,因为时间间隔太短,程序运行也需要时间,间隔时间/2之后总时间差不多1秒
for(int x=0; x<1600; x++){
digitalWrite(PLS, HIGH);
delayMicroseconds(5*-00); //脉宽调速度
digitalWrite(PLS, LOW);
delayMicroseconds(500);} //脉宽调速度
delay(10); //停1s
}
if(p==0)
{
digitalWrite(DIR, LOW); //反转
//反转一圈,用时1s
for(int x=0; x<1600; x++){
digitalWrite(PLS, HIGH);
delayMicroseconds(500);//脉宽调速度
digitalWrite(PLS, LOW);
delayMicroseconds(500);}//脉宽调速度
}
delay(10); //停1s
}
}
}
实验效果:
在Arduino窗口输入1正转(行程1600个脉冲,电机旋转圈数可以根据驱动器细分调控),反转同理,输入0(行程1600个脉冲,电机旋转圈数可以根据驱动器细分调控)。