Download presentation
Presentation is loading. Please wait.
1
动手玩转Arduino (三) 串口输入输出
2
串口通信 串口通信(Serial Communication)是Arduino和计算机间按位进行数据传输的一种最基本的方式。 使用3根线完成
地线,GND 发送,Tx 接收 ,Rx 主要参数 波特率:通信速度,表示每秒钟传送的位(bit)的个数 数据位 停止位 奇偶校验位
3
Arduino 串口 USB转串口 串口引脚 串口数目 串口初始化函数 PC端:串口 Arduino端:USB RX:Pin 0
TX:Pin 1 串口数目 Arduino MEGA和Arduino 2560:4个 其余:1个 串口初始化函数 Serial.begin(speed) speed: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 通常在 setup() 函数里调用
4
Arduino 串口输出 将数据从Arduino传输到PC 串口输出函数 TX 串口转USB PC端软件串口监视软件
Arduino IDE自带串口监视软件 也可以用其它软件进行接收:Flash, Processing, Director, vvvv等 串口输出函数 Serial.print(val), Serial.println(val) 输出ASCII码(后者多一个回车换行) Serial.print(val, format) , Serial.println(val, format) 按指定格式输出(后者多一个回车换行)
5
Serial.print(val) 实例 Serial.print(78) Serial.print(1.23456)
输出"78" Serial.print( ) 输出"1.23" Serial.print(byte(78)) 输出“N” (N的ASCII码值为78)) Serial.print('N') 输出"N" Serial.print("Hello world.") 输出"Hello world."
6
Serial.print(val, format) 实例
Serial.print(78, BYTE) 输出"N" Serial.print(78, BIN) 输出" " Serial.print(78, OCT) 输出"116" Serial.print(78, DEC) 输出"78" Serial.print(78, HEX) 输出"4E" Serial.print( , 0) 输出"1" Serial.print( , 2) 输出"1.23" Serial.print( , 4) 输出"1.2346"
7
动手
8
动手 尝试输出更多格式的数据到计算机 Serial.print(78) Serial.print(1.23456)
Serial.print(byte(78)) Serial.print('N') Serial.print("Hello world.") Serial.print(78, BYTE) Serial.print(78, BIN) Serial.print(78, DEC) Serial.print(78, HEX) Serial.print( , 2)
9
串口液晶模块 波特率9600 命令格式 操作命令 一个完整命令的例子
所有对该液晶屏进行控制的串口命令都以字符”$”开始,以回车换行”\r\n”结束,两者之间是相应的命令和参数,不同的命令具有不同的参数。 操作命令 光标移动 :GO<空格>行<空格>列 行和列均从1开始 GO 1 1 在当前光标位置上显示字符串 PRINT<空格>字符串 PRINT Hello Arduino 清屏:CLEAR 将光标移回到屏幕左上角的初始位置:HOME 设置光标效果:CURSOR<空格>显示<空格>闪烁 第一个参数为是否显示光标(1和0) 第二个参数为是否闪烁(1和0) CURSOR 1 1 一个完整命令的例子 Serial.print("$PRINT Flamingo EDA\r\n"); Serial.println("$PRINT Flamingo EDA");
10
动手 要求:清屏后在屏幕上的第二行第二列开始显示字符串Arduino Club 提示 在loop的最后加delay防止闪烁
在下载代码的时候不能接显示屏
11
Arduino 串口输入 串口队列(Buffer) 串口输入函数 PC和Arduino间的缓冲区 Serial.available()
返回值:当前可读的数据数目 Serial.read() 如果串口没有数据可读,返回 -1 如果串口有数据可读,返回第一个字符,并从串口队列中取出 Serial.peek() 如果串口没有数据可读,返回-1 如果串口有数据可读,返回第一个字符,但不从串口队列取出,因此下次还能读到 Serial.flush() 清空串口队列
12
动手
13
作业 从串口输入以$开始,以回车换行(\r\n)的命令,对其进行解析, 控制指定数字I/O引脚上的LED, 控制指定PWM端口上的LED亮度
第一个参数为引脚号,第二个参数为亮灭 $D 2 1\r\n $D 3 0\r\n 控制指定PWM端口上的LED亮度 第一个参数为引脚号,第二个参数为亮度值 $P 6 128\r\n
14
基于串口的电子积木(一) 蓝牙串口模块 串行液晶显示屏 无线数据传输模块 字符型 1602 LCD APC220 USB转串口适配器
RS485串口模块 MAX232 串口模块
15
基于串口的电子积木(二) 串口RFID模块 10cm 串口RFID模块 6cm XBee USB 适配器
16
谢谢!
Similar presentations