如何用arduino开发单片机

如何用arduino开发单片机,第1张

1 去Arduino官网下载最新版本的IDE版本,这样你就可以在计算机上编写和烧录自己的Arduino程序了。

2 如果是在网上买的单片机,卖家一定送你很多资料吧,跟着资料里的步骤一个实验一个实验的做,先从点亮数码管开始慢慢来,等熟悉了之后就可以更加精密的器件,编写更加复杂的程序了。

比如PWM电机驱动,摄像头驱动之类。

3 如果想好好学习单片机的话建议买块51打好基础。学号C语言也很重要;

一、工作原理

生活中的升降电梯组成比较复杂,包含轿厢系统、导向系统等等,如下图1所示。但是功能却相对好 *** 作,就是按下对应的楼层时,轿厢系统就可以达到对应的楼层。

图1升降电梯的组成

那么这一简单的 *** 作,背后的原因是怎样的?我们以三层楼为例,为了实现楼梯准确智能的切换,可以引入两个变量实现。开始设定一个变量a数值为0,电梯在1层;当按下3层时,变量b设为3。程序执行“b-a”的数值乘以运动一层的时间,即可到达3层的位置,并让b的值赋予a。同样如果此时再按下2层时,则变量b的值设为2,当“b-a”小于0时,则反转,乘以一层运动的时间,就可以到达2层啦。

二、硬件装置

那么如何控制电梯的升降?需要开源硬件Arduino、按钮、电机驱动板和电机等材料。

制作本作品所需要的材料和说明如表 1所示:

表 1 实验材料

名称

数量

说明

Arduino UNO 主板

1个

控制器

Arduino 扩展板

1个

扩展接口

按钮

3个

控制楼层

电机驱动板

1个

控制电机的运动

楼梯模型

1个

骨架材料

小电机

1个

驱动轿厢移动

三、L298N电机驱动板的使用

可能大部分老师同学对Arduino的使用比较熟练,但是对于电机驱动板的使用还不是熟悉。L298N电机驱动板具体的功能,如下图2和3所示。

图2 L298N电机驱动板的功能图

图3 针脚的功能

在这里需要提醒的是:1当IN1和IN2的电平不一样时,才能控制输出A电机的方向;同样,IN3和IN4也是一样的;2ENA和ENB针脚分别控制M1和M2的PWM,也就是电机的转速;

四、代码编写

原理清晰了,代码就比较简单书写,本案例我们使用Mixly编程软件。具体如图4和5所示。

图4 主程序

图5 控制上升下降的函数

程序介绍:刚开始设置两个变量a和b,分别赋值为1和0。如果按下2楼时,则b赋值为2,执行“控制上升下降的函数”。在这个函数中,通过两者差值的大小乘以一层楼运行的时间,来控制到达的楼层;如果b>a,则向上运动;如果b<a,则改变管脚2和3的高电平和低电平,改变运动方向;待执行完之后,将b的值赋予给a。如果按下3层时,b的值为3,同样通过判断a和b的值,执行“控制上升下降的函数””,来执行电梯移动到指定的位置,不断循环。

五、运行效果

根据要求,将各硬件材料组装测试,如下图6所示。正如生活中的电梯一样,当按下对应的楼层按钮时,则电梯的轿厢可以到达对应的楼层

Arduino硬件的特点主要包括以下几个方面:

1 开放源代码:Arduino硬件的设计方案和软件代码都是开放源代码的,可以自由获取、使用和修改,方便用户进行二次开发和定制。

2 易于使用:Arduino的硬件和软件都非常易于使用,即使对于没有硬件和编程经验的初学者来说,也可以快速上手。

3 多种型号:Arduino硬件有多种不同的型号和版本,适用于不同的应用场景和开发需求。例如Arduino Uno、Arduino Mega、Arduino Nano等。

4 低成本:Arduino硬件的成本相对较低,适合用于学习、教育和小规模项目开发。

5 丰富的资源和社区支持:Arduino硬件有大量的在线资源和社区支持,包括教程、示例代码、开发工具、应用案例等,方便用户进行学习和开发。

6 多种接口:Arduino硬件具有多种接口,包括数字输入/输出接口、模拟输入接口、串口、I2C总线、SPI总线、PWM输出等,可以方便地与其他外围设备进行通信和控制。

总之,Arduino硬件的特点包括开放源代码、易于使用、多种型号、低成本、丰富的资源和社区支持、多种接口等,使得它成为了一个非常受欢迎的开放式硬件平台。

是免费的

arduino软件是一个基于开放原始码的软硬体平台,构建于开放原始码simpleI/O介面版,并且具有使用类似Java,c语言的Processing/Wiring开发环境。Windows平台上面arduino软件下载后为zip包,直接解压就可以使用。利用arduino软件可以快速的设计你的程序,将程序编写好后,就可以通过此软件上传到arduino开发板中执行。

