00 一些概念
- CH340 驱动 。用于USB转串口的CH340芯片支持的平台驱动齐全,支持 Windows/Linux/Android/MacOS/WinCE 等操作系统。(通常副厂的Auduino UNO使用CH340芯片,电脑里可能没有这个驱动)
01 说明
02 点灯
- setup(): 这个函数是开始的时候运行一次
- loop():这个函数是执行函数,会不断循环工作
- pinMode(pin,mode): 将数字10口指定为输入或输出
- digitalwrite(pin,value): 将数字10口输出高电平或低电平
- delay(ms):暂停执行多少毫秒
- 在英文输入状态时,; 分号是作为结束符用
- 在英文输入状态时,//是用作单行注释
1 | // C++ code |
03 HelloWorld
- Serial:串口通信,即两个设备之间通过串口连接,通过串口发送数据,实现数据传输。
- 波特率:单片机或计算机在串口通信时的速率,即每秒发送或接收的字节数。
一定要保持通信设备的波特率一直,不然无法通信
- Serial.begin(baudrate);:设置波特率baudrate,9600为默认值,115200为最大值。
- Serial.read():读取串口数据并返回。
- Serial.read() == ‘a’ 判断串口输入是否为a
- Serial.println();从串行端口输出字符串,并换行
if(表达式){语句}
if 表达式为真,执行语句
1 | // C++ code |
04 数字I/O口的外部电路(输入与输出)
- 0 ~ 13口是arduino数字I/O的输入和输出
- 0、1 一般作为串口通信使用,不接其他设备
- digitalRead() 读取引脚电平,返回高低 HIGH、LOW
- 输入端接法:利用电阻两端的电位差作为输入信号
- 输出端:单片机的负载能力有限,利用好限流电阻和隔离
1 | // C++ code |
05 变量与按钮防抖
- 全局变量:整个程序都有效的变量
- 局部变量:会在其所属的函数或者循环结束后消亡
- if() 函数里面可以嵌套多层函数
- = 号,代表赋值
- == 号,代表比较
1 | int x=0 |
06 模拟输入与输出
- A0 ~ A5 是arduino模拟输入的引脚
- 3、5、6、9、10、11是arduino模拟输出的引脚
- arduino模拟输入时感应电位器的电压在0
5V之间,模拟输出时输出的电压在05V之间 - analogRead(pin):读取模拟输入引脚pin的电位,返回0-1023
- analogWrite(pin,value):将模拟值(PWM波)输出到引脚,PWM的信号频率约为490赫兹。value范围0-255,对应的电压0-5V
- map函数(看注释)
1 | // C++ code |
07 呼吸灯
- for(初始表达式;条件表达式;递增表达式){ 循环体; }
1 | // C++ code |
08 子函数(自定义函数)
- void method(参数){函数体}
- void 代表函数不返回任何值
- method表示函数名
- 参数:函数的输入参数,可以有多个,用逗号隔开
1 | // C++ code |
09 自定义PWM信号
- PWM:Pulse Width Modulation,脉冲宽度调制。即占空比控制,即控制输出的信号的宽度。
- Arduino UNO板数字信号侧有 ~符号,表示这些引脚可以输出PWM信号。即3、5、6、9、10、11脚
- 此例使用2号引脚“模拟”PWM。
- delayMicroseconds(),暂停微妙,,即百万分之一秒
- unsigned long 代表无符号长整型,即无符号的64位整数
- millis(),返回晶片从开始运行到目前所经过的毫秒数 ms。该参数溢出大概需要50天
1 | // |
10 光控灯
- 模拟量与数字量。光敏电阻反馈的是模拟量,按钮开关反馈的是数字量
1 | int y = 0; |
11 舵机(调用库文件)
- 舵机是可以控制的电机,即伺服电机“青春版”。通电时不可手动转动。
- 在上传代码时,需先断开舵机连接
- attach(pin):将引脚连接到舵机,pin为舵机引脚(仅9、10口)
- detach():断开舵机引脚连接。该接口可继续被用作PWM接口
- attached():判断舵机引脚是否连接
- write(angle):将舵机转到指定角度,角度为0-180,0为舵机中线,正负为舵机正负转
- read():读取舵机当前的角度,返回值为0-180,0为舵机中线,正负为舵机正负转
- 循环中需考虑舵机转动时间
1 |
|
12 舵机自定义输出引脚
- 使用PWM方式控制舵机,实现类似调用库的效果
1 | int pin = 2; |
13 步进电机的接线与驱动
(Tinkercad无类似步进电机进行模拟)
1 | int a1 = 2; |
14 红外遥控
- 需先安装库文件。在IDE中搜索:IRremote。暂用2.0.1版本,最新4.4.1
1 |
|