【深海王国】小学生都能玩的单片机!番外2:Arduino控制其他元器件

news2024/11/24 1:23:30

Hi٩(๑ ^ o ^ ๑)۶, 各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦

(o゜▽゜)o☆ 今天大都督为大家带来单片机的新番外系列——小学生都能玩的单片机!番外2:Arduino控制其他元器件,带你学习如何使用Arduino控制如继电器、舵机、传感器等简单电元件。

(1)Arduino控制继电器开关

之前在语音模块系列章节我们已经详细介绍了继电器,这里就不多说了。
继电器的相关知识,大家可参考↓
小学生都能玩的语音模块?番外1:ASRPRO控制继电器开关

Arduino如何控制继电器:

之前我们介绍过,继电器就相当于一个开关,跟单片机这样接线:
在这里插入图片描述那么就会有问题了,Arduino的什么引脚可以连接继电器的信号线呢?

答案也非常简单,只要能作为数字输出的引脚,都可以控制继电器,或者说,我们控制继电器,本身只需要简单地控制单片机发送一个高/低电平过去就行。

那么Arduino的什么引脚可以作为数字输出呢?
对于Arduino Uno:

  • 数字引脚(0-13): 这些引脚可以配置为输入或输出。使用 pinMode(pin, OUTPUT) 可以将引脚设置为输出。
  • 模拟引脚(A0-A5): 虽然通常用于模拟输入,但这些引脚也可以作为数字引脚(14-19)使用,并且可以配置为输出。

对于Arduino Mega:

  • 数字引脚(0-53): 这些引脚可以配置为输入或输出。同样,使用 pinMode(pin, OUTPUT) 可以将引脚设置为输出。
  • 模拟引脚(A0-A15): 这些引脚也可以作为数字引脚(54-69)使用,并且可以配置为输出。

也就是说基本上Arduino的所有引脚都能用来控制继电器。

碎碎念:

这里再给大家提一句,我们有数字输入数字输出,也有模拟输入,那么我们有没有模拟输出呢?
其实确实有“模拟输出”,通常单片机本身不直接支持模拟输出,但可以通过使用数模转换器 (DAC) 或脉冲宽度调制 (PWM) 方法来生成模拟信号。
那么Arduino的PWM引脚都有哪些呢?还记得不?不记得可以再回忆一下↓

小学生都能玩的单片机?正篇:(2)初识Arduino与基本单片机电路知识
小学生都能玩的单片机!番外1:(4)Arduino Mega2560介绍与使用指南

Arduino与继电器接线:

在这里插入图片描述

如图,这就是Arduino控制单继电器的接线,控制几路继电器,就需要几个数字输出引脚:

Arduino 引脚继电器引脚说明
GNDGND地线
5VVCC电源(可能是5V或3.3V,依继电器而定)
数字引脚(如D10)IN控制信号输入
继电器引脚被控设备说明
NO设备的电源输入正常开路(未激活时不连接)
COM电源或者设备一端通常是常规电源输入
NC设备的电源输入正常闭合(未激活时连接)

控制代码示例:

const int relayPin = 10; // 定义继电器连接的引脚

void setup() {
  pinMode(relayPin, OUTPUT); // 设置引脚为输出模式
  digitalWrite(relayPin, LOW); // 初始状态设为低电平
}

void loop() {
  digitalWrite(relayPin, HIGH); // 打开继电器
  delay(1000); // 延时1秒
  digitalWrite(relayPin, LOW); // 关闭继电器
  delay(1000); // 延时1秒
}