Arduino官方开发团队本周宣布免费下载适用于Chrome教室的ArduinoCreate应用程序。作为最新的ArduinoEducation更新的一部分,该团队现在已经免费为Chrome开发了ArduinoCreate应用程序。ArduinoCreate采用在线平台的形式,使学生可以编写代码,访问教程,配置电路板和共享项目,并且旨在为用户提供连续的工作流程,“ArduinoCreate将灵感与创造的点点滴滴联系起来”Arduino团队。

Arduino的首席执行官FabioViolante表示:“ArduinoEducation的目标是将技术推向全球每个学生的手中。使ArduinoCreate免费并因此更易于访问,是朝着这一目标迈出的一步。我们为提供开源软件感到自豪,并希望在STEAM学习方面激发学生和教育工作者的兴趣。”

“该应用程序可让您在Chromebook上使用ArduinoCreate。然后,您可以在线编码并将草图保存在云中。然后,您可以将它们上传到连接到计算机的任何Arduino板上,并且无需在本地安装任何东西即可完成所有 *** 作。

ArduinoCreate应用程序专为教室而设计,可在ChromeOS上运行。它使您可以在共享环境中教与玩Arduino电子产品和编程。因为它是基于云的环境,所以您还可以确保它始终是最新的。所有贡献的库都会自动包含在内,并且开箱即用地支持任何新的Arduino板。”

一 Proteus仿真平台简介

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。现已受到电子类特别是单片机爱好者、从事单片机教学的教师、致力于单片机开发应用等的科技工作者的青睐。以前的如EWB等软件只能仿真数字电路和模拟电路,不能仿真CPU和程序。

当前网上Proteus有78 SP2,710 SP0,80等几个版本,这几个JM的版本都比较稳定。这些版本的元件模型格式是兼容的,DSN仿真原理文件是一样的。80版本只是把DSN原理图、软件编辑环境和编译器集成为一个工程文件,成为一个象“傻瓜相机”一样的东西,但对初学Proteus者比较方便,因为内部已经集成了程序编辑器和可下载不同的编译器。

7xx版本,DSN仿真原理、编辑器和编译器三者是独立的。而80版本是集成的。80版本在多CPU仿真时,设置不太容易;集成后软件有点大,不如7xx版本简洁。

二 开发三步曲

编辑器

用户选择用自己的喜欢的编辑器(如Notepad++,Utraedit,Source Insight,vim,slickedit,notepad等),用此写源程序。

C/C++编译器

用户按CPU型号选择自己喜欢的C/C++编译器(如Winavr,CodeSourcery,Keil,IAR,WinARM,Watcom等等),一般的编译器都可以生成标准的hex,和elf格式的可执行目标文件。 Arduino IDE实际使用的是Winavr中的gcc。用此把第一步写的源程序编译成hex和elf文件。

硬件仿真图

Proteus中的Model下有元件仿真库,用户使用这些仿真元件,设计出自己的硬件仿真原理图,也叫dsn文件。在Proteus环境下,用自己设计的dsn文件,在CPU中加载第二步生成的hex或elf文件,就可以仿真运行了。elf文件内部包含调试信息,可以单步、设置断点调试程序。

三 Arduino UNO硬件仿真原理图

本仿真电路图(HW目录下Arduino UNOdsn文件)可以仿真Arduino Diecimila,或Arduino UNO板。前者采用FT232芯片做为串行通信模块,后都采用ATMEGA16U2微处理器代替了FT232,它们都是在USB上实现一个异步串行通信的功能。我们在仿真中,采用了Proteus中的串行口物理接口模型COMPIM,COMPIM完全可以代替串行通信的功能,它实现了与实际PC机物理串行接口RS232的连接,使仿真的虚拟世界与真实的世界连接。

图1-Arduino UNO硬件仿真原理图

图中左下角增加了两个串行通信虚拟终端VT1和VT2,用于调试串行通信接收数据或发送数据使用。其它为Arduino Diecimila或UNO的仿真电路,详细标注了引脚名称,与实现电路板一样。用Proteus仿真工具可以双击Arduino UNOdsn打开Arduino仿真电路图。

四 Arduino开发软件下载及设置

1下载并安装Arduino集成开发环境(Arduino IDE)

到官网上下载并安装Arduino IDE,当前最新稳定版本为106版本。

>

2选择Arduino板类型及串行口

如图2,仿真时,选择前两个板都可以,在与实际Arduino板连接时,选择相对应的板,并选择相对应的串行口。

因本文使用Arduino仿真开发方法,在仿真电路图中,只要选择目标执行文件hex或elf文件就相当于加载程序,所以不用串行口加载程序。

图2-选择板子型号

图3-选择串行口

3设置Arduino IDE个人偏好(重要)

选择File->Preferences

图4-选择preferences

找到设置偏好文件preferencestxt

图5-选择preferencestxt

用编辑器打开偏好设置文件preferencestxt

1在arduino工具的File->preferences中找到preferencestxt文件,用记事本打开。

