Arduino入门系列3——开发第一个控制程序
这部影片由lazy tomato为您提供。
在上次的影片我们介绍了 arduino 的基本城市架构还有指令,今天妈带您完成第一个动手做的小专案。
首先这是今天会用到的三个指令。
·第一个是p mode可以设定街角模式,作为输入或是输出。
·第二个是digital right用来设定街角的高低电位状态。
·第三个是delay,可以让 arduino暂时停止一段时间。如果你觉得很陌生,赶快回去看 class two 的影片复习一下。
今天的目标是让一颗led闪烁,这几乎是每位 arduino初学者的第一个练习。好消息是 arduino本身就内建了一颗 led在这个地方,而且是由第十三脚来负责控制的。也就是不需要外接led或是电路,只要让十三脚输出高电位,也就是输出五伏特,就可以让这颗 led亮起来。相反的输出低电位也就是零伏特,就可以把 led洗灭。
所以如果要让这颗led闪烁一次,该怎么设计这些动作?
·首先设定十三脚为输出模式。因为要从十三脚送出电流给 led使用,所以在一开始就得告诉 reno第三脚之后要用来输出东西,设定完成以后接着在十三脚输出高电位,这个步骤就会让 led亮起来。然后要维持led亮着的这个状态,一段时间,比如一秒钟。
·最后再把高电位换成低电位,让led熄灭。这些步骤其实全部都可以用学过的指令来表示。首先是设定输出模式的p mode十三output,然后是设定高定位的 digital right,十三high。
接着这个维持状态的步骤就相当于叫耳朵一扭暂停的意思。所以可以使用 delay一千,让耳朵一扭暂停一千毫秒,也就是一秒钟等时间到了,再继续执行下一个指令。
·最后使用digital right,十三low,把街角设定为低电位,就完成让led闪烁一次的城市设计了。因为这些指令都只需要被执行一次,所以可以直接把这段城市码放到基本城市架构里的 setup 区块中。而loop区域则不需要放任何东西。
这边请特别注意,即使loop 区块没有任何工作,但他们都是基本城市架构中一定要存在的东西,所以这个 voidlook是绝对不能删除的。现在看到的城市码就是可以在led闪烁一次的完整城市码。但是如果希望在 led开机以后led可以不断闪烁,该怎么修改这个城市呢?
·首先一定要设定十三脚为输出模式,所以pmode 指令不需要修改。
·接着再点亮暂停。熄灭 led之后,led可以不断闪烁,我该怎么修改这个城市呢?首先一定要设定十三脚为输出模式,所以拼mode 指令不需要修改。接着再点亮暂停。
·熄灭 led之后,应该要让er beno维持关闭led的状态一段时间。
比如一样是一秒然后才重复点亮led的动作。最直接的重复方式就是疯狂的复制。这四行城市码让led看起来就真的像永无止境的在闪烁。但这不是一个聪明的做法。还记得基本城市架构中有一个最擅长重复的loop区块吗?只要把这四行城市码移到loop区块当中不停闪烁的功能就完成了。
现在reno 只要一开机就会先设定十三角为输出模式一次,然后开灯维持状态,关灯维持状态,再开灯维持状态,关键维持状态。就这样一直做到把电源关掉为止,好的终于把城市给完成了。现在请打开arduino id一,我们在上路以前还有些小东西要设定。会先示范mac版本的操作,然后是windows版本跟linux版本。
·首先点选功能列上面的arduino preference进行开发环境的设定。这里可以调整编辑器的语言还有字形大小。当然最重要的就是要把显示预览的功能勾起来。而 windows 与linux的使用者同样可以在功能列找到偏号设定的选项。
·接下来要使用 usb 线把arduino接到电脑上,然后在工具里面的板子选单选择wono。最后在工具序列布里找到wono的装置,点下去就设定完成喽。
·同样的步骤也能在windows与linux的系统上使用。现在可以把刚才完成的城市输入到id里面,或者也可以点选档案张丽丽天文台里面的ininin,而 doino id会开启新的视窗,里面放的就是这一次小专案的城市码。不过会发现城市码里面有很多指令以外的灰色文字,这些东西叫做注解是写给人,也就是城市设计师。看的通常用来说明城市或指令的用途。
时期在执行的时候ardino会把所有注解的文字忽略,所以不会影响原本城市的功能。注解有两种使用方式。如果有一大段文字要记录在城市码当中,可以使用一组斜线星号跟星号斜线,把这段文字注解起来。如果只要对某一行文字进行注解,就可以使用双斜线把符号后面的这行文字都注解起来。
·另外还要介绍一个东西叫做缩排,如果仔细观察会发现夹在大挂号里的城市会比大挂号外的城市还要偏右一点,这是为了方便城市设计师。在看城市码时可以一眼就知道这段城市码夹在哪个区块里面。这是非常重要的城市撰写习惯。
从这两张比较图中就可以看出有缩牌的城市码,它的区块跟结构相当明显,有助于城市码的填写还有阅读。可以利用键盘上的tab 按钮让城市码缩排。通常同一个区块也就是包在同一组大挂号的城市会缩排到同一个高度,往后的城市也都会遵守。这样的排版规则一定要养成习惯。
·最后要把城市码捎入到rdola2当中。试窗的左上方有五个按钮分别代表验证上传新增开启与储存。可以先点选择认证让耳朵innoid检查城市的语法有没有错误。如果下方资讯栏没有出现错误信息就可以按下上传把城市码稍入到耳朵inner当中。
现在耳朵inner上的led是不是真的在闪烁了呢?恭喜你完成了第一个属于自己的小专业并且学到了相当扎实的背景知识,也可以尝试修改delay里面的暂停时间长度观察闪烁的时间变化。
如果在验证或是上传的步骤出现错误,欢迎留言在下方的评论栏,我们会尽力为您解答相关参考资料还有连接。都已经整理在youtube下方的说明栏,欢迎多加利用。这期的video speed up就到这里,下次见,拜拜。
基于Arduino的校园照明智能控制系统设计与实现—文档
随着电子技术的飞速发展,基于单片机的控制系统广泛应用于工业、农业、电力、电子、智能建筑等行业。作为嵌入式控制系统的主体和核心,微型计算机取代了传统控制系统的传统电子电路。建筑智能化的发展和成熟也为基于MCU的照明控制系统的推广和应用奠定了坚实的基础。
介绍了基于ARDUINO的室内照明控制系统及其原理,提出了一种有效的节能控制方法。该系统采用成熟的传感技术和计算机控制技术,采用多参数控制学校教室的室内照明。
系统设计包括硬件设计和软件设计。照明控制系统的主控制器和子控制器分别基于ARDUINO,实现了通信、信号采集、控制、显示等功能。光电稳定器用于使光源具有自动调节功能。详细描述了控制电路的设计过程,包括:光信号采样电路、人体信号采集电路、键盘和LED显示电路、RS485通信电路、照明控制电路、看门狗电路和信号处理电路。软件设计主要包括主控制器和子控制器的有线通信编程,以及灯光控制、定时控制、键盘扫描和LED显示编程。
在工作过程中,光信号采样电路采集光强度、人体信号采集电路、房间是否有人、工作时间等信息,并向微控制器发送信号。微控制器根据信息通过控制电路切换照明装置,实现照明控制,达到节能目的。
关键词:智能控制,主控制器,分控制器,单片机,定时控制;
目录
摘要 1
ABSTRACT 1
1 绪论 2
1.1 课题研究背景 2
1.2 智能照明控制系统的发展与现状 2
1.3 系统设计 3
2 硬件电路设计与实现 6
2.1 系统硬件总述 6
2.2 CPU性能介绍 6
2.3 主控制器电路设计 7
2.4 分控制器的电路设计 8
2.5 RS485通信电路的设计 9
2.6 光信号取样电路 11
2.7 DS12887时钟芯片接口电路设计 15
2.8 输出驱动电路设计 18
3 系统软件设计及实现 21
3.1 人机交互程序设计 21
3.2 照明启停控制程序设计 23
3.3 照明控制程序设计 26
3.4 RS485通信程序设计 28
总结 31
致谢 32
参考文献 33
系统软件设计及实现
软件设计分为主编程、子编程和中断编程三部分。软件是计算机系统的灵魂。没有软件,计算机就不能充分发挥其功能。这就是软件在计算机中的地位。在计算机控制系统中,软件也非常重要。在照明控制系统中,硬件设备的功能由软件定义。例如,系统控制分布式照明设备,串行通信程序完成控制功能,键盘功能由软件定义,LED数字显示由编程完成。你会发现软件是控制系统的重要组成部分。
人机交互程序设计
系统的人机交互程序设计主要是解决按键扫描和信息显示,使操作员能够灵活控制系统。键盘用于输入指令,LED用于显示微控制器的状态。这是一种比较简单的人机交互形式。
本系统的键盘是4×4采用矩阵键盘,由行线和列线构成。这些关键点位于行线和列线的交点处。4×4的行和列结构可形成具有16个键的键盘。显然,如果键的数量较多,矩阵键盘与独立键盘相比节省了更多I/O端口。
扫描速度非常快,人们总是在一定时间内按键,所以只要微控制器处于等待输入状态,这个键盘扫描程序基本上不会放过按键信号。因为大多数人按下键就会有抖动,所以扫描键盘时抖动信号可能会导致错误的信号。无法扫描数据或多次重复输入。因此,需要消除抖动的程序。微控制器不响应相关抖动信号的一部分,只响应实际存在一次的按键信号。这样就可以实现抖动去除程序。如果检测到脉冲信号,则不会立即视为键,而是在延迟后检测到。如果在3次检测中有信号,则认为发生了键操作。选择延迟非常重要。抖动去除太快。太慢会导致键盘不灵活,错过更多的按键信号。键盘扫描仪的流程图如图3-2所示。
除基本数字键(0-9)外,系统将其他键定义为6个命令键:开启、关闭、增值、贬值、计时和确认。关键点控制的基本功能包括:。
(1)通过数字键和确认键输入子控制器的地址和定时功能的时间设定。
(2)使用按键开关控制照明装置的启动和停止。
(3)使用值增加和值减少键来控制照明装置的亮度。
(4)定时键用于设定照明装置的定时控制。
系统通过软件方法实现该功能,即定义开、关、附加值、贬值、计时、确认等命令键,通过键盘扫描程序获取相应命令键的键值,然后执行相应的子程序,实现所需的控制功能。
该系统采用4位共阳极7级数码管。共用阳极数字管的8个发光二极管的阳极(二极管的正极)连接。通常,公共阳极连接到高电平(通常连接到电源),其他引脚连接到部分驱动电路的输出端。在驱动电路的一部分的输出端子为低电平的情况下,与端子连接的场连接而点亮,能够根据发光场的组合显示各种数字或文字。在这种情况下,段驱动电路需要吸收额定段导通电流,根据外部电源和额定段导通电流决定对应的限流电阻。这里的限流电阻为100Ω。
这里选择的7447码片是从BCD码到SEG7段码的转换器,74LS138是地址解码器。数字管由74LS138开启,并且基于从7447发送的SEG7段代码数据显示。未启用时,数码管可保留原始显示数据。图3-3表示LED数字显示程序的流程图
参考文献
【1】马淑华 王凤文 张美金编著 单片机原理与接口技术[M].北京.北京邮电大学出版社 2007
【2】贾正松 基于单片机实现智能照明控制系统设计[J]现代电子技术 2009 (17):P105——107
【3】孙涵芳、徐爱卿.单片机原理及应用[M].北京:北京航空航天大学出版社.1996
【4】陈新忠.基于RS485总线的单片机多机通信软件设计[J].现代电子技术.2002.(3)P8-10
【5】樊宇、程全. 基于 RS485 总线实现的远距离多机主从式通信技术[J]. 工业控制计算机. 2006. 19(7) P71~73
【6】孙雪梅、范久臣.实时时钟芯片在单片机系统中的应用[J].沈阳教育学院学报.2005.7(2) P132~134
【7】胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社.1996年第1版.p266-268.
【8】清华大学自动化系.智能信息处理和智能控制[M].杭州:浙江科学技术出版社.1998,12.
相关问答
蛋仔自动 控制 的船怎么做?蛋仔自动控制的船可以通过以下步骤来制作:1.首先,准备一个模型船的框架。可以使用木材或塑料等材料来制作船身的框架,确保框架结构稳固。2.在船身框架上安装...
远程WiFi接收器怎么做?制作远程WiFi接收器需要具备一定的电子技术知识和工具。以下是大致的步骤:1.购买合适的WiFi接收模块(例如ESP8266),以及相应的天线和电路板。2.根据接收...
交互设计专业留学去英国如何选校?中国互联网是全球第一大网,网民人数最多,联网区域最广。随着中国互联网的发展,对于互联网人才的需求也越来越大。所以一开始,交互设计也受到了非常多的追捧,...
如何在C语言中改变颜色?在C语言中改变文本颜色需要使用特定的控制字符,通常使用ANSI控制码来实现。在Windows操作系统下,可以使用WindowsAPI来实现改变控制台输出文本颜色的功能。下...
麦科勒姆轮怎么编程?麦科勒姆轮(MecanumWheel)是一种特殊的轮子设计,可以实现全向移动。要编程控制麦科勒姆轮,您需要了解麦科勒姆轮的运动原理和编程语言的基础知识。下面是一...
工业机器人编程难学吗?机器人的开发语言一般为C、C++、C++Builder、VB、VC等语言,主要取决于执行机构(伺服系统)的开发语言;而机器人编程分为示教、动作级机器人编程语言、任务级...
小学生机器人编程怎么入门?-ZOL问答对于工科领域来说,脱离实践的学习都是肤浅的,对于控制这种强调经验的技术更是如此。如果去问一个程序员怎么学习一块技术,他必然让你去多编程。机器人领域也是...
老司机们!跪求解答!!酸度计如何使用?,酸度计报价保修吗??[回答]Arduinopromini用起来有点费劲。它2113没有ArduinoUNO那样自带串口5261通信的芯片。我也有4102一块,我是这么用1653的:弄个PL2303的USB转TTL串口的...
想学it技术。现在学java好是学python比较好?你好,这取决于你学习编程的目的是什么。如果你还没入门,不需要考虑那个语言比较热门的问题,其实一旦熟悉了一门语言,上手其他是很快的。你需要考虑的是,希望...