这里给大家解释一下,一些可能看不懂的地方:

  1. int 和 const int
    int是C语言和C++中用来声明整型(整数类型)变量的一个关键字。
    const int用于声明一个不可变(只读)的整型变量,一旦这个变量被初始化后,就不能再改变它的值了。
    简单来说,加了const就类似我们的“仅读文件”,不可更改。
    int适用于需要改变值的变量,例如计数器。const int适用于那些你不希望在程序中被改变的值,例如数学常数、配置参数等。

  2. pinMode()函数
    void pinMode(uint8_t pin, uint8_t mode)函数是 Arduino 编程中用于配置数字引脚(pin)的输入或输出模式的一个函数。上面的代码我们就是将10号引脚设置为了输出模式。
    参数:
    pin: 需要配置模式的引脚编号(通常是一个整数,如 2, 13 等)。
    mode: 要为该引脚设置的模式,它可以是以下几种之一:
    INPUT: 将引脚配置为输入模式。
    OUTPUT: 将引脚配置为输出模式。
    INPUT_PULLUP: 将引脚配置为输入模式并启用内部上拉电阻(抵抗上拉)。

  3. digitalWrite()函数
    void digitalWrite(uint8_t pin, uint8_t val)用于设置引脚的电平状态(即高电平或低电平)。就是用来打开或关闭LED,驱动继电器等的函数。在使用 digitalWrite() 之前,首先需要用pinMode()函数将该引脚设置为输出模式。
    参数:
    pin: 要设置的引脚的编号。例如,数字引脚 2 可以用 2 表示。
    val: 要设置的电平状态,可以是 HIGH 或 LOW。HIGH 对应高电平(通常是 5V 或 3.3V),LOW 对应低电平(通常是 0V)。

因为手边没电源,所以演示效果等过几天再给大家放,先在这里插个眼,反正这个代码肯定是没问题的,大家遇到问题文章底下评论就行,我看到就会回复滴。

哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!

