玩转Arduino合集.pptx
- 文档编号:246263
- 上传时间:2022-10-07
- 格式:PPTX
- 页数:109
- 大小:6.39MB
玩转Arduino合集.pptx
《玩转Arduino合集.pptx》由会员分享,可在线阅读,更多相关《玩转Arduino合集.pptx(109页珍藏版)》请在冰豆网上搜索。
玩转Arduino合集,杭州电子科技大学刘琦,Arduino是什么?
Arduino硬件介绍Arduino编程环境介绍,Arduino的安装,ArduinoIDE的安装USB驱动的安装,4,Arduino程序结构:
setup(),上电后setup()函数执行一次,5,Arduino程序结构:
loop(),loop()函数一直循环运行,6,Arduino数字输入输出,Arduino程序下载,HelloWorld程序,动手,HelloWorld:
点亮一个LED灯,Arduino与电子积木,什么是电子积木电子积木如何与Arduino连接传感器扩展板连接线,数字型电子积木,通用接口模块,小按钮模块,大按钮模块,磁力开关,触摸传感器,倾斜传感器,人体运动红外热释传感器,反射型红外开关50cm100cm,反射型红外开关10cm,反射型红外开关2cm,对射型红外开关8米,继电器模块,动手,通过按钮模拟来控制LED灯的亮灭,面包板使用方法介绍,动手,用面包板完成LED模块的电路连接,LED基本电路,电阻,LED,电源(正/负),LED控制代码,动手,使用Arduino和传感器扩展板使用Arduino的9,10,11三个引脚使用三个LED和1K的电阻通过程序进行控制讨论,彩色LED,红/绿/蓝三原色根据公共端的不同有共阳/共阴两种,动手,更换RGBLED用Arduino程序混色讨论,模拟信号,模拟信号的值可以连续变化9V电池就是一种模拟器件,因为它的输出电压并不精确地等于9V,而是随时间发生变化,并可取任何实数值。
光照强度、温度、湿度等也都是模拟信号,Arduino中的模拟输出,analogWrite(pin,value)pin为Arduino上的PWM引脚3,5,6,9,10,11value取值0-255PWM实现模拟信号的数字化方法,动手,Arduino控制LED淡入淡出效果,动手,实现全彩的混色,模拟输入,通常基于分压原理电位器电子积木300度旋转角度传感器,Arduino中的模拟输入,analogRead(pin)pin:
模拟输入引脚A0,A1,A2,A3,A4,A5返回值:
0-1024(10位精度),动手,通过读取电位器的值来控制LED灯的亮度,300度旋转角度传感器,多圈旋转角度传感器,60行程滑动电位器推子,游戏杆控制杆JoyStick,模拟温度传感器,光线传感器,声音传感器,Sharp红外距离传感器,30cm,80cm,150cm,5.5m,三轴加速度传感器,FlexiForce压力传感器,1lb,25lb,100lb,FSR系列压力传感器,压力1-10kG尺寸和外形不同,弯曲传感器,单向,双向,拉伸传感器,4inch,6inch,动手,实验各种模拟传感器对RGBLED进行控制分享,串口通信,串口通信(SerialCommunication)是Arduino和计算机间按位进行数据传输的一种最基本的方式。
使用3根线完成地线,GND发送,Tx接收,Rx主要参数波特率:
通信速度,表示每秒钟传送的位(bit)的个数数据位停止位奇偶校验位,Arduino串口,USB转串口PC端:
串口Arduino端:
USB串口引脚RX:
Pin0TX:
Pin1串口数目ArduinoMEGA和Arduino2560:
4个其余:
1个串口初始化函数Serial.begin(speed)speed:
300,1200,2400,4800,9600,14400,19200,28800,38400,57600,115200通常在setup()函数里调用,Arduino串口输出,将数据从Arduino传输到PCTX串口转USBPC端软件串口监视软件ArduinoIDE自带串口监视软件也可以用其它软件进行接收:
Flash,Processing,Director,vvvv等串口输出函数Serial.print(val),Serial.println(val)输出ASCII码(后者多一个回车换行)Serial.print(val,format),Serial.println(val,format)按指定格式输出(后者多一个回车换行),Serial.print(val)实例,Serial.print(78)输出78Serial.print(1.23456)输出1.23Serial.print(byte(78)输出“N”(N的ASCII码值为78))Serial.print(N)输出NSerial.print(Helloworld.)输出Helloworld.,Serial.print(val,format)实例,Serial.print(78,BYTE)输出NSerial.print(78,BIN)输出1001110Serial.print(78,OCT)输出116Serial.print(78,DEC)输出78Serial.print(78,HEX)输出4ESerial.print(1.23456,0)输出1Serial.print(1.23456,2)输出1.23Serial.print(1.23456,4)输出1.2346,动手,动手,尝试输出更多格式的数据到计算机Serial.print(78)Serial.print(1.23456)Serial.print(byte(78)Serial.print(N)Serial.print(Helloworld.)Serial.print(78,BYTE)Serial.print(78,BIN)Serial.print(78,DEC)Serial.print(78,HEX)Serial.print(1.23456,2),串口液晶模块,波特率9600命令格式所有对该液晶屏进行控制的串口命令都以字符”$”开始,以回车换行”rn”结束,两者之间是相应的命令和参数,不同的命令具有不同的参数。
操作命令光标移动:
GO行列行和列均从1开始GO11在当前光标位置上显示字符串PRINT字符串PRINTHelloArduino清屏:
CLEAR将光标移回到屏幕左上角的初始位置:
HOME设置光标效果:
CURSOR显示闪烁第一个参数为是否显示光标(1和0)第二个参数为是否闪烁(1和0)CURSOR11一个完整命令的例子Serial.print($PRINTFlamingoEDArn);Serial.println($PRINTFlamingoEDA);,动手,要求:
清屏后在屏幕上的第二行第二列开始显示字符串ArduinoClub提示在loop的最后加delay防止闪烁在下载代码的时候不能接显示屏,Arduino串口输入,串口队列(Buffer)PC和Arduino间的缓冲区串口输入函数Serial.available()返回值:
当前可读的数据数目Serial.read()如果串口没有数据可读,返回-1如果串口有数据可读,返回第一个字符,并从串口队列中取出Serial.peek()如果串口没有数据可读,返回-1如果串口有数据可读,返回第一个字符,但不从串口队列取出,因此下次还能读到Serial.flush()清空串口队列,动手,作业,从串口输入以$开始,以回车换行(rn)的命令,对其进行解析,控制指定数字I/O引脚上的LED,第一个参数为引脚号,第二个参数为亮灭$D21rn$D30rn控制指定PWM端口上的LED亮度第一个参数为引脚号,第二个参数为亮度值$P6128rn,基于串口的电子积木
(一),串行液晶显示屏字符型1602LCD,USB转串口适配器,RS485串口模块,MAX232串口模块,无线数据传输模块APC220,蓝牙串口模块,基于串口的电子积木
(二),串口RFID模块10cm,串口RFID模块6cm,XBeeUSB适配器,直流电机,将电能转换为机械能的一种装置两个电源接头在适当的电压下给予足够的电流时将连续旋转,旋转方向由电流方向决定普通直流电机转速高力矩小,适用于对力矩要求小的场合,直流减速电机,直流减速电机(齿轮减速电机)是在普通直流电机的基础上,加上配套齿轮减速箱。
齿轮减速箱可以提供较低的转速和较大的力矩,不同的减速比可以提供不同的转速和力矩,常用参数,工作电压(额定电压)驱动电机推荐使用的电压高于或者低于工作电压时电机也能工作实际电压额定电压,会影响电机的寿命工作电流电机工作电流越大,输出功率越大空载运行时,电机的电流最小(空载电流)负载增大到使电机停止转动时(堵转电流)转矩电机的转动力转速每分钟旋转的圈数(转/分,RPM),注意!
电机属于大电流设备,无法用Arduino引脚直接控制区别于LED电机电压高于Arduino的工作电压,注意隔离和接线出错可能导致Arduino烧毁电机在不通电的情况下旋转将产生逆电流(逆电压)发电机的工作原理逆电流的方向与电机工作电流的方向相反逆电流会造成电子设备的损坏,动手,观察逆电压手工发电机,基本控制电路,用三极管或者MOS管驱动电机,动手,用Arduino控制电机的转动,代码,与LED灯控制代码相同,电机速度控制,复习PWM高速地开关三极管来实现对电机的控制占空比(打开时间:
关闭时间)决定了输出给电机的能量份额Arduino的analogWrite函数用来产生PWM信号,动手,用Arduino控制电机转动的速度如何让速度变化更容易观察到?
H桥式驱动电路,4个三极管控制一个直流电机只让对角线上的一对三极管导通否则会短路,烧坏三极管能同时控制速度和方向,电机驱动芯片L293D,包含两个H桥式驱动电路,可以用来驱动两个直流电机,电机,使能引脚,方向A,方向B,电机电源,Arduino5V,电机电源和Arduino需要共地!
Arduino控制L293D,速度控制使用Arduino模拟输出引脚将产生的PWM信号连接到L293D的使能引脚方向控制使用Arduino的数字输出引脚将产生的数字信号连接到L293D的A、B两个方向引脚正转:
A为高,B为低反转:
A为低,B为高制动:
A、B同时为高或者低,动手,用L293D控制电机,Arduino电机驱动扩展板,基于L298N,工作原理与L293D一样提供更大工作电流,可以驱动大的直线电机逆电压消除电路,步进电机,一种可以精确控制的交流电机由驱动脉冲控制,每个脉冲让电机前进一个固定的角度(步进角)电机速度由单位时间内脉冲的个数决定(脉冲频率)功率小,负载能力低,控制相对复杂,双极性步进电机,每个线圈都可以两个方向通电四根引线,每个线圈两条使用数字万用表确定线圈分组某两根引线之间能够测量到阻值就属于一组双极性步进电机的步距通常是1.8转一圈需要200步,工作原理,步进电机驱动器,需要不断改变线圈中电流的方向通过H桥式驱动电路完成步进电机驱动模块EasyDriver,方向,步进脉冲,地,电机电源,地,线圈A,线圈B,电机电源和Arduino需要共地!
Arduino控制EasyDriver,方向控制使用Arduino的数字输出引脚速度控制使用Arduino的数字输出引脚产生脉冲信号,动手,用EasyDriver驱动双极性步进电机,升降速曲线,步进电机在拖动负载高速移动一定距离并精确定位时一般来说都应包括五个阶段启动加速高速运行(匀速)减速停止不同阶段的脉冲频率应不同,舵机,舵机也叫伺服电机(Servo),工作电压一般4.67.2V由直流电机、减速齿轮组、传感器和控制电路组成主要应用在定位控制上,舵机接口,标准三线接口电源线地线控制线,控制信号,舵机的控制信号也是一种PWM信号脉冲周期20毫秒脉冲高电平持续1毫秒(1000微秒)到2毫秒(2000微秒)用来控制的脉冲信号必须持续产生,否则很难稳定,注意!
舵机对控制脉冲高电平的宽度非常敏感抖动:
控制信号每个脉冲的高电平宽度不稳定两个控制脉冲的间隔时间不太敏感只要在可以接受的范围内都可以(14ms到20ms)只有机械约束,没有电路
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Arduino