相关商品
基于Arduino 互动电子套件 23节经典实验 UNO R3新版
本店售价:¥380.00
32路舵机控制器套装 伺服电机控制器 Arduino舵机扩展板 正品保证
本店售价:¥230.00
爱上Arduino 互动入门套件 中文教材配套 教学视频 UNO R3
本店售价:¥210.00
AS-6DOF 铝合金机械臂 6自由度 机械手 Arduino实验教学平台
本店售价:¥1049.00
基于Arduino 互动电子积木套件 arduino UNO R3开发实战 爱上制作
本店售价:¥480.00
Arduino Prototype Shield 原型扩展板 万用板(含Mini面包板)
本店售价:¥35.00
Arduino MEGA ProtoShield V3 原型扩展板 万用板(含面包板)
本店售价:¥49.00
Arduino Leonardo 莱昂纳多控制器 原装进口
本店售价:¥178.00
RB Bluetooth Transceiver 蓝牙模块 蓝牙串口 Arduino 单片机
本店售价:¥138.00
RS232-TTL转换器 STC单片机下载器(视频演示)Arduino力荐
本店售价:¥20.00
6V/300R 直流减速电机 Arduino小车 4WD机器人用 电子竞赛
本店售价:¥50.00
AS-6DOF 铝合金机械臂 6自由度 机械手 Arduino实验教学平台 含32路舵机控制部分
本店售价:¥1435.00
Arduino 4WD 移动机器人平台 铝合金小车(黑色) 电子大赛
本店售价:¥209.00
Arduino 水蒸气传感器 雨水探测器 液位开关 湿度传感器 电子积木
本店售价:¥10.00
Arduino 4WD 移动机器人平台 铝合金小车电子大赛(12V 100R 金属电机)
本店售价:¥298.00
爱上Processing互动入门套件 UNO R3入门套件 学习套件 Java编程套件
本店售价:¥480.00
Arduino RP5履带机器人 寻线避障DIY套件 电子竞赛 机器人教学
本店售价:¥719.00
Arduino 继电器扩展板 Relay Shieldv2.0 支持xbee控制 4路继电器
本店售价:¥86.00
1602液晶扩展板 v2.0 Arduino LCD 1602 Keypad Shield
本店售价:¥95.00
Arduino 土壤湿度传感器 Moisture Sensor 土壤水分 自动浇花
本店售价:¥25.00
Arduino 4WD移动机器人平台 铝合金小车(金色) 电子大赛
本店售价:¥209.00
奥松机器人 MQ2气体传感器 Arduino烟雾甲烷气体检测 正品保证
本店售价:¥43.00
Mini红外避障传感器 光电传感器 Arduino 程控小车 电子竞赛
本店售价:¥49.00
Arduino 双H桥直流电机驱动板 步进电机驱动板 机器人配件
本店售价:¥69.00
USB-TTL转换器 STC单片机下载器 USB转TTL模块 Arduino 电子积木
本店售价:¥35.00
Arduino 无线收发模块 NRF24L01 (升级版) 数传模块 电子大赛
本店售价:¥18.00
Arduino 无线数传 APC220套件 1200米无线传输 射频模块
本店售价:¥270.00
32路舵机控制器 动作存储卡 黑卡容量512K Arduino 机械手 机器人
本店售价:¥209.00
32路舵机控制器 动作存储卡 蓝卡容量512K Arduino 仿生机器人
本店售价:¥209.00
32路舵机控制器动作存储卡 红卡容量512K Arduino力荐 机器人
本店售价:¥209.00
Arduino 火焰传感器 模拟传感器 电子积木 灭火机器人
本店售价:¥22.00
Arduino 电压检测模块 Voltage Sensor 电压传感器 电子积木
本店售价:¥8.00
Arduino LED发光模块 食人鱼灯 白光高亮 数字模块 电子积木
本店售价:¥10.00
Arduino LED发光模块 黄光高亮 食人鱼灯 数字模块 电子积木
本店售价:¥10.00
Arduino传感器 HMC5883L 数字电子罗盘 智能小车 机器人配件
本店售价:¥329.00
Arduino LED发光模块 食人鱼灯 蓝色高亮 数字模块 电子积木
本店售价:¥12.00
Arduino LED发光模块 食人鱼灯 绿色高亮 数字模块 电子积木
本店售价:¥10.00
Arduino Flex单向弯曲传感器 FLX-03 A型 机器人传感器 Sparkfun原装进口
本店售价:¥155.00
Arduino ADXL335模块三轴加速度模块 角度传感器 倾斜角度模块
本店售价:¥55.00
奥松机器人 4定向倾角传感器 高精度角度检测 原装进口 新款上市
本店售价:¥85.00
Arduino LM35线性温度传感器 模拟线性温度传感器 电子积木
本店售价:¥15.00
Arduino DHT11 温度传感器 湿度传感器 数字温湿度模块 电子积木
本店售价:¥25.00
Arduino 颜色传感器 TCS3200D TCS230D升级版 RGB模块 电子积木
本店售价:¥43.00
Arduino 魔法书 实现梦想的工具和技术
本店售价:¥59.00
A-Star 32u4 Mini LV 可编程模块 ATmega32U4开发板 pololu原装
本店售价:¥129.00
A-Star 32U4 Mini ULV 可编程模块 ATmega32U4开发板 Pololu原装
本店售价:¥129.00
Arduino 双路大功率直流电机驱动扩展板 VNH5019 美国Pololu原装
本店售价:¥328.00
Arduino 机器人权威指南 爱上Arduino制作指南
本店售价:¥79.20
Arduino 模拟传感器 Slider Sensor 直滑电位计 位置 滑动传感器
本店售价:¥19.00
Arduino Intel Galileo Gen 2 伽利略开发板 官方授权
本店售价:¥498.00
多功能PCB直尺 测量工具 尺子 沉金工艺 Arduino必备 技术工程师必备
本店售价:¥25.00
动手玩转 Arduino 爱上 Arduino 互动电子入门套件 Arduino必备教材
本店售价:¥59.00
4WD机器人调试助手v2.0软件 智能小车 Arduino 履带 WiFi蓝牙小车
本店售价:¥1.00
SparkFun原装进口 Block for Intel® Edison 扩展板 Arduino扩展
本店售价:¥165.00
机智云开发板 Arduino UNO 传感器扩展板 GoKit智能硬件
本店售价:¥78.00
【创客学堂】零成本学Arduino单片机
编辑:Sophie2013-11-25 浏览次数:864
图1 Arduino单片机的Proteus仿真
一、前言
Arduino是由Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis 和Nicholas Zambetti共同开发的。据说Auduino开发团队的领袖Massimo Banzi 之前是意大利Ivrea 一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。2005年冬天,Massimo Banzi 跟David Cuartielles 讨论了这个问题。David Cuartielles 是一个西班牙籍芯片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi 的学生David Mellis 为电路板设计编程语言。两天以后,David Mellis 就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。几乎任何人,即使不懂电脑编程,也能用Arduino 做出很酷的东西,比如对传感器作出回应,闪烁灯光,还能控制马达。
图2 Arduino开发团队(两个意大利人、两个美国人和一个西班牙人)
Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE)。它适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。
Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且控制各式各样的电灯、电机和其它物理设备,Arduino也可以开发与PC相连的外围设备,能在运行时与PC上的软件(比如Flash, Processing, MaxMSP)进行通信。
Arduino硬件电路板可以根据共享图纸,自行焊接组装,也可以购买已经组装好的,软件则可以从Arduino网站免费下载使用。
Arduino 1.0最新版下载地址:http://arduino.cc/en/Main/Software。
图3 Arduino软硬件原型开发平台
Arduino为啥这么红,我想Arduino单片机较其他微控制器有以下5点优势:1、您学习Arduino单片机可以完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用即可;所以不需要硬件知识,只要会C语言,就可立即为Arduino单片机编程。2、Arduino软件语言为精简指令系统,所需掌握的指令不多,但指令的功能却很强大,往往一条指令就可以完成一整套操作,而且指令的可读性也好,属于低门槛的语言,轻松上手,快速应用。3、针对周边I/O设备的Arduino编程,由于很多I/O设备都随之带有库文件或者样例程序,所以在自己的程序中,可以引用库文件中的函数,或复制样例程序,然后修改下其中的参数,即可迅速编写出大段大段的复杂程序,从而放大了您的编程能力。4、Arduino开源硬件在创客界十分流行。所谓开源产品定义,不仅是其软硬件底层信息完全公开,而且还在于产品的应用资讯可以从Arduino相关网站、博客里的大量共享资源里获得,所以在共享资讯的辅助下,能激发出您创意作品的灵感,并加快您创作作品的效率。5、国内在开源硬件的制造能力非常强,涌现出被意大利Arduino公司认可的代理商,如DFRobot、Seeed Studio公司,这些公司提供了丰富的质优价廉Arduino及周边产品,所以在国内学习和应用Arduino具有得天独厚的硬件资源优势。
但是如果是初学者,想先不花钱买硬件设备,那么是否也能体验下Arduino系统呢?通过仿真的方法是可以的,目前最流行的单片机仿真软件当属Proteus了,这篇文章就介绍用Proteus软件来仿真Arduino单片机的应用。
Proteus软件是初学者入门的首选软件,它是英国Labcenter公司的一款商业版电路设计与仿真软件。它包括ISIS、ARES等软件模块。ARES模块主要用来完成PCB的设计,ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,甚至ARM处理器,以及单片机外围I/O电路,比如键盘、LED、LCD等等。
二、Arduino单片机的Proteus仿真方法
Arduino单片机的Proteus仿真基本过程是:软件在Arduino IDE编程软件里编写,硬件在Proteus ISIS软件模块里通过绘制电气原理图建立。程序编写完后,选择Arduino IDE编程界面菜单栏的Tools菜单项,再选择Board→Arduino Duemilanove w/ATmega328,也可以选择Board→Arduino Uno,然后点击编译按钮,生成Hex文件(二进制机器码文件)。有了Hex文件,接着转到Proteus电气原理图,双击原理图中的型号为ATMEGA328P 单片机芯片,出现对话框,通过文件目录浏览的方法确定Hex文件存储位置,并进行一些单片机芯片工作状态参数的设置,最后点击Proteus ISIS软件界面左下方的播放按钮,就可以看到Arduino单片机在Proteus仿真环境中的运行效果了。
图4 Arduino程序的编译
图4中显示的程序是一个最简单的Arduino单片机项目实例,任务是:连在Arduino单片机数字端口13上的LED发光二级管,让它不断闪烁。要想成功仿真这个项目,有两点要特别注意,一是Arduino程序的Hex文件生成和位置确定,二是Proteus原理图中的Atmel328P芯片中Hex文件加载和工作参数设置。
图5 Arduino项目实例LED闪烁的硬件原理图
Arduino编译之后,Hex文件会自动删除,而在Proteus仿真的Arduino单片机中,需要使用Arduino软件产生的Hex文件,可是,Arduino 1.0默认使用完Hex文件会自动删除的,所以取不到hex文件,为了取出hex文件,加载到Porteus中的单片机ATMEGA328P,需要修改如下:
首先要在D盘建立一个文件夹,用来专门放置Hex文件,文件名可以随便取名,我命名为Arduino_Hex,然后点击Arduino软件界面菜单栏的File->preferences,打开对话框,如图6,把Show verbose output during的两个参数项打勾,双击preferences.txt文件,找到文件所在位置,再双击,用记事本打开文件。这时要点击Arduino界面preferences对话框下方的OK按钮,接着关掉Arduino IDE编程界面。最后,在刚才打开的preferences文档的最后一行编辑加入build.path=d:\Arduino_Hex,保存文档。这样以后您再编译Arduino程序,就可以在d:\Arduino_Hex中,看到编译的Hex目标文件了。
图6 Arduino的Preference参数设置
谈完了Arduino程序的Hex文件生成和位置确定,再谈谈另一个值得注意的问题,Proteus原理图中Atmel328P芯片的Hex文件加载和工作参数设置。
双击图5中的Proteus ISIS电气原理图中ATMEGA328P单片机,出现编辑对话框,点击“Program File”参数项的“文件夹”按钮,来确定Hex文件的位置,到d:\Arduino_Hex文件夹中可以找到当前程序的Hex文件。上个程序的Hex文件会被新编译的Hex文件“冲掉”,所以您每次仿真项目时,都要编译一次Arduino程序。
图7 Proteus中的ATMEGA328P单片机的Hex文件加载和参数设置
确定了Hex文件,还有三个参数项要修订,一是“CLKDIV8(Divide clock by 8)”参数项修改为“Unprogrammed”;二是“CKSEL Fuses”参数项修改为“(1111)Ext. Crystal 8.0-MHz”;三是Advanced Properties的Clock Frequency参数项设为16Mhz。最后点击编辑对话框的“确定”按钮,然后就可以仿真了。
int K1=5; //把K1(正转)按钮连在数字端口5
int K2=6; //把K2(反转)按钮连在数字端口6
int K3=7; //把K3(停止)按钮连在数字端口7
int potpin = 3; // 把电位计连在模拟端口3
int A=2; //数字端口2、3控制电机启停和转向
int B=3;
int PWMpin = 9; // 数字端口9输出PWM信号,控制电机转速
//初始化
void setup()
{
pinMode(K1,INPUT);//把数字端口5、6、7设置输入模式
pinMode(K2,INPUT);
pinMode(K2,INPUT);
pinMode(A,OUTPUT);//把数字端口2、3设置输入模式
pinMode(B,OUTPUT);
}
//主程序
void loop()
{
//如果按下K1(正转)按钮
if(digitalRead(K1)==LOW)
{
//电机正转
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
}
//如果按下K2(反转)按钮
if(digitalRead(K2)==LOW)
{
//电机反转
digitalWrite(A,LOW);
digitalWrite(B,HIGH);
}
//如果按下K3(停止)按钮
if(digitalRead(K3)==LOW)
{
//电机停止
digitalWrite(A,LOW);
digitalWrite(B,LOW);
}
int sensorValue = analogRead(potpin); //读取电位计采样值
sensorValue = sensorValue/4; // 采样值 0-1024 转换为 0-255
analogWrite(PWMpin, sensorValue);//把处理后的转换值以PWM信号形式输出
delay(20);//延时
}
Arduino程序及Proteus仿真图请下载:Arduino仿真之直流电机控制.zip
把程序编写完,编译Hex文件,再把Hex文件加载到Proteus仿真图中Arduino单片机芯片中,最后点击仿真图左下方的播放按钮,就可以看到基于Arduino直流电机控制项目的运行效果了。
用户评价
暂时还没有任何用户评论