Arduino最全的中文教程_第1页
Arduino最全的中文教程_第2页
Arduino最全的中文教程_第3页
Arduino最全的中文教程_第4页
Arduino最全的中文教程_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Arduino使用教程DmmFactory0QROBOT.TAOBAO. COMArduino控制器使用教程Arduino使用教程Arduino使用教程http:/q robot .taoba o. comDnamFactory3概述什么 Arduino?Arduino -块基与开放脈始代码的Simple i/o平台,並ILJWf使用类似javaC臥丫的开发环境。让您可以快速 使用Arduino语言与Flash或Processing等软件.作出互动作品。Arduino可以使用开发完成的电子元件例如Switch 或Sensors或其他控制器、LED、步进电机或其他输出裝乩Arduino也町以独&

2、运作成为一个町以跟软件沟通的半 台.例如说:Hash processing Max/MSPVVVV或其他互动软件Arduin。开发I D E界面呈丁开放廉始码廉则,可以让您免费下我使用开发出更多令人惊奇的互动作品. 什么是 Roboduino?DFRduino与Arduino完金廉容,只是在廉來的基础上作了些改进。Arduino的IO使用的孑L座,做互动作品需耍血 包板和针线搭配才能进而DFRduino的IO使用针座使用我们的林邦线就可以讥接把乞种传感器连接到DFRduino特色描述1. 开放廉始码的电路图设计.程式开发邓而免级下取.也可依需求门己修改!2. DFRduino可使用ISF下载线

3、,fl我將新的IC程序烧入bootloader;3. 可圾据官方电路图.简化DFRduino模组,完成独工公作的微处理控制器:4. 可简单地与传感器、各式各样的电子元件连接(如:红外线,超川波,热敏电阻,光敏电阻,伺脱电机等):5. 支炎多样的互动程式 如:Flash, Max Msp, WW, FD, C, Processing 等:6. 使用低价格的微处理控制器(ATMEGA168V-10PI):7. CSB接口,不需外接电源,另外育提供9VDC输入接I:8. 应川方虬利JIJ DFRduino,突破以往只能使用滑展,键盘,CCD等输入的裝建的互动內容,可以更简皿地达成臥 人或多人游戏互动

4、.性能描述1. Digital I/O数字输入/输出端共013。2. Analog I/O模拟输入/输出端共05.3. 支持USB接口协议及供电(不需外接电源).4. 支持ISP卜或功能。5. 支持单片机TX/RX端化6. 支持USB TX/RX端子.7. 支持AREF端子.8. 支持六纽 PWM 端子(Pinll, PinlO, Pin9, Pin6, Pin5, Pin3)9. 输入illJK:接上USB时无须外部供电或外部5VSVDC输入。10. 输出电压:5V DC输出和3. 3V DC输出和外部电源输入。11. 采用 Atmel Atnegal68V-10PI 单片机.12. DFR

5、duino 人小尺、J :宽 70mm X 高 54mm。Arduino使用教程第一课Arduino语言Arduino语書是建也在C/C卄基础匕的其实也就是基础的C语育.Arduino语吉只不过把AVR单片机(微控制 器)相关的一些寄存谿参数设置等都函数化了,不用我们去了解他的底层,让不太了解AVR单片机(微控制器的 刖友也能轻松上手那么这里就简单的注样-F Arduino语筑QROBOT.TAOBAO. COM关键字: if if.clse for swilch case while do while break conlinue rclurn lo语法符号: H IL /运算符:Ardui

6、no使用教程A rduino使用教程http :/q-robot DramFactory5=&+=数据类型: boolean布尔类醴 char字符类空 byte字节类型 ini整数类型 unsigned ini无符号恋空 long长总型 unsigned long无符巧K:整型 float 实数类樂 double siring array void数据类型转换: char() bylc() intQ long) tloal()常量: HIGH I LOW表示数字IO 口的电平.HIGH表示高电平(1). LOW表示低电平httpArduino使用教程QROBOT.TAOBAO. COMArdu

