当前位置: 首页 > news >正文

Arduino+esp32学习笔记

学习目标:

  • 使用Arduino配置好蓝牙或者wifi模块
  • 学习使用python配置好蓝牙或者wifi模块

学习内容(笔记):

一、 Arduino语法基础


Arduino语法是基于C++的语法,C++又是c基础上增加了面向对象思想等进阶语言。那就只记录没见过的。

  • 单多行注释 // 和 /**/
  • 变量(数字,字符串,布尔,对象)
  • 条件语句 if-else,switch
  • 循环语句 for while
  • 单多维数组 int arr[5]={1,2,3,4,5};
  • 函数 void
    在这里插入图片描述

01、pinMode:设置引脚的输入输出状态

pinMode(pin,Mode):
参数:
Pin:引脚号;
Mode:INPUT、OUTPUT

02、digitalWrite:设置输出引脚的高低电平状态

digitalWrite(pin,value)
参数:
Pin:引脚号 ;
value:HIGH LOW

03、digitalRead:读取引脚的状态,并返回HIGH 或LOW

int digitalRead(pin)
参数:
Pin:引脚号
返回值:
int:1/0

04、analogRead:读出模拟引脚上的电压,并以二进制数值返回(0-1023)对应为0~5v

int analogRead(pin)
参数:
Pin:引脚号
返回值:
二进制数值返回(0-1023)对应为0~5v

05、analogWrite:给PWM引脚输出电压值

analogWrite(pin,value)
参数:
pin:引脚号 ;
value:具体的pwm值,(0~255对应表示一个周期的高电平占空比)

06、shiftOut:将一个字节的数据通过移位的方式逐位的输出

shiftOut(dataPin,clockPin,bitOrder,value)
参数:
dataPin:数据引脚
clockPin:时钟引脚
bitOrder:移位顺序(MSBFIRST-高;LSBFIRST-低)
value:需要进行移位传输的值
说明:
在输出数据时,当一位数据写入数据输出引脚时,时钟引脚将输出脉冲信号,指示该位数据已被写入数据输出引脚等待外设读取。并且在使用本函数之前datapin和clockpin引脚应该设置为输出状态。本函数一次只能输出一个字节的内容,也就是说最大一次只能输出255,如果大于255,就要多次调用这个函数。

07、mills:回传单片机从开始执行到现在目前的时间(单位:ms)

unsigned long mills()
返回值:
unsigned long 单位:ms

08、delay:占用单片机的时间(即延时,单位:ms)

delay(number)
参数:
number:其代表占用单片机的时间长度

09、delay Microseconds:占用单片机的时间(单位:us)

delay Microseconds( number)
参数:
number:其代表占用单片机的时间

10、pulseIn:读取脉冲宽度。 从脉冲状态为state开始,到脉冲状态为~state为止。当然是由时间限制的

pulseIn(pin,state,timeout)
参数:
pin:模拟引脚号
state:读取脉冲的类型(高或者低)
timeout:等待脉冲读取完成的最长时间,如果参数中没有这一个,那么默认就是1min

11、map() 将数字从一个范围重新映射到另一个范围。

函数原型:
map(value, fromLow, fromHigh, toLow, toHigh)
value:要映射的数
fromLow:当前值范围的下限
fromHigh:当前值范围的下限
toLow:目标值范围的下限
toHigh:目标值范围的上限
返回值:映射后的值
eg: (读取IO0的模拟电压(01023),并将其设置到IO9(0255)(其实也就是PWM))
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);

12、串口相关

设置串口波特率:
Serial.begin(9600);

读取某IO口参数:
int buttonState = digitalRead(pushButton);

读取A0脚输入值大小(0-5V对应0~1023):
int sensorValue = analogRead(A0);

串口显示器输出:
Serial.println()

产生pwm信号:
analogWrite(pin, val)//val 是 0~255 的整数值,对应电压从 0 到+5V

二、 面包板和杜邦线(了解)


面包板用来快速搭接电路的工具;
优点:提高实验效率,减少实验故障发生率。
在这里插入图片描述
在这里插入图片描述

杜邦线用来连接元件,分为母母线,公母线,公公线(我目前没遇到过要使用公线的情况,所以买了一些母母线连接)

三、点亮LED测试板子


bug:
上传失败: 未提供上传端口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
拿捏,粉色运行灯,蓝色是D2引脚的LED,板子上只有一个区,所以在代码中直接写整型即可。

//定义LED引脚
int LED_PIN=2;
void setup() {// 开发板通电或者复位后执行,通常用来初始化,只运行一次// 设定引脚为输出模式pinMode(LED_PIN,OUTPUT);// 点亮LEDdigitalWrite(LED_PIN,HIGH);}void loop() {// put your main code here, to run repeatedly://一个死循环,不断的重复运行
}

在这里插入图片描述在这里插入图片描述

http://www.lryc.cn/news/121863.html

相关文章:

  • 计算机网络-专业术语
  • E. Maximum Monogonosity
  • 已解决Excel file format cannot be determined, you must specify an engine manually
  • Centos yum命令大全
  • 内网横向移动—ARP攻击图片捕捉数据劫持DNS劫持
  • react之Hooks的介绍、useState与useEffect副作用的使用
  • django——创建 Django 项目和 APP
  • == 和 equals 的对比 [面试题]
  • SpringBoot集成Redis及Redis使用方法
  • Redis可以用作数据库吗?它的适用场景是什么?
  • @Param详解
  • 自定义分页工具类
  • 文本数据保存
  • Python爬虫:抓取表情包的下载链接
  • (文章复现)基于灰狼算法(GWO)的交直流混合微网经济调度matlab代码
  • 【Kubernetes】Kubernetes的调度
  • 题目:2511.最多可以摧毁的敌人城堡数量
  • 22 | 书籍推荐数据分析
  • vscode extension 怎么区分dev prod
  • Java学习手册——第一篇Java简介
  • Prometheus流程图(自绘)-核心组件-流程详解
  • 回归模型常见评估指标mae,mse,rmse
  • 服务器数据恢复-断电导致ext4文件系统文件丢失的数据恢复案例
  • 链表(基础详解、实现、OJ笔试题)
  • W5100S-EVB-PICO作为TCP Client 进行数据回环测试(五)
  • 大数据-玩转数据-Redis 安装与使用
  • 实时指标-1日留存率
  • 【玩转23种Java设计模式】行为型模式篇:责任链模式
  • 【C#】获取电脑CPU、内存、屏幕、磁盘等信息
  • 途乐证券-最准确的KDJ改良指标?