arduino学习笔记

合集下载

arduino学习资料

arduino学习资料

arduino学习笔记arduino学习笔记1 - 什么是arduino?要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR指令集的单片机。

1、什么是单片机?它与个人计算机有什么不同?一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等).在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。

而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等.2、单片机有什么用?实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。

如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。

单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合.下图就是一个Atmega328P—PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。

什么是Arduino?Arduino是一个能够用来感应和控制现实物理世界的一套工具。

它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成.Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。

Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。

Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE 可以免费下载得到。

arduino学习笔记9 - 光控LED实验

arduino学习笔记9 - 光控LED实验

光敏电阻光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。

这些制作材料具有在特定波长的光照下,其阻值迅速减小的特性。

这是由于光照产生的载流子都参与导电,在外加电场的作用下漂移运动,从而使光敏电阻的阻值迅速下降。

光敏电阻的工作原理基于内光电效应。

在半导体光敏材料的两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。

在有光照射时,射入的光强,电阻减小,射入的光弱,电阻增大。

下图就是一个光敏电阻本次实验设计的效果是,当光照正常的时候led灯是灭的,当周围变暗时led灯变亮。

因为光敏电阻受不同光照影响变化很大,所以本次实验的参数是在60W 三基色节能灯照射下实验(无日光照射),同样亮度的日光下光敏电阻的阻值会比日光灯下低不少,估计和不同光的波段有关系。

不同环境下实验使用的参数不同,大家根据原理进行调整。

实验前先测量一下当前环境下光敏电阻的亮阻值与暗阻值下图是测出来的LED亮阻值,为9.1KΩ下图是测出来的LED暗阻值,为32.4KΩ硬件连接图如下根据测出来的亮阻9.1KΩ,暗阻32.4欧姆。

选定分压电阻为10KΩ。

因为当有遮挡物的后,阻值会变大。

假设亮阻为10KΩ(对于光敏电阻来说,与测量出来的9.1KΩ差别不大,计算起来更加方便了),分压阻值为10K欧姆。

模拟2号口所测量的触发电压为10KΩ分压电阻的,在5V电源供电下,亮与暗转换的触发电压为5×10÷(10+10)=2.5V。

当光线越暗,光敏电阻的阻值也就越大,分压两端电压也就越小。

所以触发条件就为≤2.5V。

(不同光照条件下触发电压不同,请根据实验环境进行调整。

)程序代码如下int photocellPin = 2; //定义变量photocellsh=2,为电压读取端口。

int ledPin = 12; //定义变量ledPin=12,为led电平输出端口int val = 0; //定义val变量的起始值void setup() {pinMode(ledPin, OUTPUT); //使ledPin为输出模式}void loop() {val = analogRead(photocellPin); //从传感器读取值if(val<=512){ //512=2.5V,想让传感器敏感一些的时候,把数值调高,想让传感器迟钝的时候把数值调低。

arduino学习笔记6 - 按键实验

arduino学习笔记6 - 按键实验

按键是一种常用的控制电器元件,常用来接通或断开电路,从而达到控制电机或者其他设备运行的开关。

按键的外观多种多样,本次实验使用的是这种微型按键,6mm的,如下图。

此种按键有4个脚,从背面看是这样子的。

在按键没有按下去的时候1,2号脚相连,3,4号脚相连。

按键按下去的时候,1,2,3,4号脚就全部接通。

本次实验使用按键来控制led的亮或者灭。

一般情况是直接把按键开关串联在led的电路中来开关,这种应用情况比较单一。

这次实验通过间接的方法来控制,按键接通后判断按键电路中的输出电压,如果电压大于4.88V,就使给LED电路输出高电平,反之就输出低电平。

使用逻辑判断的方法来控制LED亮或者灭,此种控制方法应用范围较广。

本次连接方法如下图。

按键开关两段一端连接5V接口,一端连接模拟5号口。

LED长针脚串联220Ω电阻连接数字7号口,短针脚连接GND。

如果手不按动开关,灯就会闪动,就在模拟5号口与按键之间串联一个1K的电阻。

把下面的代码上传到arduino控制板上,看看效果。