7、ino使用教程http:/q-robot .taoba o. com INPUT I OUTPUT 表示数字IO 口的方向.INPUT表示输入(高阻态),OUTPUT表示输出(AVR能提供 5V电压40mA电流九 true I False true 表示H( 1) false 表示假(0)./*/以上为基础c语言的关键字和符号.有c语言基础的都应诊了解其含义,这里也不作过多的解释。/*Arduino */结构 void setupo初始化变量,管脚模式,调用库函数等 void loopQ连续执行函数内的语句功能数字I/O pinMode(pin, mode)数字IO 口输入输出模式定义函数,p

8、in表示为013. mode表示为INPUT或OUTP UTo digitalWrite(pin. value) 数字IO 口输出电平定义函数,pin表示为013, value表示为HIGH或LOW。比 如定义HIGH可以驱动LED. int digitalRead(pin) 数字IO 口读输入电平函数.pin表示为013, value表示为HIGH或LOW。比如可以 读数字传感器。模拟I/O int analogRead(pin) 模拟 10 口读函数.pin 表示为 05( Arduino Diecimila 为 05, Arduino nano 为 07). 比如可以读模拟传感器(10位

9、AD, 05V表示为01023) analogWrite(pin, value) PWM 数字 IO U PWM 输出隨数,Arduino 数字 IO 口标注了 PWM 的 IO 口可使 用该函数,pin农示3, 5, 6, 9. 10, 11, value表示为0255。比如可用于电机PWM调速或音乐播放。扩展I/O shiftOut(dataPint clockPin, bitOrden value) SPI 外部 IO 扩展丙数.通常使用带 SPI 接口的 74HC595 做 8 个 IO扩展,dataPin为数据Lh clockPin为时钟口,bitOrder为数据传输方向(MSBFI

10、RST高位在前.LSBHR ST低位在洲),value表示所耍传送的数据(0255),另外还需要一个IO 口做74HC595的使能控制。 unsigned long pulseln(pinvalue)脉冲长度记录函数,返回时间参数(us) pin表示为013, value为HIGH或LOW.比如value为HIGH,那么当pin输入为高电平时.开始计时.当pin * 时.然后返回该时间.时间函数Arduino使用教程httpQROBOT.TAOBAO. COMA rduino使用教Edhttp:/q-robot DramFactory7 unsigned long millisQ 返冋时间旳数

11、(单位ms).该函数是指.肖程序运行就开始计时并返何记录的参数, 该参数溢出大概盅更50天时间。 dclay(ms) 延时函数(肢位ms). dclayMicroseconds(us) 延时丙数(单位 us).数学函效 min(x. y)求最小值 max(x, y)求最人值 abs(x)计伴绝对值 constrain(x. a, b)约束函数.卜限a.匕限bx必须在ab之间才能返I叫。 inap(value froniLow. froniHigh, toLow. toHigh) 约束凶数.value 必须在 froniLow toLow 和 fromHi gh与toHigh之间. pow(ba

12、se. exponent)开方瓯数.base 的 exponeni 次方. sg(x)平方 sqrt(x)开根号三角函数 sin(rad) cos(rad) tan(rad) randoinSeed(seed)随机数端口定义函数 seed农示读模拟口 analogRead(pin)数 long random(max)随机数用数,返I叫数据大丁等丁- 0,小T max long random(min, max)随机数函数.返何数据大J 等F min.小J* max外部中断函数 attachlnterrupKinterrupt. , mode)外部中断只能用到数7 IO 口 2和3interrup

13、t 示中断口初始0或1.衣示一个功能丙数.mode: LOW低电平中断.CHANGE冇变化就中断.RISING上升沿中断.FALLING 下降沿中断。 delachlnlcrrupKinlcrniDl) 中断幵关,inlerrupt=l 开,interrupts 关。中断使能函数 interruptsQ使能中断 nolnterrupts()禁止中断小口收发函数 Senal.begin(speed)申口运义波恃率函数,speed农示波恃率如9600, 19200Arduino使用教程http int Serial.available。判断缓冲器状态。 int Serial.readQLJ )|:

