飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

Arduino单片机开发基础、编程语言及各开发板区别

Author:飘易 Source: 飘易
Categories: 物联网 PostTime:2019-8-27 16:50:03
正 文:

    提到Arduion板子,飘易首先要提的是Arduino UNO R3这款板子,Arduino / Genuino Uno是基于ATmega328P的单片机开发板。它有14个数字输入/输出引脚(其中6个可用作PWM输出),6个模拟输入脚,16 MHz晶振,USB连接,电源插孔,ICSP接头和复位按钮。 只需使用USB线将其连接到计算机,或者使用AC-to-DC适配器或电池为其供电即可开始使用。您可以修改您的UNO而不用担心做错任何事情,最糟糕的情况也只是您更换几元的芯片,重新开始。


    “Uno”是意大利语“一”的意思,并被选为Arduino软件(IDE)1.0的发布。Uno板和Arduino软件(IDE)的1.0版本是Arduino的最初版本,现在发展到更新的版本。Uno板是USB Arduino系列板中的第一个板,以及Arduino平台的参考模型。

优点:经典、适合入门。

缺点:性能中庸、上下相比各有不足,别的板子的优点就是这个板子的不足。


Arduion UNO R3 规格:

工作电压:5V

输入电压:接上USB时无须外部供电或外部7V~12V DC输入

输出电压:5V DC输出和3.3V DC输出 和外部电源输入

微处理器:ATmega328

Bootloader:Arduino Uno

时钟频率:16 MHz

输入电压(推荐)7-12V

输入电压(限制)6-20V

支持USB接口协议及供电(不需外接电源)

支持ISP下载功能。

数字I/O端口 14(4个PWM输出口)

数字I/O端口 14(4个PWM输出口)

模拟输入端口 6

直流电流 I/O端口 40mA

直流电流 3.3V端口 50mA

Flash 内存:32 KB (ATmega328) (0.5 KB用于引导程序)

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

尺寸:75x55x15mm


Arduino Uno接线原理图


Arduino还有很多其他型号的板子,借一下其他开发者总结的图,感谢总结:

    

   开发板选型使用总结

    学习入门:推荐UNO。UNO几乎是作为Arduino开发板的形象代言板出现的,以至于有时一提Arduino开发板默认的认为是UNO(笔者很不赞同),各属性在arduino板系列中十分中庸,有大量的资源(如库和项目)是和UNO配套的,适合于学习、入门,会得到很多的帮助。


    物联网开发:推荐Mega2560。吹了半天,为啥不说Yun、Due、ethernet这些适合做Server的开发板呐?因为esp8266实在太强势了,正如Zigbee的没落一样,物联网硬件逐渐沉淀下来,推荐Mega2560也仅仅因为他适合做客户端或者客户端分发。


    可穿戴:推荐Arduino101或Nano/Micro。这是两套解决方案,101性能强大,已集成了BLE和IMU,问题是开发习惯和体积。而Nano/Micro+6050+BT/WIFI正好是体积小,却性能有限,兼容有坑。


    USB设备:推荐Micro。凡是32u4主控的,如leonardo都是可以作为模拟USB设备,推荐Micro纯粹是因为体积小,成本最低。


    PS:  Arduino及其logo是Arduino意大利官方所有的商标,并不是可以随意使用的。国内大多数写有Arduino的字样的控制器,均是侵权行为,开源不等于没有版权。建议大家购买Arduino还是找正规厂商,希望大家能够支持Seeed、OpenJumper等正规销售者。 正版的UNO大约100多块钱,国内模仿的板子大约不足30元,这里面差的不仅仅是质量,还有版权灯。


    Arduino语言

    Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言。早期的Arduino核心库使用C语言编写,后来引进了面向对象的思想,目前最新的Arduino核心库采用C与C++混合编写而成。


    通常我们说的Arduino语言,是指Arduino核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。这些API是对更底层的单片机支持库进行二次封装所形成的。例如,使用AVR单片机的Arduino的核心库是对AVR-Libc(基于GCC的AVR支持库)的二次封装。


    传统开发方式中,你需要厘清每个寄存器的意义及之间的关系,然后通过配置多个寄存器来达到目的。而在Arduino中,使用了清楚明了的API替代繁杂的寄存器配置过程。


关键字:

if
if...else
for
switch case
while
do... while
break
continue
return
goto