(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~

(・ω< )★ 加入深海大家庭,快乐摆烂每一天!

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

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

相关文章

性能测试面试问答题

1、性能测试怎么测试&#xff1f; 性能测试其实就是通过自动化工具模拟多种正常、峰值以及异常负载来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试&#xff0c;二者可结合使用。 性能指标主要有平均响应时间、90%响应时间、吞吐量、吞吐率&#xff0c;每…

基于SpringBoot的私房菜定制上门服务系统的设计与实现pf

TOC springboot512基于SpringBoot的私房菜定制上门服务系统的设计与实现pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域…

图书项目要点

一、搭建项目 使用tarojs/cli进行搭建 taro init [项目名] 二、具体页面 页面声明&#xff1a; 在【app.config.ts】中对主页面进行声明&#xff1a;组件页面可以不用声明 pages: ["pages/index/index",pages/user/index,pages/book/index,], tabbar制作&…

Linux系统编程(14)UDP全双工通信和TCP半双工通信

一、UDP全双工通信 UDP通信基础&#xff1a; recvfrom函数 recvfrom 是一个用于接收数据的函数&#xff0c;&#xff0c;但 recvfrom 不仅接收数据&#xff0c;还可以获取发送数据的地址信息。 ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sock…

【vue3|第25期】Vue3中的useRoute:轻松访问路由信息

日期&#xff1a;2024年8月21日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉在这里插入代码片得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不…

撰写文献综述策略

撰写文献综述 文献综述在形式上与任何其他类型的学术文本没有任何不同&#xff0c;因为它也具有基本部分。每个部分中包含的内容取决于您撰写文献综述的目的&#xff1a; 简介 此部分应明确定义评论的目的和重点。论文&#xff1a;如果您将评论作为毕业论文或学位论文的一部分…

文件IO函数练习

作业&#xff1a;使用write和read完成文件的拷贝。 代码 #include <myhead.h>int main(int argc, const char *argv[]) {int fd open("./1.txt",O_RDONLY);//已只读打开被拷贝文件if(-1 fd){perror("open");return -1;}int fd1 open("./2.…

Python使用QtSide6(PyQt)编写界面

1、安装QtSide6 开始菜单cmd 创建虚拟环境 python -m venv env2 进入虚拟环境 call env2/scripts/activate 安装Pyside6 pip install Pyside6 2、设计Qt界面 打开designer.exe&#xff0c;设计界面 点击菜单【窗体】【View Python Code...】&#xff0c;点击【全部复制】…

论文阅读:MonoScene: Monocular 3D Semantic Scene Completion

论文阅读&#xff1a;MonoScene: Monocular 3D Semantic Scene Completion Abstract MonoScene提出了一个3D语义场景完成&#xff08;SSC&#xff09;框架&#xff0c;其中场景的密集几何形状和语义是从单个单目 RGB 图像中推断出来的。与SC文献不同&#xff0c;我们依靠2.5或…

回归预测|基于北方苍鹰优化NGO-Transformer-GRU组合模型的数据预测Matlab程序多特征输入单输出

回归预测|基于北方苍鹰优化NGO-Transformer-GRU组合模型的数据预测Matlab程序多特征输入单输出 文章目录 前言回归预测|基于北方苍鹰优化NGO-Transformer-GRU组合模型的数据预测Matlab程序多特征输入单输出 一、NGO-Transformer-GRU模型NGO-Transformer-GRU组合模型的数据预测1…

Linux之数字证书

新书速览|Ubuntu Linux运维从零开始学_ubuntu linux运维从零开始学 pdf 下载-CSDN博客 《Ubuntu Linux运维从零开始学&#xff08;Linux技术丛书&#xff09;》(肖志健)【摘要 书评 试读】- 京东图书 (jd.com) 随着网络环境的恶化&#xff0c;人们已经逐渐抛弃网络上面的明文…

嵌入式day32

recvfrom 参数&#xff1a; sockfd //socket的fd buf //保存数据的一块空间的地址 len //这块空间的大小 flags //0 默认的接收方式 --- 阻塞方式 src_addr //用来保存发送方的地址信息 addrlen //表示发送方实际的地址信息大小 返回值&#xff1a; 成功 返回接收到的字…

小米、友邦带领恒指大反攻!

港股三大指数反弹止步2连跌&#xff0c;恒生科技指数一度冲高至2%&#xff0c;恒指收涨1.44%。盘面上&#xff0c;大型科技股多数表现活跃&#xff0c;业绩超预期&#xff0c;小米大涨超8%表现尤其抢眼&#xff0c;京东涨约4%&#xff0c;百度涨1.71%&#xff0c;网易涨2.14%&a…

linux内核编译及驱动程序的添加

内核编译:Makefile 条件编译 先拷贝一个默认的配置到.config (官方所有的默认配置文件在arch/arm/configs下) 我使用的是内核源码顶层目录下的config_mini2440_td35 在Kconfig中定义menuconfig中的可配置选项 make menuconfig //可视化配置菜单 --内核活地图 .config #…

生产者消息可靠性

若支付服务和mq之前网络链接失败/mq挂掉/交易服务挂掉,都有可以让支付订单无法更新,所以导致发送者不可靠,mq本身不可靠,消费者不可靠,消息延迟,针对以下问题 生产者可靠性 支付服务和mq之间有可能连不上,连不上怎么办,可以增加失败重连 配置文件中配置-重连 测试结果…

《黑神话·悟空》主创冯骥:我真的不适合做生物

出品| 木青生信大模型 作者| 穆易青、kimi 头图| 大地老周 引言 《黑神话:悟空》自8月20日全球上线以来,以其震撼的视觉效果和深刻的游戏体验,迅速成为现象级作品。这款游戏不仅创下了450万份的单日销量纪录,更在Steam等平台上取得了前所未有的成功。作为一名热爱游戏的…

SDXS:知识蒸馏在高效图像生成中的应用

人工智能咨询培训老师叶梓 转载标明出处 扩散模型虽然在图像生成方面表现出色&#xff0c;但其迭代采样过程导致在低功耗设备上部署面临挑战&#xff0c;同时在云端高性能GPU平台上的能耗也不容忽视。为了解决这一问题&#xff0c;小米公司的Yuda Song、Zehao Sun、Xuanwu Yin…

财务报表解读指南:关键指标与分析方法详解

一、概述 财务报表中包含了丰富的信息&#xff0c;但如果在分析时缺乏明确的思路或忽略重点&#xff0c;很容易被复杂的数据搞得无所适从。本文将介绍财务报表中的关键指标&#xff0c;包括资产负债率的分析、净资产收益率的解读&#xff0c;以及销售复合增长率的计算&#xf…

如何生成随机数(通过rand函数,srand函数,time函数深入讲解)

目录 1. 随机数的生成 2. srand函数 3. time函数 4. 设置随机数的范围 1. 随机数的生成 既然是猜数字游戏&#xff0c;那么最终的数字答案肯定是重要的&#xff0c;我们要如何实现这个随机数的生成呢&#xff1f; 在这个功能上&#xff0c;C语言提供了一个函数叫rand&…

智算中心算力池化技术深度分析报告

智算中心算力池化技术深度分析 智能算力&#xff0c;人工智能基石&#xff0c;助力构建多要素融合信息基础设施。作为数字经济高质量发展核心引擎&#xff0c;智能算力基础设施建设正迎来高潮。 智算中心&#xff0c;作为集约化算力基础设施&#xff0c;以智能算力为核心&…