14、返I1收到参数。 Scrial.flushQ 淸空缓冲器。 Serial.print(data)冷 口输出数据。 Serial.println( data)串口输出数据并帯冋车符。QROBOT.TAOBAO. COM官方库文件 下载地址:http:/arduino.cc/en/Reference/Libraries EEPROMEEPROM读卩程序库 Eihcrnci以太网控制器程用库 LiquidCryslalLCD控制程序库 Servo -蛇机控制程序库 SoflwarcScrial任何数7 IO 口模拟览口程序胯 Sgper步进电机控制程序库 WireTWI/I2C总线程序库 Matri

15、xLED矩阵控制程序库沁LED矩阵图象处理控制程序库/*/第二课Arduino的数字.模拟端口Arduino控制器内带Bootloader程序.足系统上电后运行的第一段代码.就好比PC机BIOS中的程序,启动就进 行白检,配代端口等等,当然单片机就是靠烧写熔丝位来设定卜电从boot |x启动的.使用这个程序就町以克接把从串 口发來的程序心放到flash区中。我们在便用Arduino编译环境卜或程序时,就先让单片机复位,启动Boolloader程序 引导小口发过來的程序顺利丐入flash区中,Hash可以巫父烧丐.因此想更新软件就是这么的方便。下而我來简巾的 介绍一下驱动的安装和编译环境的使用.

16、首先连接下载程序用的下载线.n先将数据线的圆LI -端插Arduino328板了上如图:Arduino使用教程httpA rduino使用教Fdhttp:/q-DmmFactory#QROBOT.TAOBAO. COM将数憲线的扁口一端插在电脑的USB接口上如下图所示:插好后.Arduino328控制板上的电源指示灯会被点亮电脑上会出现一个对话框如图:Arduino使用教程Arduino使用教程http:/q-DramFactory9QROBOT.TAOBAO. COM找到新的预件向导欢迎使用找到新硬件向导这个向导帮助您安技软件:FT232R USB UAKIG 如果燈的陵件带有安装CD或孜蛊

17、请現在将 9其藍入您期望向导做什么?自鞭聽住磁血O从列表或指定位置安装 爲级)(S)要继续,谙单击下1步”.二下 1步), I选择从列表或指定位代安装点击下一步,HI现如下用:找到新的硬件向导话选择fg的攘索和安装选项.e征送離置bh最住駆动程序门使用下列的复选框限制j或扩展默认搜隶I包括本机路径和可移动媒体会安装找 到的摄隹強动程序。按素可務动媒体飆盘、CD-ROM. .)0在搜索中色括这个位置(Q) :D:ardAiinoardTiincr0018driyQrEFT肛 USB I v 讯览 )O不要搜素.我要自己选择要安装的2隔程序)选择这个选项以便从列表中选择没备驰动程序陷制。不能保证您

18、所选择的驰 动程序与您的硬件星匹配。卜上一步官下一步 取消 点击打开.会看见有然后点击浏览.在出现的浏览文件夹对话松中点击光盘.在光盘卜找到arduinoOOlS文件夹.drivers文件夹如下图所示:Arduino使用教程httpy.Arduino使用教程http7/q-DnamFactory11BbaclaBDASI4田田田B浏览文件夹选择包含您的硬件的犯动程序的文件夹arduino-0013drivers exanipleE hardware j ava lib li.br &ris reference要直看任何子文件夹 请单击上面的十号.QROBOT.TAOBAO. COM确定取消点击

19、drivers文件夹.会FTDI USB Drivers 文件夹,如图:选择包含您的硬件的驱动程序的文件来【二 I二| ar iuino-0013 曰Ddr i ver sCJlaDaBA S田ffiffiffi|j FTDI USB Drivers examplehardware: java1讣Litrar 1 es要直看任何子文件夹请单击上面的十号.取消然后点击这个文件夹.接着点击确定点击下一步.会出现如图对话框:Arduino使用教程httfArduino使用教Fdhttp:/q-DmmFactory#QROBOT.TAOBAO. COM这时我们只要等待即可.稍后会出现如F图对话框:ht

20、tp点击完成.这样驱动就安装好了.卜次再将数抑线插到电脑就不会出现安装驱动对话框了, 程序了.Arduino使用教程Arduino使用教程http:/q-DramFactory13然石卜载虽新的编译软件AKhimoQ01&解H亦就可以肖接使用,接卜來我们就可以开始练于/ 打开ArduinoO018oQROBOT.TAOBAO. COMArduino 0018丿I:发编译坏境很简洁,外个功能键功能描述如卜:叵编译按钮停止编译新薙文件打开攻件打并串口窗口Arduino使用教程保存文许通过USB下戟代码http 7/(A rduino使用教程http7/q-DmmFactory15接卜來点Tools

21、-Board选择开发板住号,B ket ch_jun?4a | Ar dumo 0018回区1CtrHTsketch jun24asetpOAuto FortArchive SketchFix Encoding 1 RlodStrati lonitorCtrHShiftHIBoard Axduin.o Du*i lanove or Ntno / ATat(a328pirXodc(12,0UTFt, Serial PortBum BootloaderAxdumo D&ecx*il( Dwsgog. or Hdo w/ ATtcU6AxduitioAxduino MiniAxduino BThil

22、t (1)(ixotdVritedKIGK); deity 3000);dUitiirnteaUW): dg(1000);LilyPcd Ardui no / ATae328LilyFcd Ardui no w/ AT”6dAxduino Pro x Pr Mini 0. 3V, 8 BHc) w/ ATfte(328Axduino Pro wt Pro Him (3. 3V, 8 MHz) / ATBg168Axduin.o NG or older / ATaeal68Arduino HG or oldr / ATSerisl Port选择串口即USB映射的串口地址. ledl | Ardu

23、ino 0018回区 02Ante FmatCtrliTledlVX d SC tup 0Archive SketchFix Encoding ft ReloadSerial Hom torCtrl*Shif tWBoardP:nM k(8,0UTPVlSeriil fortC012QROBOT.TAOBAO. COMC03Burn BootloaderdiciUlhN. MIQO:设浮8引詡为鬲电平,臣尧期t二碳音 delay (WOO):延时 100h$dicitalWr.uB, SV):/设数字8引为低电平.姐灭发光二僧1T3d 巧(1000); /7 延时 1000m,询面的T作做好后

24、.我们就可以进入实验阶段了。Arduino使用教程httpy/Arduino使用教程http:/q-DmmFactory17QROBOT.TAOBAO. COMArduino语汗是以setup0开头,loop()作为主体的一个程序构架。官方网站是这样描述setup0的:用來初始化 变虽,管脚模式,调用库函数等尊,此函数只运行一次。loopO函数是一个循环函数,函数内的语句周而复始的循环 执行,功能类似elfin中的nainOr Digital Output数字输出实验 功能*使PIN13脚上的LED闪烁。 int ledPin = 13;/设定控制LED的数字10脚void setup 0pi

25、nMode(ledPin, OUTPUT);void loopOdigitallrite(ledPin, HIGH);delay(1000);digitallrite(ledPin, LOW);delay(1000);/设定数字10 口的模式.OUTPUT为输出/ 设定 PIN13 脚为 HIGH = 4V/设定延时时间,1000 = 1秒/ 设PIN13 脚为 LOW = 0V/设定延时时间功能:PWM使PIN11脚上的LED逐渐变壳逐渐变暗。int ledPin = 11;/设定控制LED的数了 10脚int val;/定义一个变量void setup 0pinMode(ledPin, O

26、UTPUT);/ 设定数字 10 口的模式.OUTPUT 为输出void loopOfor (val=0; val0; val)变虽循环 TanalogWrite(ledPin, val);delay(50);Digital Input数字输入实验Arduino使用教程httpA rduino使用教程http:/q-DmmFactoryQROBOT.TAOBAO. COM功能闭合开关sw,int ledPin = 13;int switchPin = 7;int val = 0;void setup 0PIN13脚上的LED亮,断开开关SW, PIN13脚上的LED灭。 /设定控制led的数字

27、io脚/设泄开关的数7 10脚定义一个变呈pinMode(ledPin, OUTPUT);/ 设泄数7 10 U的模式,OUTPUT 为输出pinMode(switchPin, INPUT);/ 设定数字 10 口的模式 INPCT 为输入void loopOval = digitalRead(switchPin);/读数字 10 口上的状态if (HIGH = val) digitalWrite(ledPin. LOW); / 如果开关断开.LED 火 else digitalWrite (ledPin, HIGH);/ 果开关闭合,LED 亮Analog Input模拟输入实验Arduin

28、o使用教程httpArduini)使用教程http7/q-Dr&amFactory#功能:调节电位器RPot,使输入模拟最的变化來改变LED闪烁的频率。int ledPin = 13;int RPotPin = 5;inx val = 0;void setup 0pinMode(ledPin, OUTPUT);void loopOval = analogRead(RPotPin); digiralWrite(ledPin, HIGH); delay(value);digitalWrite(ledPin, LOW); delay(value);/设定控制LED的数字IO脚/设定模拟输入10脚/定

29、义一个变昴/设定数字10 口的模式,OUTPUT为输出/读模拟10 口上的数据/ 设定 PIN13 脚为 HIGH = 4V /延时时间为模拟输入的伉/设定PIN13脚为LOW/延时时间为模拟输入的值第三课Arduino的串口通讯Arduin。不但有14个数字接口和6个模拟接口外.还有1个更为常用的巾口接口.在实际应用中串口以只儒要少 厳的几根线就能和英他串口设备通讯的优势被广应用.串疔接口按标准被分为RS-232、RS-422、RS-485RS-232是在1962年发布的,也是目前PC机与通信工业中应用 最广泛的一种串行接口, RS-232采取不平衡传输方式,即所谓单瑞通讯。典型的RS-23

30、2信号在正负电平之间摆动, 在发送数据时,发送端驱动器输出正电平在+5+15V.负电平在-5-15V电平.我们的单片机停用的杲TTL由平的巾 行协议,因此弧片机与pc通讯时需耍进行RS-232电平和TTL电平的转换.最常用的电平转瓠 与单片机通讯时则町以直接连接。USB版本的Arduino则是通过USB转诚TTL串U F载程序的数7口 PIN 0和PIN 1就绘http%Arduino使用教程串口通讯中最重嬰的一点就的通讯协议,一般串口通讯协议都会何波特率、数据位、停止位、校验位等参数。大 家不会设置也不用怕,Arduino涪,7中Serial. beginO函数就能使人家轻松完成设克,我们只

31、盅耍改变该函数的参数 即可,例如Serial, begin(9600).则农示波特率为9600bit/s(每秒比特数bps).其余参数默认即可.Ar du inQ 语言中还提供了 Serial, available ()判断串口缓冲器状态、Serial. readO 读串口、Serial, print 0 *! 口发送及Serial. printlnO带换行符串口发送四个函数。卜脚我们用段代码來演示这些函数的用途.实验无须外M电路,只需耍将下枚的USB线连接即町。char word;void setup 0Serial, begin(9600);/ 打开小口,设遥波特率为 9600 bpsvo

32、id loopO(if (Serial, available0 0) /判断串口缓冲器是否育数据装入word = Serial. readO ;/读取串 Uif gord= a*)判断输入的字符是否为a(Serial, print (Robot *);从;卩 口发送字符串Serial. println(*is NO. 1); 从串口发送字符串并换行QROBOT.TAOBAO. COM编译下载完程序后,点红圈里的按钮,打开串口监视器:Arduino使用教程http7/qArduino使用教程http:/q-robot DramFactory17选择小口监视器的波特率为9600bps.在发送框里境

33、上了母乩恵send发送.下而的显示梃里就会显示返何的数 据.如果发送其他字母.则无返I叫值.课 Arduino 的 I2C/TWI 通讯QROBOT.TAOBAO. COMhttp什么的I2C呢? I2C即Inter-Integrated Circuit串行总线的缩写.M PHILIPS公司推出的芯片间小行传输总 线它以1根帝行数据线(SDA)和1根尔行时钟线(SCL)实现了双工的同步数拯传输几冇接口线少,控制方式简 化,器件封装形式小.通信速率较禺等优点.在主从通信中可以冇多个I2C总线器件同时接到I2C总线匕,通过地 址來讲别通倍对彖。苹运的足.Arduino l2经为我们提供了 I2C的

34、库函数(Wire.h).这样我们就可以很轻松的玩IIC通讯了 这里使用Arduino Diecimila做主机.2个Arduino Nano做从机(不一定非要nano做从机 Arduino Diecimila. Mini M至其他IIC器件都町以。如果IIC总线上挂了多个从机.那么就要在总线上加上拉oArduin。家族中的新成员,佔计人家还不太熟悉吧.这里我就简单介绍一下。Arduino None 实际和 Arduino Diecimila 望不多 (JI Arduino Nano 1 j Arduino DiecimiArduino使用教程Arduino使用教程http:/q-DnamFac

35、tory19。在体枳上占很大优势,并H具仃8个模拟Lh比Arduino Diecimila还多2个.还具付USB电源和外接电源动切 换功能,12版的编译环境支持nanofel!件。Q-ROBOT.TAOBAO. COMI2C总线也定上从方式通讯.I2C总线允许连接多个微控制熱 显然不能同时存在两个上器件,先控制总线的器件 成为主器件,这就是总线竞争.在竞争过程中数据不会被破坏、丢失.数据只能在主、从器件中传送,结束后,主、 从器件将舁放总线.退出主.从器件角色.模扌女口 4SDA模拟口 5SCLHC总线下面我们就做个简爪的I2C通讯实验.通过编译环境的巾口监视器向主机发送拆令.主机收到后,再通

36、过I2C总 线发送洽地址匹配的从机,然后从机驱动LED点亮.代码分卞从部分,卞机部分与入Arduino Diecimila从机部分 耳入 Arduino Nanoc实检实物图:Arduino使用教程http 7/(A rduino使用教程http:/q-robot DmmFactory21Q-ROBOT.TAOBAO. COM在上代码之前,我们先了解一下IIC的库函数Wire, h里面的常用函数. begin 0 begin(address) requesrFrom(address, count) beginTransmission(address) endTransmi ss ion() s

37、endO byte available0 byte receive 0 onReceive(handler) onRequest(handler)/初始化Wire 14:.和设WIIC总线上从机带地址参数就是从机,不带就是主机在启动IIC总线后,可以继续访问另一个地址,和访问次数开始给从机发送地址结束本次IIC通讯,与上条函数成对使用/发送数据用判断数据是否有效,有效才开始接收接收数据从机接收上机发來的数撫从机请求主机发送数拯主机代码:(从编译器串口监视器发送数字1, 2, 3, 4来控制从机的LED亮与灭)include void setup 0Wire.beginO;启动I2C总线,地址缺

38、省表示为主机Serial. begin(9600);启动串Lb设誉波特率为9600Serial, print In (Ready); 发迖了符void loopOint val;if (Serial. availableO 0)/判断巾口缓冲器是否有数折装入val=Serial. readO ;/读串 口http7/cif(val=49)/lWire. beginTransmission(4);/与地址4的从机连接通讯Arduino使用教程Wire, send(l);Wire endTransmission0;Serial, printIn(*49 OK); delay(lO);else if

39、 (val50)/2/发送数字1开LED停止发送串口上显示49 0K表示完成,49表示为数字1的ASCII RWire beginTransmission(4);Wire. send(O);Wire endTransmission0;Serial.println(*50 OK); delay(lO);else if (val51)/3/与地址4的从机连接通讯发送数字0关LED停止发送巾口上显示50 0K表示完成Wire beginTransmission(5);Wire, send(l);Wire endTransmission0;Serial. println(*51 OK); delay(

40、lO);else if (val=52)/4/与地址5的从机连接通讯发送数7 1开LED停止发送串口上显示51 0K表示完成Wire beginTransmission(5);Wire, send (0);Wire endTransmissionO;Serial. println(*52 OK); delay(10);else Seria1 println(val);/与地址5的从机连接通讯发送数7 0关LED停止发送串口上显示52 0K表示另从机A代码:(接收到主机发送的1点亮LED,接收到0关掉LED)口include int LED = 2;void setup 0Wire.begin(

41、4);WireonReceive(receiveEvent); pinMode(LED, OUTPUT);/设代从机地址为4从机接收卞机发来的数辦/设WI0U为输出模式Arduino使用教程http:/cA rduino使用教程http:/q-robot .taoba o. comDmmFactory27void loopOdelay(100);void receiveEvent (int howMany) /接收从丄机发过來的数据int c = Wire, receive();/ 接收单个字节if (c=l)(digitalWrite (LED, HIGH); / 如果为 1 开 LEDel

42、se if (c=0)(digitalWrite(LED,LOW); / 如果为 0 关LED从机B代码:(接收到主机发送的1点亮LED,接收到0关掉LED)鼻include int LED = 2;void setup 0Wire, begin(5);/ 设:K从机地址为 5WireonReceive(receiveEvent); /pinMode(LED, OUTPUT);void loopOdelay(lOO);void receiveEvent(int howMany)int c = WirereceiveO ;if(c=l)(digitalWrite (LED, HIGH);else

43、 if(c=0)(digitalWrite(LED, LOW);http7/iArduino使用教程第五课Arduino控制1602字符液晶显示1602字符液晶是垠常用的一种.很具令代表性.1602液晶分4总线和8总线2种驱动方式(关J:该液阳的详细怪 料,大家可以自己搜索,这里就不做诽细说明了)。我们用单片机驱动1602液晶,使用并口操作很容易就驱动起来了, 但使用Arduino板驱动1602液晶,还真冇点级劲,因为他只能位操作.根据宜方网站提供的例程很容易看出他们 使用的是最常用的8总线驱动方式.然而他巧妙的使用for循坏语句完成了位操作的赋值。来看看官方的-匸程代码:int DI = 1

44、2;int RW = 11;int DB: = 3, 4, 5, 6, 7, & 9, 10;/使用数组來宦义总线盅要的竹脚int Enable = 2;void LcdCommemdWrite(int value) / poll all the pinsint i = 0;for (匸DB0; i = DI; i卄)/总线赋值 digitalWrite(it value & 01);value = 1;digitalWrite(Enable, LOW);delayMicroseconds(1);/digitalWrite(Enable, HIGH);delayMicroseconds(1);

45、/digitalWrite(Enable, LOW);delayMicroseconds(1);/ void LcdDataWrite(int value) /send a pulse to enablepause 1 ms according to datasheetpause 1 ms according to datasheetpoll all the pinsQROBOT.TAOBAO. COMint i = 0;digitalWrite(DI, HIGH);digitalWrite(RWt LOW);for (i=DB0; i = DB7; +) digitalWrite (it v

46、alue & 01);value = 1;digitalWrite(Enable, LOW);delayMicroseconds(1);/ send a pulse to enabledigitalWrite(Enable, HIGH);delayMicroseconds(1);digitalWrite(Enable, LOW);delayMicroseconds(1);/ pause 1 ms according to datasheethttp 7/cArduino使用教程void setup (void) int i = 0;for (i=Enable; i = DI; i*+)pinM

47、ode(i, OUTPUT);delay(100);/ initiatize led after a short pauseneeded by the LCDs controllerLcdConmandWrite(0x38); / set: / 8-bit interface, 1 display lines, 5x7 fontdelay(20);LcdConmandWrite(0x06):/ entry mode set: / increment automatically, no display shiftdelay(20);LcdConmandWrite(OxOE);/ display control: / turn display on, cursor on, no blinkingdelay(20);LcdConmandWrite(OxOl);/ clear display, set cursor position to zerodelay(lOO);LcdConmandWrite(0x80);/ display control: /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论