语法符号:

;
{}
//


运算符:

=
+
-
*
/
%
==
!=
<
>
<=
>=
&&
||
!
++
--
+=
-=
*=
/=


数据类型:

boolean  布尔类型
char
byte  字节类型
int
unsigned int
long
unsigned long
float
double
string
array
void


数据类型转换:

char()
byte()
int()
long()
float()


常量:

HIGH | LOW     表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。
INPUT | OUTPUT   表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT  表示输出(AVR能提供5V电压 40mA电流)。
true | false    true 表示真(1),false表示假(0)。


       以上为基础c语言的关键字和符号,有c语言基础的都应该了解其含义,这里也不作过多的解释。


 

结构

void setup()   初始化变量,管脚模式,调用库函数等
void loop()  连续执行函数内的语句功能


数字 I/O

pinMode(pin, mode)    数字IO口输入输出模式定义函数,pin表示为0~13, mode表示为INPUT或OUTPUT。
digitalWrite(pin, value)    数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。
int digitalRead(pin)    数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。


模拟 I/O

int analogRead(pin)    模拟IO口读函数,pin表示为0~5(Arduino Diecimila为0~5,Arduino nano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。
analogWrite(pin, value) - PWM     数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机PWM调速或音乐播放。


扩展 I/O

shiftOut(dataPin, clockPin, bitOrder, value)    SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0~255),另外还需要一个IO口做74HC595的使能控制。
unsigned long pulseIn(pin, value)    脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。


时间函数

unsigned long millis()   返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。
delay(ms)    延时函数(单位ms)。
delayMicroseconds(us)    延时函数(单位us)。


数学函数

min(x, y)  求最小值
max(x, y)  求最大值
abs(x)   计算绝对值
constrain(x, a, b)  约束函数,下限a,上限b,x必须在ab之间才能返回。
map(value, fromLow, fromHigh, toLow, toHigh)    约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。
pow(base, exponent)  开方函数,base的exponent次方。
sq(x)     平方
sqrt(x)   开根号


三角函数

sin(rad)
cos(rad)
tan(rad)


随机数函数

randomSeed(seed)   随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 。
long random(max)   随机数函数,返回数据大于等于0,小于max。
long random(min, max)   随机数函数,返回数据大于等于min,小于max。


外部中断函数

attachInterrupt(interrupt, ISR, mode)  外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数;ISR 中断发生时的中断服务程序,这个函数必须没有参数没有返回值;mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。
detachInterrupt(interrupt)  中断开关,interrupt=1 开,interrupt=0 关。


中断使能函数

interrupts()  使能中断
noInterrupts()  禁止中断


串口收发函数

Serial.begin(speed)  串口定义波特率函数,speed表示波特率,如9600,19200等。
int Serial.available()  判断缓冲器状态。
int Serial.read()   读串口并返回收到参数。
Serial.flush()    清空缓冲器。
Serial.print(data)  串口输出数据。
Serial.println(data)   串口输出数据并带回车符。


官方库文件

EEPROM - EEPROM读写程序库

Ethernet - 以太网控制器程序库

LiquidCrystal - LCD控制程序库

Servo - 舵机控制程序库

SoftwareSerial - 任何数字IO口模拟串口程序库

Stepper - 步进电机控制程序库

Wire - TWI/I2C总线程序库

Matrix - LED矩阵控制程序库

Sprite - LED矩阵图象处理控制程序库


非官方库文件

DateTime - a library for keeping track of the current date and time in software.

Debounce - for reading noisy digital inputs (e.g. from buttons)

Firmata - for communicating with applications on the computer using a standard serial protocol.

GLCD - graphics routines for LCD based on the KS0108 or equivalent chipset.

LCD - control LCDs (using 8 data lines)

LCD 4 Bit - control LCDs (using 4 data lines)

LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.

LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.

Messenger - for processing text-based messages from the computer

Metro - help you time actions at regular intervals

MsTimer2 - uses the timer 2 interrupt to trigger an action every N milliseconds.

OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol.

PS2Keyboard - read characters from a PS2 keyboard.

Servo - provides software support for Servo motors on any pins.

Servotimer1 - provides hardware support for Servo motors on pins 9 and 10

Simple Message System - send messages between Arduino and the computer

