arduino学习笔记-4-串口输出
串口输出
在许多实际应用场合中我们会要求在 Arduino 和其它设备之间实现相互通信,而最常见通常也是最简单的办法就是使用串行通信。在串行通信中,两个设备之间一个接一个地来回发送数字脉冲,它们之间必须严格遵循相应的协议以保证通信的正确性。
在 PC 机上上最常见的串行通信协议是 RS-232 串行协议,而在各种 微控制器(单片机)上采用的则是 TTL 串行协议。由于这两者的电平有很大的不同,因此在实现 PC 机和微控制器的通信时,必须进行相应的转换。完成 RS-232 电平和 TTL 电平之间的转换一般采用专 用芯片,如 MAX232 等,但在 Arduino 上是用相应的电平转换电路来完成的。
实现根据 Arduino 的原理图可以看出,ATmega 的 RX 和 TX 引脚一 方面直接接到了数字 I/O 端口的 0 号和 1 号管脚,另一方面又通过电 平转换电路接到了串口的母头上。因此,当我们需要用 Arduino 与PC 机通信时,可以用串口线将两者连接起来;当我们需要用 Arduino与微控制器(如另一块 Arduino)通信时,则可以用数字 I/O 端口的0 号和 1 号 ...
arduino学习笔记-3-串口输入
串口输入Serial.read()通过串口连接的 Arduino 在交互式设计中能够为 PC 机提供一种全新 的交互方式,比如用 PC 机控制一些之前看来非常复杂的事情,像声音和视频等。很多场合中都要求 Arduino 能够通过串口接收来自于PC 机的命令,并完成相应的功能,这可以通过 Arduino 语言中提供的 Serial.read() 函数来实现。
1234567891011121314151617int ledPin = 13; int val; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { val = Serial.read(); if (-1 != val) //有数据到达时 { if ('H' == val) { digitalWrite(ledPin, HIGH); delay(500); ...
arduino学习笔记-2-数字输出
数字输出Arduino 上一共有12个数字 I/O 管脚,被分成两个部分,其中每个部分都包含有 6 个可 用的 I/O 管脚,即管脚 2 ~ 7 和管脚 8 ~ 13。除了管脚 13上接了一个1K的电阻之外,其他各个管脚都直接连接到ATmega单片机上。
利用一个 6 位的数字跑马灯,来验证 Arduino 数字 I/O 的输出功能。
电路中在每个 I/O 管脚上加的那个 1K 电阻被称为限流电阻,由于发光二极管在电路中没有等效电阻值,使用限流电阻可以使元件上通过的电流不至于过大,能够起到保护的作用。
1234567891011121314151617181920int BASE = 2; int NUM = 6; //脚位数int index = 0; void setup() { for (int i = BASE; i < BASE + NUM; i ++) //定义6个脚位为输出 { pinMode(i, OUTPUT); } } void loop() { for (int i = BASE; i & ...
arduino笔记--常用语句
arduino 笔记–常用语句arduino语言结构void setup()初始化变量,管脚模式,调用库函数等
**void loop() **连续执行函数内的语句
功能数字I/OpinMode(pin, mode)接口定义为输入或输出接口,用在setup()函数里。
数字 IO 口输入输出模式定义函数,
pin表示为 0~13, mode 表示为 INPUT 或 OUTPUT。
1pinMode(7,INPUT); // 将脚位 7 设定为输入模式
digitalWrite(pin, value)将数字接口值至高或 低。
数字 IO 口输出电平定义函数,pin表示为 0~13,value 表示为 HIGH 或 LOW。
比如定义 HIGH可以驱动 LED。
1digitalWrite(8,HIGH); //将脚位 8 设定输出高电位
int digitalRead(pin)读出数字接口的值。
数字 IO 口读输入电平函数,
pin 表示为 0~13,value 表示为 HIGH 或 LOW。比如可以读数字传感器。
1val = digitalRead( ...
arduino学习笔记-1-数字输入
数字输入开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。Arduino 从数字 I/O 管脚上只能读出高电平(5V)或者低电平(0V),通过上 /下拉电阻将开关的开/断状态转变成 Arduino 能够读取的高/低电平。按照电路的不同通常又可以分为正逻辑(Positive Logic)和负逻辑(Inverted Logic)两种。
在正逻辑电路中,开关一端接电源,另一端则通过一个 10K 的下拉电阻接地,输入信号从开关和电阻间引出。当开关断开的时候,输入信号被电阻“拉”向地,形成低电平(0V);当开关接通的时候,输入信号直接与电源相连,形成高电平。对于经常用到的按压式开关来讲,就是按下为高,抬起为低。
在负逻辑电路中,开关一端接地,另一端则通过一个 10K 的上拉电阻接电源,输入信号同样也是从开关和电阻间引出。当开关断开时,输入信号被电阻“拉”向电源,形成高电平(5V);当开关接通的时候,输入信号直接与地相连,形成低电平。对于经常用到的按压式开关来讲,就是按下为低,抬起为高。
范例:验证 Arduino 数字 I/O 的输入功能:将开关接在 Arduin ...
arduino串口函数Serial库
[arduino]串口函数Serial库
Serial.begin(speed)串口波特率定义函数。
开启串行通信接口并设置通信波特率。
一般取值300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200。
speed:速率,长整数型long
Serial.end()禁止串口传输函数
关闭通信串口
Serial.available()判断串口接收缓冲器的状态函数。读取串口接收缓冲器的值(128字节寄存器),以判断数据送达到串口。
判断串口缓冲器是否有数据装入
例:
1234567891011121314151617int incomingByte = 0; // for incoming serial datavoid setup(){ Serial.begin(9600); // opens serial port, sets data rate to 9600 bps}void loop(){// send data only when you receive da ...
HELLO WORD
你好,这里是我的博客,我的第一篇博客。建立一个新的文章1$ hexo new "My New Post"
更多信息: Writing
运行1$ hexo server
更多信息: Server
生成静态文件1$ hexo generate
更多信息: Generating
部署到远程站点1$ hexo deploy
更多信息: Deployment
arduino制作呼吸流水灯
制作呼吸流水灯一、函数analogWrite(pin, value)1.说明:1、将一个模拟数值写进Arduino引脚。
2、Arduino每一次对引脚执行analogWrite()指令,都会给该引脚一个固定频率的PWM信号。
3、在一些基于ATmega168和ATmega328的Arduino控制器中,analogWrite()函数支持以下引脚: 3, 5, 6, 9, 10, 11。
2.参数:pin:被读取的模拟引脚号码value:0到255之间的PWM频率值, 0对应off, 255对应on
3.返回值无
二、接线图如图:
三、代码12345678910void setup(){ //模拟输出 pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT);}
123456789101112//int level=0;//模拟数int por ...
markdown语法
代码块:语法:”```代码类型”
1