Arduino+esp32学习笔记

news2025/1/12 1:38:57

学习目标:

  • 使用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);
  // 点亮LED
  digitalWrite(LED_PIN,HIGH);
 
  
}

void loop() {
  // put your main code here, to run repeatedly:
  //一个死循环,不断的重复运行
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/870546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分布式】Viewstamped Replication Revisited

篇前感悟: 阅读分布式系统文章的意义其实并不在于你个人真正地去开发这样一个基于这种协议的系统,因为真正去开发一个高可用的分布式系统实在是太难了(对我来说…)更多的还是汲取其中的思想,包括设计思路,优…

高性能跨平台网络通信框架 HP-Socket v5.9.3

项目主页 : http://www.oschina.net/p/hp-socket开发文档 : https://www.docin.com/p-4478351216.html下载地址 : https://github.com/ldcsaa/HP-SocketQQ Group: 44636872, 663903943 v5.9.3 更新 一、主要更新 问题修复:通过 POST/PUT 等带有请求内容的 HTTP 方…

Vue主面板组件模板(简洁版)

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:🎀源码如下: 🐒个人主页 🏅JavaEE系列专栏 📖前言: 本篇博客主要以介绍【🎀主面板组件模板&#xf…

怎么才能突破认知?别灌鸡汤行吗

怎么才能突破认知?别灌鸡汤行吗? 趣讲大白话:大部分人得一步一步来 【趣讲信息科技254期】 **************************** 孔子说有三种情况: 1生而知之:就是天生就会 2学而知之:需要后天学习 3困而学之&am…

【计算机网络】——数据链路层

二、组帧 1、字符计数法 帧头部使用一个字符来表示帧的大小(包括第一个计数字符) (此处一字符一个字节) 2、字符填充收尾定界法 特定字符来定界帧的首和尾。若帧中数据段出现等同于特定字符的字符内容,前置一个转义字符。(类似于正则表达…

读发布!设计与部署稳定的分布式系统(第2版)笔记30_为部署而设计

1. 部署行为是系统生命的重要组成部分 1.1. 只编写代码是不够的,只要没有在生产环境中运行,一切都不算完成 1.2. 要想取得成功,需要早早地频繁部署软件 1.3. 设计易于部署的软件非常有必要 1.4. 零停机部署就是目标 2. 机器与服务 2.1.…

HTML详解连载(4)

HTML详解连载(4) 专栏链接 [link](http://t.csdn.cn/xF0H3)下面进行专栏介绍 开始喽CSS定义书写位置示例注意 CSS引入方式内部样式表:学习使用 外部演示表:开发使用代码示例行内样式代码示例 选择器作用基础选择器标签选择器举例特…

Linux MQTT智能家居项目(LED界面的布局设置)

文章目录 前言一、LED界面布局准备工作二、LED界面布局三、逻辑实现总结 前言 上篇文章我们完成了主界面的布局设置那么这篇文章我们就来完成各个界面的布局设置吧。 一、LED界面布局准备工作 首先添加LED灯光控制的图标。 将选择好的LED图标添加进来: 图标可以…

gcc及其相关知识

目录 gcc工作流程 静态库的生成和使用(该部分使用g进行代码的编译。 若使用gcc,也类似) 动态库的制作和使用(此处用gcc,g类似) 动态库的命名规则 动态库的制作 动态库的使用 动态库和静态库的优缺点 静…

搭建Synopsis 数字IC IDE开发化境

安装平台信息: VMware15.5和centos7 至于为何要选择如上版本和为何不能直接在物理机上安装还不得而知,只是参考网上的文章是这样做的,先照搬过来,在安装操作中慢慢体会。 安装包内容如下: 使用默认配置,一…

CAN总线一些经典的现场故障

本文分析一些经典的CAN总线现场故障。 1、CAN总线的常见故障 CAN总线错误分析与解决 当CAN总线出现故障或数据传输异常时,往往会出现多种奇怪的故障现象,如仪表板显示异常,车辆无法启动,启动后无法熄灭,车辆动力性能下降,某些电控系统功能失等。 这是因为相关数据或信息…

第二十章 重要HL7操作场景 - 传入消息的双 ACK 序列

文章目录 第二十章 重要HL7操作场景 - 传入消息的双 ACK 序列传出消息的双 ACK 序列配置双 ACK 序列 第二十章 重要HL7操作场景 - 传入消息的双 ACK 序列 对于进入Production的消息,双重确认序列的工作原理如下图所示: 客户端应用程序将消息发送到Produ…

【数据结构•堆】轮廓线

题目描述 轮廓线   • 每一个建筑物用一个三元组表示(L, H, R), 表示左边界, 高度和右边界。   • 轮廓线用X, Y, X, Y…这样的交替式表示。   • 右图的轮廓线为: (1, 11, 3, 13, 9, 0, 12, 7, 16,3, 19, 18, 22, 3, 23, 13, 29, 0) 。   • 给N个建筑,求…

项目架构简介

目录 1 单体应用架构 2 垂直应用架构 3 分布式架构 3.1 RPC 3.2 SOA 4 微服务架构 本文介绍后台应用的各种架构,以及各架构的优缺点对比 1 单体应用架构 将所有的代码功能都写在一个项目中(例如:MVC结构,SSM框架),同时打包,同时部署 优点:便于管理,减少开发、维护、运维成…

GPT内功心法:搜索思维到GPT思维的转换

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

2023国赛数学建模C题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

div 中元素居中的N种常用方法

本文主要记录几种常用的div盒子水平垂直都居中的方法。本文主要参考了该篇博文并实践加以记录说明以加深理解记忆 css之div盒子居中常用方法大全 本文例子使用的 html body结构下的div 盒子模型如下&#xff1a; <body><div class"container"><div c…

docker desktop搭建 nginx

【docker 桌面版】windows 使用 docker 搭建 nginx 拉取 nginx 镜像 docker pull nginx运行容器 docker run -d -p 80:8081 --name nginx nginx本地磁盘创建 nginx 目录 D:\DockerRep\nginx复制 docker 中的 nginx 配置文件 查看运行的容器 docker ps -a docker cp 9f0f82d66dd…

点亮你的第一颗Led灯

1、&#x1f4d5;前言 该系列文章用于记录个人学习stm32单片机的过程&#xff0c;全文搭配图文解说&#xff0c;零基础的萌新也能读懂&#xff0c;欢迎指导讨论~ 2、&#x1f4e6;准备材料 2.1、&#x1f4dd;硬件材料清单 面包板1块 PWLINK PowerWriter仿真器1个 杜…

2023/8/12总结

增加了管理员功能点&#xff1a;&#xff08;管理标签和分类&#xff09; 另外加了一个转换成pdf的功能 主要是通过wkhtmltopdf实现的&#xff0c;之前看过很多说用adobe的还有其他但是都没成功。 然后就是在学习websocket和协同过滤算法实现&#xff0c;还只是初步了解了这些。…