怎么用arduino的程序控制进步电机实现转动

怎么用arduino的程序控制进步电机实现转动,第1张

arduino程序驱动步进电机须循环使用脉冲,要了解电机的相数,步矩角度等。

举例:使用A3967类型驱动板

digitalWrite(dir,方向);// 0 or 1

for(int i=0;i<周期;i++){

digitalWrite(pin, HIGH);

delayMicroseconds(延时);

digitalWrite(pin, LOW);

delayMicroseconds(延时);

}

可以,你说的”电脑编好的程序,烧给Arduino,然后Arduino成为一个独立个体进行代码下的活动“是对arduino编程和烧写,这个环节只要一次。arduino根据你的程序运行之后可以通过串口与电脑进行双向通信(前提是你的arduino程序里有串口通信代码)。与此同时,如果你用的arduino板上的芯片还有其他未用的串行通信接口或者I2C、SPI、CAN接口,也可以与传感器进行通信,这样,就可以将传感器的数据借助arduino传输至你的电脑了。

PS如果你要实现的任务不复杂,用arduino IDE进行编程、汇编是可以的,如果对时效要求较高,譬如想达到1Mbps的串口传输速率或者400kHz的I2C通信或者10KHz以上的方波输出或者尽可能短的程序执行周期,建议在Atmel Studio用gcc直接对avr进行编程。效率很轻松的能达到arduino IDE编译的程序的5到10倍强。

PPS你的电脑上位机程序编写看你个人爱好,如果你之前学过编程有基础,可以用VB,C++,DELPHI如果你的基础不是太牢并且想短时间内看到成果,推荐matlab或者labview。内部集成强大的数学分析工具,可以直接使用,譬如离散卡尔曼,FFT,等等等等。

// Pin 13 has an LED connected on most Arduino boards

// give it a name:

int led = 13;

int button = 9;

int buzzer = 2

// the setup routine runs once when you press reset:

void setup() {

// initialize the digital pin as an output

pinMode(buzzer, OUTPUT);

pinMode(led, OUTPUT);

pinMode(button,INPUT);

}

// the loop routine runs over and over again forever:

void loop() {

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(10000); // wait for 10 second

if(HIGH == digitalRead(button))

{

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

}else

{

digitalWrite(buzzer, HIGH);

while(1)

{

delay(1000)

}

}

}

GPIO ( General Purpose Input Output ) 全名为通用输入输出,是单片机的一种管脚,即可以做输入、也可以做输出, 常用于将开关、按键、LED、传感器等接到单片机。

       数字IO脚有两个状态: HIGH 或 LOW,  HIGH就是高电压(5V,  表示1), LOW是低电压(0 V, 表示0)   可以通过软件控制管脚的电平状态, 从而实现对外围设备的控制

2, Arduino 模块

Arduino 模块就是把电子元件做在一个电路板上,  引出几个管脚  使用者只需把管脚连接到Arduino板, 即可组成电路  这样做很方便,  初学者甚至不需要懂得元件或 电路, 就能开展电子制作

Arduino 模块种类非常多,包括:LED, 开关, 各类传感器等 

俺在淘宝上购买一个Arduino 37件模块套装(约70元)

以下进入本次实验学习

二、点亮LED灯(使用LED模块)

1, LED模块

如下图:

这种LED模块上面有一个发光二极管(即LED),  有两个状态:亮或灭

模块有三个引出管脚,  GND接地, VCC接5V, IN 接IO脚   

不同厂家的模块对管脚标注方法可能不同,    有的厂家把GND标为 "-"号,  把 IN 标为 S (即 Signal 信号的意思)

2, 接线

用杜邦线把LED模块的三个脚接到Arduino板上,    GND接地, VCC接5V, IN 接 D5脚 (IO脚可以随便选)

3, 在Arduino IDE中写个Arduino程序控制D5脚上的LED灯

int pin = 5; //LED的管脚

void setup() {

pinMode(pin, OUTPUT); //设置管脚为输出模式

}

void loop() {

digitalWrite(pin, 1); //向管脚写入1, 设置为高电平, 则LED灯亮

}

运行效果:   LED灯亮起

4, 再写个程序,让LED灯闪烁

int pin = 5; //连接LED的IO脚

void setup() {

pinMode(pin, OUTPUT); //设置管脚为输出模式

}

void loop() {

digitalWrite(pin, HIGH); //将管脚设置为高电平, 则LED灯亮

delay(1000); //等待1000毫秒

digitalWrite(pin, LOW); //将管脚设置为低电平, 则LED灯灭

delay(1000); //等待1000毫秒

}

运行效果:   LED灯闪烁 (亮1秒, 灭1秒)

三、点亮LED灯  (使用LED元器件自已搭电路)

1, 准备元器件和器材

     发光二极管(LED) 一个

     面包板一块

     1K 电阻一个

      杜邦线若干

 

2, 了解LED

     发光二极管(LED) 是一种单向导电的二极管  有两个脚 两个脚有一长一短,短的是连接GND,长的是连接正极 (注意: 接反了不会亮的)

     当适当的电流通过时,  LED将发光

    一般的LED发光时电流值为 3- 10 mA,  电流太小不发光,  电流过大则会烧坏LED  电流小则亮度低, 电流大一些则更亮  

    LED两端电压不能太大, 一般在1 -  2 V  连接在电路中时, LED会产生压降,约为17V

    LED接线的 电路原理图如下:

    

      上图中:   LED压降约为17V,   当GPO脚输出为5V时,  电阻R两端电压为33V, 根据欧姆定律计算电流  =   33V / 1000 = 33mA  由于33mA电流通过 LED, 则LED将发光

       当GPIO脚输出0V时, 两端无电压, 无电流,则LED灭

       上图中,如果把电阻换为 330欧姆, 当GPO脚输出为5V时,   则电流 = 33V / 330 = 10 mA  电流更大一些,则LED会更亮一些

    

3, 用面包板接线

把LED和电阻插入面包板, 用杜邦线接线,  示意图如下:  

4, 在Arduino IDE中写个Arduino程序控制D5脚上的LED灯

以上就是关于怎么用arduino的程序控制进步电机实现转动全部的内容,包括:怎么用arduino的程序控制进步电机实现转动、简单的arduino开发问题关于由电脑控制程序启动和结束、arduino编程,程序开始运行一个led亮,10秒内按button led就灭,10秒没有按button,buzzer就会响。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10091275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存