Arduino入门到精通例程20
- 格式:doc
- 大小:1.17 MB
- 文档页数:16
Arduino 入门到精通 例程201602液晶实验本次试验使用arduino直接驱动1602液晶显示文字1602液晶在应用中非常广泛,最初的1602液晶使用的是HD44780控制器,现在各个厂家的1602模块基本上都是采用了与之兼容的IC,所以特性上基本都是一致的。
1602LCD主要技术参数显示容量为16×2个字符;芯片工作电压为4.5~5.5V;工作电流为2.0mA(5.0V);模块最佳工作电压为5.0V;字符尺寸为2.95×4.35(W×H)mm。
1602液晶接口引脚定义接口说明:1、两组电源 一组是模块的电源 一组是背光板的电源 一般均使用5V供电。
本次试验背光使用3.3V供电也可以工作。
2、VL是调节对比度的引脚,串联不大于5KΩ的电位器进行调节。
本次实验使用1KΩ的电阻来设定对比度。
其连接分高电位与低电位接法,本次使用低电位接法,串联1KΩ电阻后接GND。
3、RS 是很多液晶上都有的引脚 是命令/数据选择引脚 该脚电平为高时表示将进行数据操作;为低时表示进行命令操作。
4、RW 也是很多液晶上都有的引脚 是读写选择端该脚电平为高是表示要对液晶进行读操作;为低时表示要进行写操作。
5、E 同样很多液晶模块有此引脚 通常在总线上信号稳定后给一正脉冲通知把数据读走,在此脚为高电平的时候总线不允许变化。
6、D0—D7 8 位双向并行总线,用来传送命令和数据。
7、BLA是背光源正极,BLK是背光源负极。
1602液晶的基本操作分以下四种:下图就是1602液晶实物图1602直接与arduino通信,根据产品手册描述,分8位连接法与4位连接法,咱们先使用8位连接法进行实验。
硬件连接方式如下图代码如下int DI = 12;int RW = 11;使用数组来定义总线需要的管脚int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};//int Enable = 2;void LcdCommandWrite(int value) {// 定义所有引脚int i = 0;总线赋值for (i=DB[0]; i <= DI; i++) //{因为1602液晶信号识别是D7-D0(不是D0-D7),这里是用来反 digitalWrite(i,value & 01);//转信号。
Arduino⼿把⼿⼊门教程Arduino⼊门教程简单说,Arduino是⼀块AtmegaX8的开发板,带BootLoader,通过USB转串⼝和电脑通信。
Arduino把AtmegaX8的功能做了简化,以⽅便开发,并提供完整的IDE开发环境。
Arduino在国外⾮常⽕,主要⽤来做【互动多媒体】,因为从事【互动多媒体】多半是⽂科⽣,所以功能尽可能的简化。
⼯程师级别的对Arduino不感冒,认为Arduino侮辱了他们的智商。
实际上Arduino对最⼤的强项是提供了丰富的库资源,⼏乎任何外设,是要在google上敲⼊关键字 + Arduino,就可以得到你想要的。
例如:google输⼊:PCF8574 ArduinoArduino是⼀块简单、⽅便使⽤的通⽤GPIO接⼝板,并可以通过USB接⼝和电脑通信。
作为⼀块通⽤IO接⼝板,Arduino提供丰富的资源,包括:13个数字IO⼝(DIO数字输⼊输出⼝);6个PWM输出(AOUT可做模拟输出⼝使⽤);5个模拟输⼊⼝(AIN模拟输⼊)。
Arduino开发使⽤java开发的编程环境,使⽤类c语⾔编程,并提供丰富的库函数。
Arduino可以和下列软件结合创作丰富多彩的互动作品:Flash,Processing,Max/MSP,VVVV…等。
Arduino也可以⽤独⽴的⽅式运作,开发电⼦互动作品,例如:开关控制Switch、传感器sensors输⼊、LED等显⽰器件、各种马达或其它输出装置。
Arduino特⾊1. Arduino的IDE是免费、开源的。
2. Arduino的硬件也是开源的,包括原理图和PCB图。
3. Arduino的所有资源都可以免费下载,并且可依需求⾃⼰修改!4. Arduino的附件只需1根USB线,编程、烧写⼀键搞定。
5. Arduino使⽤低价格、容易购买的微处理控制器ATMEGA168。
6. ⽀持多种互动软件:Flash,Max/Msp,VVVV,PD,Processing等。
Arduino编程基础入门第一章:什么是Arduino?Arduino是一种开源电子平台,它由一个硬件部分和一个软件部分组成。
Arduino硬件包括一个可以编程的微控制器,用于控制各种电子元件的操作。
Arduino软件则是用于编写和上传程序到Arduino硬件的集成开发环境(IDE)。
第二章:Arduino的组成部分Arduino板上有一个微控制器,这是Arduino的核心部分。
该微控制器可以通过Arduino IDE进行编程,并通过与电脑的连接来上传程序。
Arduino板上还有一些输入和输出引脚,可以连接各种传感器和执行器。
此外,Arduino板还包括一个供电接口和一个USB 接口。
第三章:Arduino的编程语言Arduino使用一种基于C++的编程语言,它简单易学,适合初学者。
与其他编程语言相比,Arduino的编程语言具有一些专门为微控制器开发设计的特性,如控制引脚、延时函数等。
通过编写程序,可以实现与各种外部设备的交互。
第四章:Arduino的开发环境Arduino开发环境(IDE)是一个用于编写、上传和调试Arduino程序的软件工具。
它提供了一个简单直观的界面,使得编程变得容易上手。
通过IDE,用户可以创建新的程序、编辑现有的程序,并将程序上传到Arduino板上。
IDE还提供了错误检查、调试功能等。
第五章:Arduino的基本语法Arduino的基本语法与C++类似,包括函数、变量、运算符等。
在编写Arduino程序时,需要了解一些基本的语法规则,如注释、变量声明、控制结构等。
掌握这些基本语法是学习Arduino编程的重要一步。
第六章:Arduino的输入与输出Arduino的输入输出是其最基本的功能之一。
通过连接各种传感器和执行器,可以实现与外部环境的交互。
例如,可以通过连接一个温度传感器来读取环境温度,并通过连接一个LED灯来控制其亮灭。
学习如何使用不同的输入输出引脚是使用Arduino的关键。
arduino简单课程设计一、课程目标知识目标:1. 让学生理解Arduino的基本概念,掌握其编程语言及基本电路原理。
2. 使学生掌握Arduino的输入/输出功能,能够读取传感器数据并控制外部设备。
3. 引导学生了解Arduino在实际应用中的基本原理,如智能家居、物联网等。
技能目标:1. 培养学生动手操作能力,能够独立完成Arduino的基本电路连接。
2. 培养学生编程思维,使其能够编写简单的Arduino程序,实现特定功能。
3. 提高学生的创新意识和问题解决能力,使其能够运用Arduino技术解决实际问题。
情感态度价值观目标:1. 激发学生对Arduino及电子制作的兴趣,培养其探究精神。
2. 培养学生团队协作意识,使其在合作中共同解决问题,提高沟通能力。
3. 引导学生关注科技发展,认识到Arduino技术在现实生活中的重要性,树立正确的价值观。
分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能够独立完成Arduino的基本电路连接,并掌握相关元件的功能。
2. 学生能够编写简单的Arduino程序,实现灯光控制、温度检测等功能。
3. 学生能够运用Arduino技术设计并制作一个简单的创意作品,如智能家居控制系统。
4. 学生在课程学习中,能够主动参与讨论、分享心得,提高团队协作能力。
二、教学内容本课程教学内容围绕Arduino基础知识、实践操作和创意应用三个方面展开。
1. Arduino基础知识:- Arduino硬件平台介绍:了解Arduino各种型号及其特点。
- 基本编程语法:掌握变量、数据类型、运算符、控制结构等。
- 数字和模拟输入/输出:学习如何使用Arduino的GPIO口进行数据读取和控制。
2. 实践操作:- 传感器应用:学习使用常见传感器,如温度传感器、光敏传感器等。
- 电路设计:掌握基本电路原理,学习绘制原理图和搭建电路。
- 编程实践:编写程序实现传感器数据读取、LED控制等基本功能。
ARDUINO⼊门及其简单实验(7例)ARDUINO⼊门及其简单实验(7例) (1)1. Arduino硬件开发平台简介 (1)1.1 Arduino的主要特⾊ (2)1.2 Arduino的硬件接⼝功能描述 (3)1.3 Arduino的技术性能参数 (3)1.4 电路原理图 (4)2. Arduino软件开发平台简介 (5)2.1 菜单栏 (5)2.2 ⼯具栏 (6)2.3 Arduino 语⾔简介 (6)3. Arduino开发实例中所⽤部分器件 (8)1. LED简介 (8)2. 光敏电阻简介 (9)3. 直流电机简介 (9)4. 电位器简介 (10)4. Arduino平台应⽤开发实例 (10)4.1【实作项⽬⼀】利⽤LED作光敏电阻采样实验 (10)4.2【实作项⽬⼆】利⽤PWM信号控制LED亮度 (12)4.3【实作项⽬三】单键控制⼀只LED的亮灭 (15)4.4【实作项⽬四】利⽤PWM控制直流电机转速 (17)4.5【实作项⽬五】利⽤电位器⼿控LED亮度 (19)4.6【实作项⽬六】控制LED明暗交替 (21)4.7【实作项⽬七】利⽤光敏电阻控制LED的亮灭 (23)ARDUINO⼊门及其简单实验(7例)1. Arduino硬件开发平台简介Arduino硬件是⼀块带有USB的I/O接⼝板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输⼊),并且具有类似于Java、C语⾔的集成开发环境。
Arduino既可以扩展⼀些外接的电⼦元器件,例如开关、传感器、LED、直流马达、步进马达或其他输⼊、输出装置;Arduino也可以独⽴运⾏,成为⼀个可以跟交互软件沟通的接⼝装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。
Arduino开发环境IDE全部开放源代码,可以供⼤家免费下载、利⽤,还可以开发出更多激发⼈们制作欲望的互动作品。
如图1和图2所⽰,分别为Arduino硬件平台的实物图和电路布局图。
Arduino教程Arduino LWZ 教程V1.0目录一、Arduino编程语言 (4)1、数据类型: (4)2、常量: (4)3、基本语句: (4)(1)if语句 (4)(2)if...else...语句 (5)(3)for语句 (5)(4)break和continue (6)(5)switch case语句 (6)(6)while语句和do...while语句 (7)(7)return语句 (8)(8)运算符 (8)(9)函数 (8)4、结构函数: (8)5、功能函数: (9)(1)数字I/O函数 (9)(2)模拟I/O函数 (9)(3)时间函数 (9)(4)数学函数 (10)(5)数据类型转换函数 (10)(6)三角函数 (10)(7)随机数函数 (10)(8)外部中断函数 (11)(9)中断使能函数 (11)(10)串口收发函数 (11)6、官方库文件: (11)二、Sabertooth电机驱动模块应用实例 (13)1、工作模式 (13)(1)Mode1: Analog Input (13)(2)Mode2:R/C Input (14)(3)Mode3:Simplified serial (14)(4)Mode4:Packetized serial (15)2、应用实例 (17)(1)硬件连接 (17)(2)小车停止函数 (18)(3)小车前进函数 (19)(4)小车后退函数 (19)(5)小车右转函数 (20)(6)小车左转函数 (21)(7)电子积木编程思路 (22)(8)PC软件的编程思路 (25)(1)硬件连接 (25)(2)电子积木运动和初始化函数 (25)(3)电子积木编程思路 (26)4、通过无线模块控制小车 (28)(1)无线通信模块 (28)(2)硬件连接 (28)(3)电子积木编程思路 (28)5、下载程序串口COM和无线数模串口COM2同时控制小车 (30)(1)硬件连接 (31)(2)电子积木编程思路 (31)三、TN901_TEST非接触测温模块应用实例 (34)1、TN901工作原理 (34)2、应用实例 (36)(1)硬件连接 (36)(2)读取温度函数 (36)(3)初始化函数 (38)(4)电子积木编程思路 (38)3、多个TN模块的应用实例 (39)(1)硬件连接 (39)(2)初始化函数 (39)(3)电子积木编程思想:共享函数 (40)(4)电子积木编程思路:独立函数 (42)四、气体传感器模块应用实例 (46)1、应用实例 (46)(1)硬件连接 (46)(2)电子积木编程思路 (46)2、多个气体传感器的应用实例 (47)(1)硬件连接 (47)(2)电子积木编程思路 (47)五、火焰传感器模块应用实例 (48)1、应用实例 (48)(1)硬件连接 (48)(2)电子积木编程思路 (49)2、多个火焰传感器的应用实例 (49)(1)硬件连接 (49)(2)电子积木编程思路 (50)六、DF-miniLTV3寻线模块应用实例 (50)1、DF-miniLTV3寻线工作原理 (50)2、DF-miniLTV3寻线在单黑线的应用实例 (51)(1)硬件连接 (52)(2)Sabertooth模块函数 (52)(3)初始化函数 (52)(4)电子积木编程思路 (52)(1)硬件连接 (54)(2)电子积木编程思路 (54)(2)PC软件的编程思路 (56)七、舵机模块应用实例 (56)1、舵机工作原理 (56)2、应用实例 (57)(1)硬件连接 (57)(2)电子积木编程思路 (57)3、非库形式的应用实例 (59)(1)硬件连接 (59)(2)双舵机驱动函数 (59)八、综合实例 (63)1、驱动2台舵机和电机的应用实例 (63)(1)硬件连接 (63)(2)电子积木编程思路 (64)2、测3个测温度、驱动电机的应用实例 (64)(1)硬件连接 (64)(2)电子积木编程思路 (64)3、测3个测温度、驱动2台舵机和电机的应用实例 (65)(1)硬件连接 (65)(2)电子积木编程思路 (65)4、测2个气体、2个火焰、3个测温度、驱动2台舵机和电机的应用实例 (65)(1)硬件连接 (65)(2)电子积木编程思路 (65)5、寻线、测2个气体、2个火焰、3个测温度、驱动2台舵机和电机的应用实例 (66)(1)硬件连接 (66)(2)电子积木编程思路 (66)一、Arduino编程语言Arduino语言是建立在C/C++基础上的。
Arduino开发板入门教程第一章:Arduino简介Arduino是一款开源硬件平台,广泛应用于物联网、机器人和自动化领域。
它由一个简单易用的硬件开发板和一个基于Java的集成开发环境(IDE)组成。
本章将介绍Arduino的基本知识和原理。
1.1 Arduino开发板的组成Arduino开发板包含一个微控制器、一组输入输出引脚和一些其他的电子元件。
常用的Arduino型号有Arduino Uno、Arduino Nano和Arduino Mega等。
1.2 Arduino的特点和应用Arduino具有开源、低成本、易使用和可扩展的特点,使其成为广大电子爱好者和创客的首选。
它可以用于建造简单的电子装置、控制传感器、驱动电机以及与计算机进行通信等。
第二章:Arduino的基本用法本章将详细介绍Arduino的基本用法,包括设置Arduino开发环境、编写代码、上传程序以及与外部电路的连接。
2.1 Arduino开发环境的安装与设置首先,需要从Arduino官方网站上下载并安装Arduino集成开发环境(IDE)。
安装完成后,用户需要选择合适的开发板和端口。
2.2 Arduino编程基础Arduino使用一种类似C语言的编程语言。
本节将介绍Arduino编程的基本结构、语法和常用函数。
同时,还将介绍数字输入/输出、模拟输入/输出和串口通信等常用功能。
2.3 Arduino程序的上传编写好的Arduino程序需要通过USB接口将代码上传到开发板上。
本节将介绍如何将程序上传到Arduino开发板,并进行调试和测试。
2.4 Arduino与外部电路的连接Arduino开发板上有多个数字引脚和模拟引脚,可以与外部电路进行连接。
本节将介绍如何使用面包板和杜邦线将Arduino与LED、电位器、温度传感器等外部元件进行连接,并通过编写程序进行控制和读取。
第三章:Arduino的高级用法在本章中,将介绍一些Arduino的高级应用,包括使用库函数、扩展Arduino功能以及与其他设备的通信等。
Arduino开发教程第一章:Arduino简介与环境搭建1.1 Arduino的定义与特点Arduino是一款开源的无线控制模块,具有操作简单、易于编程和低成本等特点。
其基于开源硬件和软件平台,具有丰富的资源和社区支持。
1.2 Arduino开发环境搭建首先,下载安装Arduino开发环境,并将Arduino连接到计算机上。
接着,选择合适的开发板型号,并安装相应的驱动程序。
最后,通过Arduino IDE进行开发和编程。
第二章:基本电子元件和电路设计2.1 电子元件介绍介绍常见的电子元件,如电阻、电容、二极管、晶体管等。
解释其基本原理和作用,并讲解如何选择合适的元件。
2.2 电路设计与连接讲解如何设计电路图,并将相应的元件连接到Arduino开发板上。
详细介绍使用面包板、导线和跳线的方法。
第三章:Arduino编程基础3.1 Arduino编程语言简介介绍Arduino编程语言的基本语法和常用函数,如pinMode()、digitalRead()、analogWrite()等。
帮助读者了解如何编写简单的程序。
3.2 Arduino库的使用介绍Arduino库的概念和使用方法,讲解常用库的功能和调用方式。
示范代码编写与调试的过程。
第四章:传感器与模块的应用4.1 光敏传感器介绍光敏传感器的使用原理和连接方法。
给出示例程序,实现根据光强度控制LED灯亮灭。
4.2 温湿度传感器介绍如何使用温湿度传感器,并给出示例程序,实现温度和湿度的监测功能。
4.3 超声波传感器讲解超声波传感器的原理和使用方法,编写相应的程序,实现测距功能。
4.4 蓝牙模块介绍如何使用蓝牙模块与移动设备进行通信。
给出示例程序,实现通过手机控制LED灯的亮灭。
第五章:外部设备控制5.1 LED灯控制给出控制LED灯亮灭的示例程序,并讲解使用不同脚位和不同亮度的方法。
5.2 舵机控制介绍如何使用舵机模块实现旋转控制,并编写相应的程序。
数字输出Arduino教程一:11 Comments ?Arduino教程,。
除了管脚的数字Arduino7到管脚2I/O个可用的6I/O被分成两个部分,其中每个部分都包含有管脚,即管脚到管脚8和管脚13I/O1K上接了一个13来对位的数字跑马灯,6上。
ATmega其他各个管脚都直接连接到的电阻之外,我们可以利用一个Arduino数字的输出功能进行验证,以下是相应的原理图:电阻被称为限流电阻,I/O电路中在每个管脚上加的那个1K使用限流电阻可由于发光二极管在电路中没有等效电阻值,以使元件上通过的电流不至于过大,能够起到保护的作用。
该工程对应的代码为:int BASE = 2;int NUM = 6;int index = 0;void setup(){++) BASE; = i (int for i + BASE < i NUM;{pinMode(i, OUTPUT);}}void loop(){for (int i = BASE; i < BASE + NUM; i ++) {digitalWrite(i, LOW);}digitalWrite(BASE + index, HIGH);index = (index + 1) % NUM;delay(100);}2管脚I/O数字Arduino下载并运行该工程,连接在上的发光二极管会依次点亮7到管脚0.1秒,然后再熄灭:1 / 28这个实验可以用来验证数字I/O输出的正确性。
Arduino上一共有十二个数字I/O管脚,我们可以用同样的办法验证其他六个管脚的正确性,而这只需要对上述工程的第一行做相应的修改就可以了:int BASE = 8;01SEPArduino教程二: 数字输入3 Comments ?Arduino, 教程在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。
Arduino从数字I/O管脚上只能读出高电平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成Arduino 能够读取的高/低电平。
ARDUINO入门及其简单实验(7例) (1)1. Arduino硬件开发平台简介 (1)1.1 Arduino的主要特色 (2)1.2 Arduino的硬件接口功能描述 (3)1.3 Arduino的技术性能参数 (3)1.4 电路原理图 (4)2. Arduino软件开发平台简介 (5)2.1 菜单栏 (5)2.2 工具栏 (6)2.3 Arduino 语言简介 (6)3. Arduino开发实例中所用部分器件 (8)1. LED简介 (8)2. 光敏电阻简介 (9)3. 直流电机简介 (9)4. 电位器简介 (10)4. Arduino平台应用开发实例 (10)4.1【实作项目一】利用LED作光敏电阻采样实验 (10)4.2【实作项目二】利用PWM信号控制LED亮度 (12)4.3【实作项目三】单键控制一只LED的亮灭 (15)4.4【实作项目四】利用PWM控制直流电机转速 (17)4.5【实作项目五】利用电位器手控LED亮度 (19)4.6【实作项目六】控制LED明暗交替 (21)4.7【实作项目七】利用光敏电阻控制LED的亮灭 (23)ARDUINO入门及其简单实验(7例)1. Arduino硬件开发平台简介Arduino硬件是一块带有USB的I/O接口板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输入),并且具有类似于Java、C语言的集成开发环境。
Arduino 既可以扩展一些外接的电子元器件,例如开关、传感器、LED、直流马达、步进马达或其他输入、输出装置;Arduino也可以独立运行,成为一个可以跟交互软件沟通的接口装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。
Arduino 开发环境IDE全部开放源代码,可以供大家免费下载、利用,还可以开发出更多激发人们制作欲望的互动作品。
如图1和图2所示,分别为Arduino硬件平台的实物图和电路布局图。
1602液晶實驗本次試驗使用arduino直接驅動1602液晶顯示文字1602液晶在應用中非常廣泛,最初的1602液晶使用的是HD44780控制器,現在各個廠家的1602模塊基本上都是採用了與之兼容的IC,所以特性上基本都是一致的。
1602LCD主要技術參數顯示容量為16×2個字符;晶片工作電壓為4.5~5.5V;工作電流為2.0mA(5.0V);模組最佳工作電壓為5.0V;字符尺寸為2.95×4.35(W×H)mm。
1602液晶接腳定義接腳說明:1、兩組電源一組是模塊的電源一組是背光板的電源一般均使用5V供電。
本次試驗背光使用3.3V供電也可以工作。
2、VL是調節對比度的引腳,串聯不大於5KΩ的電位器進行調節。
本次實驗使用1KΩ的電阻來設定對比度。
其連接分高電位與低電位接法,本次使用低電位接法,串聯1KΩ電阻後接GND。
3、RS 是很多液晶上都有的引腳是命令/數據選擇引腳該腳電平為高時表示將進行數據操作;為低時表示進行命令操作。
4、RW 也是很多液晶上都有的引腳是讀寫選擇端該腳電平為高是表示要對液晶進行讀操作;為低時表示要進行寫操作。
5、E 同樣很多液晶模塊有此引腳通常在總線上信號穩定後給一正脈衝通知把數據讀走,在此腳為高電平的時候總線不允許變化。
6、D0—D7 8 位雙向並行總線,用來傳送命令和數據。
7、BLA是背光源正極,BLK是背光源負極。
1602液晶的基本操作分以下四種:下圖就是1602液晶實物圖1602直接與arduino通信,根據產品手冊描述,分8位連接法與4位連接法,咱們先使用8位連接法進行實驗。
硬件連接方式如下圖代碼如下int DI = 12;int RW = 11;int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};//使用數組來定義總線需要的管腳int Enable = 2;void LcdCommandWrite(int value) {// 定義所有引腳int i = 0;for (i=DB[0]; i <= DI; i++) //總線賦值{digitalWrite(i,value & 01);//因為1602液晶信號識別是D7-D0(不是D0-D7),這裡是用來反轉信號。
value >>= 1;}digitalWrite(Enable,LOW);delayMicroseconds(1);digitalWrite(Enable,HIGH);delayMicroseconds(1); // 延時1msdigitalWrite(Enable,LOW);delayMicroseconds(1); // 延時1ms}void LcdDataWrite(int value) {// 定義所有引腳int i = 0;digitalWrite(DI, HIGH);digitalWrite(RW, LOW);for (i=DB[0]; i <= DB[7]; i++) {digitalWrite(i,value & 01);value >>= 1;}digitalWrite(Enable,LOW);delayMicroseconds(1);digitalWrite(Enable,HIGH);delayMicroseconds(1);digitalWrite(Enable,LOW);delayMicroseconds(1); // 延時1ms}void setup (void) {for (i=Enable; i <= DI; i++) {pinMode(i,OUTPUT);}delay(100);// 短暫的停頓後初始化LCD// 用於LCD控制需要LcdCommandWrite(0x38); // 設置為8-bit接口,2行顯示,5x7文字大小delay(64);LcdCommandWrite(0x38); // 設置為8-bit接口,2行顯示,5x7文字大小delay(50);LcdCommandWrite(0x38); // 設置為8-bit接口,2行顯示,5x7文字大小delay(20);LcdCommandWrite(0x06); // 輸入方式設定// 自動增量,沒有顯示移位delay(20);LcdCommandWrite(0x0E); // 顯示設置// 開啟顯示屏,光標顯示,無閃爍delay(20);LcdCommandWrite(0x01); // 屏幕清空,光標位置歸零delay(100);LcdCommandWrite(0x80); // 顯示設置// 開啟顯示屏,光標顯示,無閃爍delay(20);}void loop (void) {LcdCommandWrite(0x01); // 屏幕清空,光標位置歸零delay(10);LcdCommandWrite(0x80+3);delay(10);// 寫入歡迎信息LcdDataWrite('W');LcdDataWrite('e');LcdDataWrite('l');LcdDataWrite('c');LcdDataWrite('o');LcdDataWrite('m');LcdDataWrite('e');LcdDataWrite(' ');LcdDataWrite('t');LcdDataWrite('o');delay(10);LcdCommandWrite(0xc0+1); // 定義光標位置為第二行第二個位置LcdDataWrite('g');LcdDataWrite('e');LcdDataWrite('e');LcdDataWrite('k');LcdDataWrite('-');LcdDataWrite('w');LcdDataWrite('o');LcdDataWrite('r');LcdDataWrite('k');LcdDataWrite('s');LcdDataWrite('h');LcdDataWrite('o');LcdDataWrite('p');delay(5000);LcdCommandWrite(0x01); // 屏幕清空,光標位置歸零delay(10);LcdDataWrite('I');LcdDataWrite(' ');LcdDataWrite('a');LcdDataWrite('m');LcdDataWrite(' ');LcdDataWrite('h');LcdDataWrite('o');LcdDataWrite('n');LcdDataWrite('g');LcdDataWrite('y');LcdDataWrite('i');delay(3000);LcdCommandWrite(0x02); //設置模式為新文字替換老文字,無新文字的地方顯示不變。
delay(10);LcdCommandWrite(0x80+5); //定義光標位置為第一行第六個位置delay(10);LcdDataWrite('t');LcdDataWrite('h');LcdDataWrite('e');LcdDataWrite(' ');LcdDataWrite('a');LcdDataWrite('d');LcdDataWrite('m');LcdDataWrite('i');LcdDataWrite('n');delay(5000);}////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////////int DI = 12;int RW = 11;int DB[] = {3, 4, 5, 6, 7, 8, 9, 10};//使用數組來定義總線需要的管腳int Enable = 2;void LcdCommandWrite(int value) {// 定義所有引腳int i = 0;for (i=DB[0]; i <= DI; i++) //總線賦值{digitalWrite(i,value & 01);//因為1602液晶信號識別是D7-D0(不是D0-D7),這裡是用來反轉信號。
value >>= 1;}digitalWrite(Enable,LOW);delayMicroseconds(1);digitalWrite(Enable,HIGH);delayMicroseconds(1); // 延時1msdigitalWrite(Enable,LOW);delayMicroseconds(1); // 延時1ms}void LcdDataWrite(int value) {// 定義所有引腳int i = 0;digitalWrite(DI, HIGH);digitalWrite(RW, LOW);for (i=DB[0]; i <= DB[7]; i++) {digitalWrite(i,value & 01);value >>= 1;}digitalWrite(Enable,LOW);delayMicroseconds(1);digitalWrite(Enable,HIGH);delayMicroseconds(1);digitalWrite(Enable,LOW);delayMicroseconds(1); // 延時1ms}void setup (void) {int i = 0;for (i=Enable; i <= DI; i++) {pinMode(i,OUTPUT);}delay(100);// 短暫的停頓後初始化LCD// 用於LCD控制需要LcdCommandWrite(0x38); // 設置為8-bit接口,2行顯示,5x7文字大小 delay(64);LcdCommandWrite(0x38); // 設置為8-bit接口,2行顯示,5x7文字大小 delay(50);LcdCommandWrite(0x38); // 設置為8-bit接口,2行顯示,5x7文字大小 delay(20);LcdCommandWrite(0x06); // 輸入方式設定// 自動增量,沒有顯示移位delay(20);LcdCommandWrite(0x0E); // 顯示設置// 開啟顯示屏,光標顯示,無閃爍delay(20);LcdCommandWrite(0x01); // 屏幕清空,光標位置歸零delay(100);LcdCommandWrite(0x80); // 顯示設置// 開啟顯示屏,光標顯示,無閃爍delay(20);}void loop (void) {LcdCommandWrite(0x01); // 屏幕清空,光標位置歸零delay(10);LcdCommandWrite(0x80+3);delay(10);// 寫入歡迎信息LcdDataWrite('W');LcdDataWrite('e');LcdDataWrite('l');LcdDataWrite('c');LcdDataWrite('o');LcdDataWrite('m');LcdDataWrite('e');LcdDataWrite(' ');LcdDataWrite('t');LcdDataWrite('o');delay(10);LcdCommandWrite(0xc0+1); // 定義光標位置為第二行第二個位置delay(10);LcdDataWrite('g');LcdDataWrite('e');LcdDataWrite('e');LcdDataWrite('k');LcdDataWrite('-');LcdDataWrite('w');LcdDataWrite('o');LcdDataWrite('r');LcdDataWrite('k');LcdDataWrite('s');LcdDataWrite('h');LcdDataWrite('o');LcdDataWrite('p');delay(5000);LcdCommandWrite(0x01); // 屏幕清空,光標位置歸零delay(10);LcdDataWrite('I');LcdDataWrite(' ');LcdDataWrite('a');LcdDataWrite('m');LcdDataWrite(' ');LcdDataWrite('h');LcdDataWrite('o');LcdDataWrite('n');LcdDataWrite('g');LcdDataWrite('y');LcdDataWrite('i');delay(3000);LcdCommandWrite(0x02); //設置模式為新文字替換老文字,無新文字的地方顯示不變。