网站设计与开发实例,seo中文意思是,用html做网站代码,软件开发外包公司企云云37款传感器与执行器的提法#xff0c;在网络上广泛流传#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块#xff0c;依照实践出真知#xff08;一定要动手做#xff09;的理念#xff0c;以学习和交流为目的在网络上广泛流传其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块依照实践出真知一定要动手做的理念以学习和交流为目的这里准备逐一动手尝试系列实验不管成功程序走通与否都会记录下来—小小的进步或是搞不掂的问题希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验资料代码仿真编程图形编程 实验八十七步进电机ULN2003驱动板 4相 5线 5V步进电机模组 知识点ULN2003芯片 ULN2003是高耐压、大电流复合晶体管阵列由七个硅NPN 复合晶体管组成每一对达林顿都串联一个2.7K 的基极电阻在5V 的工作电压下它能与TTL 和CMOS 电路直接相连可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高工作电流大灌电流可达500mA并且能够在关态时承受50V 的电压输出还可以在高负载电流并行运行采用DIP—16 或SOP—16 塑料封装。 ULN2003 是高耐压、大电流复合晶体管阵列由七个硅NPN 复合晶体管组成。 ULN2003内部还集成了一个消线圈反电动势的二极管可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压50V,电流500mA,输入电压5V,适用于TTL COMS,由达林顿管组成驱动电路。 ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA饱和压降VCE 约1V左右耐压BVCEO 约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出输出电流大故可直接驱动继电器或固体继电器也可直接驱动低压灯泡。通常单片机驱动ULN2003时上拉2K的电阻较为合适同时COM引脚应该悬空或接电源。ULN2003是一个非门电路包含7个单元单独每个单元驱动电流最大可达350mA9脚可以悬空。比如1脚输入16脚输出你的负载接在VCC与16脚之间不用9脚。
特点如下 ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连可以直接处理原先需要标准逻辑缓冲器来处理的数据。 ULN2003 工作电压高工作电流大灌电流可达500mA并且能够在关态时承受50V 的电压输出还可以在高负载电流并行运行。 ULN2003 采用DIP—16 或SOP—16 塑料封装。 模块电原理图 步进电机 是将电脉冲信号转变为角位移或线位移的开环控制电机是现代数字程序控制系统中的主要执行元件应用极为广泛。在非超载的情况下电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数而不受负载变化的影响当步进驱动器接收到一个脉冲信号它就驱动步进电机按设定的方向转动一个固定的角度称为“步距角”它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量从而达到准确定位的目的同时可以通过控制脉冲频率来控制电机转动的速度和加速度从而达到调速的目的。步进电机是一种感应电机它的工作原理是利用电子电路将直流电变成分时供电的多相时序控制电流用这种电流为步进电机供电步进电机才能正常工作驱动器就是为步进电机分时供电的多相时序控制器。虽然步进电机已被广泛地应用但步进电机并不能像普通的直流电机交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事它涉及到机械、电机、电子及计算机等许多专业知识。步进电机作为执行元件是机电一体化的关键产品之一广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展步进电机的需求量与日俱增在各个国民经济领域都有应用。 Arduino实验接线示意图 【Arduino】168种传感器模块系列实验资料代码图形编程仿真编程
实验八十七步进电机ULN2003驱动板 4相 5线 5V步进电机模组
项目二顺时针旋转1圈逆时针旋转1/4圈串口监控
连接引脚分别将28BYJ-48驱动器的IN1 IN2 IN3 IN4连接到
Arduino UNO R3 8,9,10,11引脚
Arduino实验开源代码
/*【Arduino】168种传感器模块系列实验资料代码图形编程仿真编程实验九十步进电机ULN2003驱动板 4相 5线 5V步进电机模组项目二顺时针旋转1圈逆时针旋转1/4圈串口监控连接引脚分别将28BYJ-48驱动器的IN1 IN2 IN3 IN4连接到Arduino UNO R3 8,9,10,11引脚
*///使用arduino IDE自带的Stepper.h库文件
#include Stepper.h// 这里设置步进电机旋转一圈是多少步依据步距角计算及走一圈需要多少脉冲
#define STEPS 64//设置步进电机的步数和引脚就是驱动板上IN1IN4连接的四个数字口。
Stepper stepper(STEPS, 8, 9, 10, 11);void setup()
{// 设置电机的转速每分钟为90步stepper.setSpeed(290);// 初始化串口用于调试输出信息Serial.begin(9600);
}void loop()
{// 顺时针旋转Serial.println(顺时针旋转1圈);stepper.step(2048);delay(500);// 逆时针旋转Serial.println(逆时针旋转1/4圈);stepper.step(-512);delay(500);
}实验串口返回情况 Stepper库函数 是Arduino 自带的第三方库用于步进电机运行用并支持两相和四相两种类型的步进电机。主要包括
Stepper(steps, pin1, pin2)
Stepper(steps, pin1, pin2, pin3, pin4)
setSpeed(rpm)
step(steps)1、Stepper 两种调用形式Stepper(steps, pin1, pin2)与Stepper(steps, pin1, pin2, pin3, pin4)主要是看电机是两相还是四相该函数作用是创建Stepper类的实例参数steps应该是所使用的的电机转一周需要的步数脉冲数通过电机步距角计算。后面的pin1,2,3,4依据实际情况填写。注意这个函数需要写在程序开始即在void setup()之上。
说明 本语句用于建立一个新的步进电机对象。请在setup() and loop()前面使用本语句。stepper语句的参数根据连接在Arduino开发板上的步进电机实际情况而定。
参数 steps: 电机旋转一周的步数整数型 pin1, pin2: 连接电机的引脚编号整数型 pin3, pin4: 可选参数连接电机的引脚编号整数型
返回值 A new instance of the Stepper motor class. 步进电机对象
示例
Stepper myStepper Stepper(100, 5, 6);
Stepper myStepper Stepper(100, 8, 9,10,11);2、setSpeed 调用形式setSpeed(rpms)这个是控制转速的函数实际是脉冲频率参数为每分钟电机转的步数。数值为正整数。该函数不会使电机旋转。
说明 设置步进电机运行速度每分钟转数。此函数无法让电机旋转只用于设置转速。如要让电机旋转需要使用step函数。
参数 rpms: 转速参数每分钟电机转数长整型
返回值 无
3、step step(steps)这个函数是使电机转过固定的步数只有当电机转过指定步数之后才会执行该语句的下一条语句。参数应该是整数正负号控制旋转方向。
说明 通过step函数您可以让步进电机旋转相应的步数。具体旋转的步数由stepper函数的参数决定。旋转速度则由 setSpeed函数决定。
注意此函为“blocking”类型函数即Arduino在运行此函数时将会等待电机执行完运行要求以后才会执行下一条语句。举例说明假如您通过setSpped函数设置电机的运行速度为1。然后通过调用step(100)指令让电机运转100步。这一操作的执行时间可能要一分多钟才能完成。为了让程序可以更好的运行建议每一次调用step函数时尽量让电机少执行步数同时提高电机的运行速度。
参数 steps: 电机运行的步数整数型
返回值 无
Arduino实验接线示意图 【Arduino】168种传感器模块系列实验资料代码图形编程仿真编程
实验八十七步进电机ULN2003驱动板 4相 5线 5V步进电机模组
项目三极慢转动4步用于观察ULN2003电机驱动板LED变化
慢速顺时针旋转一圈快速逆时针旋转一圈间隔0.5秒
连接引脚分别将28BYJ-48驱动器的IN1 IN2 IN3 IN4连接到
Arduino UNO R3 8,9,10,11引脚
Arduino实验开源代码
/*【Arduino】168种传感器模块系列实验资料代码图形编程仿真编程实验九十步进电机ULN2003驱动板 4相 5线 5V步进电机模组项目三极慢转动4步用于观察ULN2003电机驱动板LED变化慢速顺时针旋转一圈快速逆时针旋转一圈间隔0.5秒连接引脚分别将28BYJ-48驱动器的IN1 IN2 IN3 IN4连接到Arduino UNO R3 8,10,9,11引脚
*///本实验程序使用Stepper库
#include Stepper.h// 定义电机控制用常量// 电机内部输出轴旋转一周步数
const int STEPS_PER_ROTOR_REV 32;// 减速比
const int GEAR_REDUCTION 64;/*转子旋转一周需要走32步。转子每旋转一周电机输出轴只旋转1/64周。电机内部配有多个减速齿轮,这些齿轮会的作用是让转子每旋转一周输出轴只旋转1/64周。因此电机输出轴旋转一周则需要转子走32X642048步即以下常量定义。
*/// 电机外部输出轴旋转一周步数 2048
const float STEPS_PER_OUT_REV STEPS_PER_ROTOR_REV * GEAR_REDUCTION;// 定义电机控制用变量// 电机旋转步数
int StepsRequired;// 建立步进电机对象
// 定义电机控制引脚以及电机基本信息。
// 电机控制引脚为 8,9,10,11
// 以上引脚依次连接在ULN2003 驱动板 In1, In2, In3, In4Stepper steppermotor(STEPS_PER_ROTOR_REV, 8, 9, 10, 11);void setup()
{//setup函数内无内容
}void loop()
{// 极慢转动4步用于观察ULN2003电机驱动板LED变化steppermotor.setSpeed(1);StepsRequired 4;steppermotor.step(StepsRequired);delay(500);// 慢速顺时针旋转一圈StepsRequired STEPS_PER_OUT_REV;steppermotor.setSpeed(500);steppermotor.step(StepsRequired);delay(500);// 快速逆时针旋转一圈StepsRequired - STEPS_PER_OUT_REV;steppermotor.setSpeed(800);steppermotor.step(StepsRequired);delay(500);
}补充实验场景图 实验说明 1、关于接脚程序设为“Stepper steppermotor(STEPS_PER_ROTOR_REV, 8, 9, 10, 11);”实际接脚需要把9和10脚对调一下即可。
2、通过以上实验示例中将看到首先步进电机将以非常慢的速度旋转这么做的目的是为了便于观察UNL2003驱动板上LED变化与电机运动之间的关系。接下来电机将以较为缓慢的速度顺时针旋转一圈然后会以较快的速度逆时针旋转一圈。这里可以通过调整“setSpeed” 的参数来改变电机的旋转速度。
3、有一点需要特别注意。强烈建议在用Arduino驱动28BYJ-48步进电机时为ULN电机驱动板单独配上一个电源。这一点正如上图所示ULN2003驱动板的电源是由一个独立的5V电源所提供的这里使用USB口接入5V电源如果用Arduino开发板的5V电源直接为ULN2003驱动板供电的方法短时间测试是可以的但是不要在长时间使用Arduino为ULN2003驱动板进行供电实测总电流约为310mA。