SSerial2Mobile - send text messages or emails using a cell phone (via AT commands over software serial)

TextString - handle strings

TLC5940 - 16 channel 12 bit PWM controller.

X10 - Sending X10 signals over AC power lines


以上库文件都需要下载到编译环境(例如下目录:arduino\hardware\libraries)中才能使用。



一般我们编写程序用到的IDE是官方出品的Arduino IDE,目前最新的版本号是 :1.8.9 ,下载地址:

https://www.arduino.cc/en/main/software


【参考】:

1、 Arduion各开发板的比较

2、 Arduino开发板的针脚定义图


作者: 飘易
来源: 飘易
版权所有。转载时必须以链接形式注明作者和 原始出处及本声明。
Tag: Arduino 浏览(次) 我要评论(0条)
上一篇:没有了
下一篇: Arduion使用ULN2003APG驱动直流电机实现转速控制
0条评论 “Arduino单片机开发基础、编程语言及各开发板区别”
No Comment .
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
目 录
  • 博客首页
  • SEO技术(104)
  • Asp/Asp.Net(26)
  • 网络技术(91)
  • 电脑技术(71)
  • 数据库(27)
  • 病毒攻防(12)
  • 网络营销(64)
  • 网站设计(19)
  • 个人杂想(79)
  • PHP编程(56)
  • Delphi编程(3)
  • C#编程(25)
  • SEO工具(12)
  • Linux技术(27)
  • 移动开发(12)
  • JAVA开发(1)
  • Python(1)
  • 物联网(8)
飘易搜索
最新文章
  • 1、 Arduino单片机开发基础、编程语言及各开发板区别
  • 2、 Arduion使用ULN2003APG驱动直流电机实现转速控制
  • 3、 pure-ftpd创建只读账户(虚拟账户)
  • 4、 【跟我一起搭建物联网平台】6、EMQX之Kafka插件编译安装
  • 5、 【跟我一起搭建物联网平台】5、安装kafka之PHP扩展
  • 6、 【跟我一起搭建物联网平台】4、Kafka消息中间件
相关文章
  • 1、 Arduion使用ULN2003APG驱动直流电机实现转速控制
  • 2、 【跟我一起搭建物联网平台】6、EMQX之Kafka插件编译安装
  • 3、 【跟我一起搭建物联网平台】5、安装kafka之PHP扩展
  • 4、 【跟我一起搭建物联网平台】4、Kafka消息中间件
  • 5、 【跟我一起搭建物联网平台】3、使用储存库安装 EMQ X服务器(MQTT)
  • 6、 【跟我一起搭建物联网平台】2、源码编译安装EMQX V3.0服务器(MQTT)
随机文章
  • 1、 流氓电信的财大气粗
  • 2、 360和腾讯互相掐架:都不是好鸟
  • 3、 域名whois查询接口代码
  • 4、 飘易博客也遭点名游戏了
  • 5、 PHP中表单checkbox参数传递问题
  • 6、 羊羔体代表作《徐帆》《刘亦菲》
© 2007-2019 飘易博客 Www.Piaoyi.Org 原创文章版权由 飘易所有

玻璃钢生产厂家梁平县玻璃钢雕塑江苏大型主题商场美陈东莞哪有做商场花艺美陈上海仿铜玻璃钢雕塑定制云南玻璃钢兔子雕塑户外玻璃钢雕塑销售电话萍乡步行街玻璃钢雕塑优势蚂蚁玻璃钢卡通雕塑定制厂家泸州成都商场美陈新闻浙江装饰商场美陈怎么样山东商场美陈销售现代玻璃钢人物雕塑销售厂家清远玻璃钢广场雕塑上海商场主题创意商业美陈多少钱玻璃钢动物雕塑保养美陈新年商场布置图案百货商场元旦圣诞春节美陈创意仿古玻璃钢园林雕塑江西玻璃钢雕塑制作自贡受欢迎的成都商场美陈清远欧式玻璃钢人物雕塑商场节庆美陈雕塑河南多彩玻璃钢雕塑方法济南创意玻璃钢雕塑价位南昌玻璃钢雕塑制作玻璃钢九龙壁浮雕雕塑宝山区镜面玻璃钢雕塑优质商家福建商业商场美陈价钱绍兴玻璃钢花盆设计厂家西安广场玻璃钢雕塑价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化