2在preferencestxt文件的最后加一行,编辑加入 buildpath=d:\MyHexDir,目录名自己定。为了观察方便,(本人设置是buildpath=d:###ArduinoDbgDir )。

3先关闭Arduino IDE;

4之后保存preferencestxt;

以上顺序不要变。这样就可以在Arduino编译时,看到d:\MyHexDir目标下的目标文件,而不会自动删除。

4 编译

(1)双击SW\Blink目录下的源文件Blinkino,自动打开Arduino IDE。

(2)点击Sketch->Verify/Compile编译生成目标文件,目标文件在d:\MyHexDir下(本人的在d:###ArduinoDbgDir目录下 )。

(3)点击CPbat,会把hex和elf文件复制更新到当前ino所在目录下。可以自己编辑CPbat文件,改变目录。

(4)在Proteus中设置好一次hex或elf文件的位置就可以,以后更新hex或elf文件时,自动认为已经加载最新的。

五 第一个Hello World程序仿真运行

Hello World程序就是在计算机屏幕上显示“Hello,World!”的一个程序,在嵌入式系统开发中,LED的闪烁程序就是Hello World程序,Hello World程序很简约,一般它是程序员在新的开发环境中第一个要运行的程序,但是简约并不简单。

虽然Hello World程序很简约,但是,为了这个简约的程序能够运行,需要进行开发工具链的选择、配置开发工具链,这需要大量繁琐的工作要做。Hello World程序能否运行,可以验证你的编译、开发环境、运行环境是否正确。

第一个程序Blinkino如下:

///0 引脚定义

#define LED_PIN   13        //定义LED引脚为13号数据引脚(DIG13)

///1 初始化

void setup() {

 pinMode(LED_PIN,OUTPUT); // 初始化DIG13为输出

}

///2 循环

void loop() {

     digitalWrite(LED_PIN,HIGH); //DIG13输出高电平

     delay(1000);                 //延时1秒

     digitalWrite(LED_PIN,LOW);  //DIG13输出低电平

     delay(1000);                 //延时1秒

}

(1)用Arduino IDE打开Blinkino,编译之;

(2)在d:\MyHexDir目录下会生成hex和elf文件等;

(3)点击ino所在目录下的CPbat, 本目录多了两个文件hex和elf;

(4)用Proteus打开HW\Arduino UNOdsn,双击Atmga 328P微处理器,在Program file项中选择上边SW\Blink\Blinkhex文件,或Blinkelf文件,若加载Blinkelf文件,则可以单步或设置断点调试;

(5)在Proteus中点击左下角运行仿真,如果图1中的LED小灯闪烁,则你的仿真运行环境设置正确。

Arduino平台的优势之一在于其可以通过简单程序来实现强大的功能,相关硬件种类较多且高度集成化,通常需要使用者有一定的电子信息或自动控制领域的知识才能完全理解外接硬件的工作原理,不利于初学者快速入门掌握。因此,从编程知识和软件学习入手,学习常用函数和程序思维后再通过实际项目对硬件使用进行相关了解是一个更快速高效的学习流程。

学习一门编程语言和学习人类语言一样有很多种途径。Arduino编程语言较容易理解,它基于C/C++且有丰富的内置函数可以直接拿来使用实现一些功能,另外,其外接的智能硬件或传感器也往往有详细的产品说明和封装好的类库,在不需要使用者清楚理解原理的情况下就可以完成原型搭建和实现相关功能。很多看似酷炫复杂的效果其实只是由短短几行代码来实现的。

对于有一定编程基础的同学来说,直接阅读编写好的程序并尝试理解和模仿进行代码的编写是一种较快的学习方式:在产品官网可以免费下载专用集成开发环境 Arduino IDE,该软件可以帮助我们编写以及校验代码,同时也提供了丰富的自带库函数和示例程序帮助我们迅速了解开发板。作为一个免费的开源平台,在各个学习社区也可以找到免费版本中文编程参考手册,使用时按需求查找即可。

编程参考手册对于编程语言的学习至关重要,在学习中遇到的绝大多数问题都可以在参考手册中找到解决方法。比起盲目在网上提问和搜索,静下心来认真查找手册不仅能够高效的解决问题,也能举一反三,对语言有更全面的理解。

对于没有任何编程基础的同学来说,购买开发学习套装或寻找基础教程慢慢搭建项目是一种更踏实的做法,各大视频网站上可以搜索到很多优质免费的教程供大家学习参考。各类Arduino学习论坛也是很好的学习资源,这些也正是开源平台的魅力所在:无偿的分享和平等的交流。

如果对代码理解仍有些吃力,可以考虑使用图形化编程软件进行程序编写,它们的优势在于把代码中抽象的函数与结构改写成模块与卡片,根据想要完成的功能更直观的完成程序搭建。近年来编程教育越来越普及化,很多国内教育公司也都研发了各种国产图形化编程软件(如mixly),这些软件使用中文界面,交互逻辑良好且绝大多数都支持编写Arduino程序代码,可以根据自己的需求进行选用。在代码编写较熟练后再使用官方IDE进行开发,会有事半功倍的效果。

文章作者:Jing

拉夫堡大学工业设计硕士

北京理工大学博士

以上就是关于如何用arduino开发单片机全部的内容,包括:如何用arduino开发单片机、基于arduino电梯程序、arduino硬件的特点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10119031.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存