1.int key=7;//设置LED的数字IO脚2.void setup()3.{4. pinMode(key,OUTPUT);//设置数字IO引脚为输出模式5.}6.void loop()7.{8. int i;//定义变量9. while(1)10. {11. i=analogRead(5);//读取模拟5口电压值12. if(i>1000)//如果电压值大于1000(即4.88V)13. digitalWrite(key,HIGH);//设置第七引脚为高电平,点亮led灯14. else15. digitalWrite(key,LOW);//设置第七引脚为低电平,熄灭led灯16. }17.}复制代码本次实验的效果如下本次实验使用到analogRead()这个新命令。

analogRead()作用是读取模拟口的数值。

默认是把0-5V的输入电压分成1024份,每一份大约为0.0049V,其数值在0-1023之间。

Arduino学习笔记⑤ 模拟IO实验

Arduino学习笔记⑤ 模拟IO实验
以及analogWrite函数。
实验代码:
/**
* @Desc 可调呼吸灯
* @author 单片机菜鸟
* @Date 2016/12/8
* 注意:LED的一端接到5V,另外一端接到输出引脚,低电平亮
*
按键是高电平有效
*/
#define LED 9
void setup() { // put your setup code here, to run once:
//从亮到暗 每次亮度-5直到最暗 for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
//输出PWM analogWrite(LED,fadeValue); //延时一下 delay(DELAY_TIME); } }
2.2 可调呼吸灯
实验介绍: 在固定呼吸灯基础上,通过读入的模拟电压大小(模拟输入我们采用一个电位器来分压)来调整频率,同时利用analogRead
}
void loop() { //从暗到亮,每次亮度值加5,直到最亮 for(int fadeValue = 0;fadeValue<=255;fadeValue+=5){ //输出PWM analogWrite(LED,fadeValue); //延时一下 int delaytime = analogRead(A0)/5;//读取电位器输出电压 用于延时 delay(delaytime); }
//从亮到暗 每次亮度-5直到最暗 for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
//输出PWM analogWrite(LED,fadeValue); //延时一下 int delaytime = analogRead(A0)/5; delay(delaytime); } }

基于Protues的Arduino学习笔记01-Arduino UNO实验板设计

基于Protues的Arduino学习笔记01-Arduino UNO实验板设计

基于Protues的Arduino学习笔记01-Arduino UNO实验板设计(2013-05-13 20:13:33)本文将带你使用protues 7.10搭建一个Arduino UNO的实验板,方便以后在protues仿真软件上进行Arduino的实验。

参考本文,你还可以自己动手构建出Arduino MEGA 2560等一系列Arduino开发平台。

Arduino UNO是Arduino USB接口系列的最新版本,是Arduino平台的参考标准模板。

Arduino UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,Flash Memory 32KB (其中0.5KB 用于bootloader【注】)、SRAM 2KB、EEPROM 1KB,工作时钟 16 MHz【文献1】。

【注】:在仿真情况下,不需要bootloader去引导程序下载,只需要将Arduino IDE编译生成的HEX文件导入ATmega328P单片机即可。

以上对Arduino UNO的介绍摘自网上,通过这些介绍,我们可以知道Arduino UNO的资源分配情况。

图1为Arduino UNO的引脚图,从图中我们可以清楚地看出ATmega328P的物理引脚与Arduino所定义的功能之间的关系,从而可以将功能引脚标注出来。

图1 Arduino UNO与ATmega328P引脚关系图【文献2】Protues软件是英国Labcenter Electronics公司出版的EDA工具软件,不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具【文献3】。

下面我们打开protues 7.10软件,进入元器件的选择,在元器件一栏中输入“ATmega328P”,并选取ATmega328P单片机,如图2所示。

然后,在元器件一栏中输入“RES”,选取电阻,如图3所示。

arduino学习笔记18---SD卡读写实验教程文件

arduino学习笔记18---SD卡读写实验教程文件

a r d u i n o学习笔记18---S D卡读写实验本次实验使用arduino驱动SD卡,在SD卡中进行文件读写。

需要说明的是arduino的SD库文件,目前对2G以上的卡支持不是很好,所以推荐大家使用2G包含2G以下的,文件格式使用FAT格式。

这次我是用的是kingmax2G的MicroSD卡。

先看一下硬件连接图把下面代码下载进arduino控制板/*此例子展示如果记录三个模拟引脚数值到SD卡,使用SD库。

电路部分* 模拟引脚使用模拟口0,1,2大家可以根据情况接入模拟传感器,如果没有,也可以完成此实验,只不过数值是不停跳动的干扰源。

* SD卡与arduino控制板使用SPI总线连接** MOSI - pin 11** MISO - pin 12** CLK - pin 13** CS - pin 4*/#include <SD.h>// CS引脚为pin4,这里也沿用官方默认设置const int chipSelect = 4; //设定CS接口void setup(){Serial.begin(9600); //设置串口通信波特率为9600Serial.print("Initializing SD card..."); //串口输出数据Initializing SD card...pinMode(10, OUTPUT);if (!SD.begin(chipSelect)) { //如果从CS口与SD卡通信失败,串口输出信息Card failed, or not presentSerial.println("Card failed, or not present");return;}Serial.println("card initialized."); //与SD卡通信成功,串口输出信息card initialized.}void loop(){// 定义数组String dataString = "";// 读取三个传感器值,写入数组for (int analogPin = 0; analogPin < 3; analogPin++) {int sensor = analogRead(analogPin);dataString += String(sensor);if (analogPin < 2) {dataString += ",";}}// 打开文件,注意在同一时间只能有一个文件被打开// 如果你要打开另一个文件,就需要先关闭前一个File dataFile = SD.open("datalog.txt", FILE_WRITE);// 打开datalog.txt文件,读写状态,位置在文件末尾。

arduino学习笔记

arduino学习笔记12 - ADXL345加速度传感器实验2011-8-19 09:55|发布者: 弘毅|查看: 134|评论: 12|原作者: 弘毅摘要: 本次实验使用arduino用过IIC接口驱动ADXL345加速度传感器,使XYZ 三坐标加速度值显示在1602液晶上,学习ADXL345加速度传感器与IIC接口的基本使用方法。

前两天我们做了温度传感器实验,大家一定还有印象。

今天我们来研究另外一种传感器加速度传感器。

什么是加速度传感器加速度传感器,作用是测量在加速过程中产生的力。

最基本的如咱们平常所熟悉的是重力加速度,大小是1g。

加速度传感器一般用于什么地方通过测量由重力引起的加速度,你可以计算出设备相对于水平面的倾斜角度。

通过分析动态加速度,你可以分析出设备的移动方式。

自平衡车中就是使用加速度传感器与陀螺仪进行卡尔曼滤波进行姿态矫正。

本次试验使用的ADXL345数字传感器,通过I2C或者SPI接口直接输出数字信号。

在1g的加速度下,输出数值为256.下面是硬件连接图下面是代码1.#include <Wire.h> //调用arduino自带的I2C库2.#include <LiquidCrystal.h> //调用arduino自带的LiquidCrystal库3.4.#define Register_ID 05.#define Register_2D 0x2D6.#define Register_X0 0x327.#define Register_X1 0x338.#define Register_Y0 0x349.#define Register_Y1 0x3510.#define Register_Z0 0x3611.#define Register_Z1 0x3712.13.LiquidCrystal lcd(12, 11, 10, 9, 8, 7);//设置接口14.15.int ADXAddress = 0xA7>>1; //转换为7位地址16.int reading = 0;17.int val = 0;18.int X0,X1,X_out;19.int Y0,Y1,Y_out;20.int Z1,Z0,Z_out;21.double Xg,Yg,Zg;22.23.void setup()24.{25.lcd.begin(16, 2); //初始化LCD26.delay(100);27.Wire.begin(); //初始化I2C28.delay(100);29.Wire.beginTransmission(ADXAddress);30.Wire.send(Register_2D);31.Wire.send(8);32.Wire.endTransmission();33.}34.35.void loop()36.{37.Wire.beginTransmission(ADXAddress);38.Wire.send(Register_X0);39.Wire.send(Register_X1);40.Wire.endTransmission();41.Wire.requestFrom(ADXAddress,2);42.if(Wire.available()<=2);43.{44.X0 = Wire.receive();45.X1 = Wire.receive();46.X1 = X1<<8;47.X_out = X0+X1;48.}49.50.Wire.beginTransmission(ADXAddress);51.Wire.send(Register_Y0);52.Wire.send(Register_Y1);53.Wire.endTransmission();54.Wire.requestFrom(ADXAddress,2);55.if(Wire.available()<=2);56.{57.Y0 = Wire.receive();58.Y1 = Wire.receive();59.Y1 = Y1<<8;60.Y_out = Y0+Y1;61.}62.63.Wire.beginTransmission(ADXAddress);64.Wire.send(Register_Z0);65.Wire.send(Register_Z1);66.Wire.endTransmission();67.Wire.requestFrom(ADXAddress,2);68.if(Wire.available()<=2);69.{70.Z0 = Wire.receive();71.Z1 = Wire.receive();72.Z1 = Z1<<8;73.Z_out = Z0+Z1;74.}75.76.Xg = X_out/256.00;//把输出结果转换为重力加速度g,精确到小数点后2位。

【Arduino学习笔记05】Arduino数字输入、输出和脉冲宽带调制--小项目:彩色小台灯

【Arduino学习笔记05】Arduino数字输⼊、输出和脉冲宽带调制--⼩项⽬:彩⾊⼩台灯基本功能:长按控制按钮开机,长按控制按钮关机(>3s)通过三个调节按钮调节灯的颜⾊,每⼀个按钮分别对应R,G,B值模式切换:短按控制按钮切换模式(长亮模式/闪烁模式)元器件清单:Arduino Uno R3⼩号⾯包板跳线10kΩ电阻(×4)220Ω电阻(×3)USB电缆按键(×4)5mm 共阴极 RGB LED知识回顾:(参考书⽬《Arduino魔法书》) 1. 脉冲宽度调制(P25 - P27)PWM的输出可以写⼊数值的范围:0~255PWM的⼯作原理:⽅波(占空⽐的概念)“你并没有改变输送到LED的电压,为何⼜能在降低占空⽐时让LED变暗呢?......如果LED每1ms就开关⼀次,它看起来就是近乎⼀半的亮度,这是因为它闪烁的速度超过了⼈眼能察觉的速度。

因此,⼤脑实际上时平均了这个信号,并欺骗你相信这个LED只有⼀半的亮度。

” 2. 上拉电阻和下拉电阻(P28 ~ P30)没有使⽤下拉电阻的情况按键没有按下时,要读取的输⼊引脚什么也没有接——这个输⼊引脚被称为“悬空”。

由于这个引脚没有实际地接到0V或者5V,读取它时会导致意料之外的结果,因为附近的电⽓噪声会导致其值在⾼低电平之间来回波动。

下拉电阻:将输出端拉⼀根导线连接到地 上拉电阻:将输出端拉⼀根导线连接到电源 3. 按钮的消抖动(P30 ~ P33)1/*2 * 消抖动函数:3 * button: 要消抖动的按钮4 * last: 该按钮的上⼀个状态5 * 返回值:消抖动后读回的按钮状态67 * - 这⾥所谓的消抖动,实际上就是如果检测到电压变化后先不操作,因为可能是抖动阶段的8 * 电压改变,等5m之后再读取当前值,避开抖动阶段。

9 * - 如果没有使⽤消抖动函数,在抖动的过程中电压多次变化,会得到很多次“按钮按下”的10 * 结论,从⽽造成短时间内频繁的开灯关灯。

【免费下载】Arduino学习笔记A5 Arduino常用的代码编写工具

Arduino 学习笔记 A5 - Arduino 常用的代码编写工具
Arduino 常用的代码编写工具
大家在使用 Arduino IDE 编写程序的时候,都会觉得 Arduino 的 IDE 会有很多不足的地方,比如打 开缓慢,不能显示中文,高亮不清晰,Auto Format 自动格式化工具不够智能等。下面我分享一下 我自己使用的 Arduino 代码编写工具,或者不一定是最好的,权当抛砖引玉,欢迎大家多提意见。
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

arduino学习资料

arduino学习笔记arduino学习笔记1 - 什么是arduino?要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR指令集的单片机。

1、什么是单片机?它与个人计算机有什么不同?一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU (进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。

在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。

而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。

2、单片机有什么用?实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。

如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。

单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。

下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。

什么是Arduino?Arduino是一个能够用来感应和控制现实物理世界的一套工具。

它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。

Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。

Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。

Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE 可以免费下载得到。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。
为什么要使用Arduino?
有很多的单片机和单片机平台都适合用做交互式系统的设计。例如:Parallax Basic Stamp,Netmedia’s BX-24,Phidgets,MIT’s Handyboard和其它等等提供类似功能的。所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。Arduino同样也简化了同单片机工作的流程,但同其它系统相比Arduino在很多地方更具有优越性,特别适合老师,学生和一些业余爱好者们使用:
2、单片机有什么用?
实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。
单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。
arduino学习笔记2
通过Arduino编译器查看串口数据
最简单的例子:
void setup()
{
Serial.begin(9600); //打开串口,设置波特率为9600
int val;
val=analogRead(5);//传感器接到模拟口5,数值根据自己的需要可变
便宜-和其它平台相比,Arduino板算是相当便宜了。最便宜的Arduino版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。
跨平台-Arduino软件可以运行在Windows,Macintosh OSX,和Linux操作系统。大部分其它的单片机系统都只能运行在Windows上。
简易的编程环境-初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用Processing编程环境,所以如果学生学习过使用Processing编程环境的话,那他们在使用Arduino开发环境的时候就会觉得很相似很熟悉。
在与Arduino DIYER接触的这段时间里,发现有些朋友对Arduino语言还是比较难入手,那么这里我就简单的注释一下Arduino语言(本人也是半罐子水,有错的地方还请各位指正)。
/*************基础C语言*************/
关键字:
if
if...else
for
switch case
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)平方
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的使能控制。
Analog I/O模拟输入/输出端口0-5。
支持ICSP下载,支持TX/RX。
输入电压:USB接口供电或者5V-12V外部电源供电。
输出电压:支持3.3V级5V DC输出。
处理器:使用Atmel Atmega168 328处理器,因其支持者众多,已有公司开发出来32位的MCU平台支持arduino。
intdigitalRead(pin)数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。
模拟I/O
intanalogRead(pin)模拟IO口读函数,pin表示为0~5(Arduino Diecimila为0~5,Arduino nano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。
ICSP:也有称为ISP(In System Programmer),就是一种线上即时烧录,目前比较新的芯片都支持这种烧录模式,包括大家常听说的8051系列的芯片,也都慢慢采用这种简便的烧录方式。我们都知道传统的烧录方式,都是将被烧录的芯片,从线路板上拔起,有的焊死在线路板上的芯片,还得先把芯片焊接下来才能烧录。为了解决这种问题,发明了ICSP线上即时烧录方式。只需要准备一条R232线(连接烧录器),以及一条连接烧录器与烧录芯片针脚的连接线就可以。电源的+5V,GND,两条负责传输烧录信息的针脚,再加上一个烧录电压针脚,这样就可以烧录了。
下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。
什么是Arduino?
Arduino是一个能够用来感应和控制现实物理世界的一套工具。它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。
Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。Arduino项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE可以免费下载得到。
1、什么是单片机?它与个人计算机有什么不同?
一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。
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电流)。
unsigned longpulseIn(pin, value)脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。
时间函数
unsigned longmillis()返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。
while
do... while
break
continue
return
goto
语法符号:
;
{}
//
/* */
运算符:
=
+
-
*
/
%
==
!=
<
>
<=
>=
&&
||
!
++
--
+=
-=
*=
/=
数据类型:
boolean布尔类型
char
byte字节类型
int
unsigned int
long
unsigned long
目前arduino的控制板最新的为Arduino Uno,如下图:
国内使用比较多的为Arduino Duemilanove 2009,主要原因是Uno的usb控制芯片封装方式改变,制造成本上升,其他变化不大,性价比还是Arduino Duemilanove 2009比较好。
因其开源特性,生产arduino控制板的厂商众多,同样的Duemilanove 2009就有很多种颜色。
硬件开源并可扩展-Arduino板基于Atmel的ATMEGA8和ATMEGA168/328单片机。Arduino基于Creative Commons许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的,省钱又省事。
true|falsetrue表示真(1),false表示假(0)。
/******************************************/
以上为基础c语言的关键字和符号,有c语言基础的都应该了解其含义,这里也不作过多的解释。
/*************Arduino语言*************/
相关文档
最新文档