- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第03章节Arduino基本函数
第3章 Arduino基本函数; 3.1 时间函数;3. delayMicroseconds( us); 3.2 数字I/O函数; 在数字电路中开关是一种基本的输入形式,它的作用是保持电路的连接或者断开。Arduino从数字I/O管脚上只能读出高电平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成Arduino能够读取的高/低电平。解决的办法是通过上拉电阻/下拉电阻。;(a) 下拉电阻;3、digitalRead(pin);图2 数字引脚I/O原理图; 按键是一种常用的控制电器元件,常用来接通或断开电路,从而达到控制电机或者其他设备运行的开关。按键的外观多种多样,本次操作使用的是这种微型按键,6mm的,如图3所示。; 此种按键有4个脚,从背面看如图4(a)所示,其原理图如图4(b)所示。;参考代码:;void loop()
{
value = digitalRead(switchPin);
if (HIGH == value)
{
digitalWrite(ledPin, LOW); // turn LED off
}
else
{
digitalWrite(ledPin, HIGH); // turn LED on
}
};1. analogReference(type);注意:如果在AREF引脚加载外部参考电压,需要使用
一个5KΩ的上拉电阻,这会避免由于设置不当
造成控制芯片的损坏。;2. analogRead(pin);控制方式,其根据相应载荷的变化调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。图6是一个简单的PWM波示意图。;; 在 Arduino 中执行该操作后,应该等待一定时间 后才能对该引脚进行下一次操作。Arduino中的PWM的频率大约为490Hz。该函数支持以下引脚:3、5、6、9、10、11。在Arduino控制板上引脚号旁边标注PWM的就是PWM的引脚 。;实践操作1:;参考代码:;void loop()
{
analogWrite(9, brightness);
brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 255)
{
fadeAmount = -fadeAmount ;
}
delay(30); //延时30毫秒
};注释与已知问题:
当PWM输出与5,6 号端口的时候,会产生比预期更高的占空比。原因是 PWM 输出所使用的内部时钟,millis()与delay() 两函数也在使用。所以要注意使用5 , 6 号端口时,空占比要设置的稍微低一些,或者会
产生5,6 号端口无法输出完全关闭的信号。; 图8 模拟口输入/输出连线图;注释与说明:
模拟端口读入信号电压时从0到5V的范围,经过模拟输入函数读取,返回值为0 ~ 1024。而PWM端口占空比范围为0 ~ 255,因此程序要有一个计算。;void loop()
{
Log=analogRead(0);
//读取模拟口0的电压值
Log=map(Log,0,1023,0,255);
//将电压值转换为占空比
analogWrite(3,Log);
//输出模拟电压
delay(30);
//延时30毫秒
}; 3.4 随机函数; 3.5 数学函数;3. abs(x);5. map(x,in_min,in_max,out_min,out_max); 3.6 串口通信;(a) 并行通信; 串行数据传输时,数据是一位一位地在通信线上传输的,先由具有几位总线的计算机内的发送设备,将几位并行数据经并--串转换硬件转换成串行方式,再逐位经传输线到达接收站的设备中,并在接收端将数据从串行方式重新转换成并行方式,以供接收方使用。;2.单工、半双工、全双工通信; Arduino中串口通信是通过HardwareSerial类来实现的,在头文
文档评论(0)