Arduino双色LED实验记录

news2024/9/22 21:20:53

接线图片:

双色LED实物和布线有区别:

代码:


int RED_LED = 11; //设置红色为11
int GREEN_LED = 10; //设置绿色为10
int val = 0;//全局变量val
void setup() {
  // put your setup code here, to run once:
  pinMode(RED_LED,OUTPUT);//引脚配置
  pinMode(GREEN_LED,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  for(val=255; val>0; val--){
    analogWrite(RED_LED,val);
    analogWrite(GREEN_LED,255-val);
    delay(30);
  }
  for(val=0; val<255; val++){
    analogWrite(RED_LED,val);
    analogWrite(GREEN_LED,255-val);
    delay(30);
  }
}

代码函数:

1.pinMode()

通过pinMode()函数,你可以将Arduino的引脚配置为以下三种模式:

  • 输出(OUTPUT)模式

  • 输入(INPUT)模式

  • 输入上拉(INPUT_PULLUP)模式 (仅支持Arduino 1.0.1以后版本)

在输入上拉(INPUT_PULLUP)模式中,Arduino将开启引脚的内部上拉电阻,实现上拉输入功能。一旦将引脚设置为输入(INPUT)模式,Arduino内部上拉电阻将被禁用。

当引脚设置为输出(OUTPUT)模式时,引脚为低阻抗状态。这意味着Arduino可以向其它电路元器件提供电流。也就是说,Arduino引脚在输出(OUTPUT)模式下可以点亮LED或者驱动电机。(如果被驱动的电机需要超过40mA的电流,Arduino将需要三极管或其它辅助元件来驱动他们。)

当引脚设置为输入(INPUT)模式时,引脚为高阻抗状态(100兆欧)。此时该引脚可用于读取传感器信号或开关信号。

注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。

设置引脚为输入上拉(INPUT_PULLUP)模式Arduino 微控制器自带内部上拉电阻。如果你需要使用该内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉(INPUT_PULLUP)模式。

注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。

2.Serial

Arduino需要和其他设备相互通讯,而最常见最简单的方式就是串口通讯(Serial)。

在PC机上最常见的串行通讯协议是RS-232串行协议,而各种微控制器(单片机)上采用的是TTL串行协议,两者电平不同,需要经过相应电平转换才能进行相互通讯。

Serial.begin()描述:开启串口,通常置于setup()函数中。原型:Serial.begin(speed)Serial.begin(speed, config)参数:speed:波特率,一般取值9600,115200等。config:设置数据位、校验位和停止位。默认SERIAL_8N1表示8个数据位,无校验位,1个停止位。返回值:无。

Serial.end() 描述:禁止串口传输。此时串口Rx和Tx可以作为数字IO引脚使用。 原型:Serial.end() 参数:无。 返回值:无。

Serial.print()描述:串口输出数据,写入字符数据到串口。原型:Serial.print(val)Serial.print(val, format)参数:val:打印的值,任意数据类型。config:输出的数据格式。BIN(二进制)、OCT(八进制)、DEC(十进制)、HEX(十六进制)。对于浮点数,此参数指定要使用的小数位数。返回值:返回写入的字节数。

Serial.available()描述:判断串口缓冲区的状态,返回从串口缓冲区读取的字节数。原型:Serial.available()参数:无。返回值:可读取的字节数。

Serial.read()描述:读取串口数据,一次读一个字符,读完后删除已读数据。原型:Serial.read()参数:无。返回值:返回串口缓存中第一个可读字节,当没有可读数据时返回-1,整数类型。

Serial.readBytes()描述:从串口读取指定长度的字符到缓存数组。原型:Serial.readBytes(buffer, length)参数:buffer:缓存变量。length:设定的读取长度。返回值:返回存入缓存的字符数。

3.analogWrite()

将模拟值(PWM波)输出到管脚。可用于在不同的光线亮度调节发光二极管亮度或以不同的速度驱动马达。调用analogWrite()后,该引脚将产生一个指定占空比的稳定方波,直到下一次调用analogWrite()(或在同一引脚调用digitalRead()或digitalWrite())。 PWM的信号频率约为490赫兹。

analogWrite()描述:将模拟值(PWM波)输出到管脚。原型:analogWrite(pin, value)

参数:

pin:输出的引脚号

value:占用空:从0(常关)到255(常开)返回值:无。

引脚5和6的PWM输出将产生高于预期的占空比。这是因为millis()和delay()函数,它们共享同一个内部定时器用于产生PWM输出所产生的相互作用。这提醒我们引脚5和6在多数低占空比的设置(如0- 10)的情况下0数值的结果并没有完全关闭。

4.delay()

delay()函数的工作方式非常简单。它接受单个整数(或数字)参数。此数字表示时间(以毫秒为单位)。当程序遇到这个函数时,应该等到下一行代码。然而,问题是,delay()函数并不是让程序等待的好方法,因为它被称为阻塞(blocking)函数。

原型:delay (ms) ;(其中, ms 是以毫秒为单位暂停的时间(无符号长整型)。)

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

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

相关文章

HCIP总结(一)

抽象语言---编码---二进制---电信号----处理电信号 &#xff08;电脑工作流程&#xff09; OSI参考模型 ----OSI/RM (核心思想&#xff1a;分层) 应用层----提供各种应用服务&#xff0c;将抽象语言转换成编码&#xff0c;提供人机交互的接口 表示层----将编码转换成二进制 …

10个值得收藏的ChatGPT辅助编程技巧

在我们开始之前&#xff0c;你必须先了解编程语言&#xff0c;然后才能相信 ChatGPT 抛给你的任何东西。 我必须明确这一点&#xff0c;因为许多误入歧途的绵羊被告知 ChatGPT 是新的圣杯&#xff0c;开发人员将被淘汰。 推荐&#xff1a;用 NSDT场景设计器 快速搭建3D场景。 使…

Redis学习(三):五大数据类型及常用操作

五大数据类型 Redis-Key set [key] [value] # 向数据库添加一个键值对 keys * # 查看当前数据库所有的键值 EXISTS [key] # 查看key是否存在在当前数据库中&#xff0c;存在返回1&#xff0c;不存在返回0 move [key] [index] # 将key移动到编号为index的数据库&#xff0c;…

Docker(八)---Docker安全相关设定

文章目录一、理解docker安全二、容器资源控制1.cpu资源限制2.cpu优先级3.内存资源限制4.磁盘io限制三、docker安全加固&#xff08;隔离&#xff09;四、容器特权一、理解docker安全 Docker容器的安全性&#xff0c;很大程度上依赖于Linux系统自身&#xff0c;评估Docker的安全…

扬帆优配|多只“迷你基”清盘未果业绩反领跑 盲目追捧有风险

2023年以来&#xff0c;在信创板块一枝独秀的行情下&#xff0c;多只重仓该板块的基金成绩乘着春风起舞&#xff0c;但作为较为小众的职业&#xff0c;现在来看能够真正享受到红利的基金多为迷你基金。有剖析指出&#xff0c;不少“迷你基”经过押注单一赛道或许投资小盘股等方…

【数据库】排名问题

返回第N高的一个解决思路返回N组中的第N高解决思路分数排名解决思路窗口函数数据库经常被用来解决排名问题。 返回第N高的一个 单表查询: 表: Employee------------------- | Column Name | Type | ------------------- | id | int | | salary | int | ----…

HTML DOM 改变 HTML 内容

HTML DOM 允许 JavaScript 改变 HTML 元素的内容。改变 HTML 输出流在 JavaScript 中&#xff0c;document.write() 可用于直接向 HTML 输出流写内容。实例<!DOCTYPE html><html><body><script>document.write(Date());</script></body>&l…

算法分析与设计之并查集详解

算法分析与设计之并查集1.前言2.并查集的基础2.1.关于动态连通性2.2.动态连通性的应用场景&#xff1a;2.3.对问题建模&#xff1a;2.4.建模思路&#xff1a;2.5.API2.7.Quick-Find算法&#xff1a;2.8.Quick-Union算法&#xff1a;3. 并查集的应用1.前言 本文主要介绍解决动态…

day02_设计测试用例的常见方法

软件测试用例 概念&#xff1a;一个为了特定的目的&#xff08;检验开发的代码实现是否满足用户的需求&#xff09;而设计的文档&#xff08;包含测试输入、执行条件、预期结果&#xff09;&#xff0c;文档的形式可以是xmind、excel等。 测试用例的核心要素 常见测试用例的…

Echarts-授人以鱼不如授人以渔

Echarts 授人以渔 授人以鱼不如授人以渔 这篇文章就告诉大家如何快速查阅官网的配置项手册 建议收藏&#xff0c;老司机请跳过 echarts是一个非常强大的图形库 但是对于很多刚入门的小伙伴而言echarts里面配置项海量的名词看到吐血 想要修改样式的时候不知道改哪里 下面就简…

【LeetCode】1653. 使字符串平衡的最少删除次数

1653. 使字符串平衡的最少删除次数 题目描述 给你一个字符串 s &#xff0c;它仅包含字符 ‘a’ 和 b’​​​​ 。 你可以删除 s 中任意数目的字符&#xff0c;使得 s 平衡 。当不存在下标对 (i,j) 满足 i < j &#xff0c;且 s[i] ‘b’ 的同时 s[j] ‘a’ &#xff0…

一次输入多个数据-batchsize大于1的简单的线性回归模型-标量

最简单的线性回归模型-标量 接上篇&#xff0c;由于batchsize为1&#xff0c;因此loss有很大的波动&#xff0c;这篇我们讨论batchsize大于1的情况。若batchsize数量为N&#xff0c;则ywxbywxbywxb的损失函数为&#xff1a; L∑i1N(wxi∗b−yi∗)2(wxTbeT−yT)(wxbe−y)\begin{…

html网页源码加密

html加密、网页加密、网页源码加密html网页源码能加密吗&#xff1f;能加密到何种程度&#xff1f; 某些时候&#xff0c;我们可能需要对html网页源码加密&#xff0c;使网页源码不那么容易被他人获得。出于这个目标&#xff0c;本文测试一种html加密方式。 提前透露&#xf…

Linux系统PWM应用编程

目录应用层如何操控PWM编写应用程序在开发板上测试本章我们将学习如何对开发板上的PWM 设备进行应用编程。 应用层如何操控PWM 与LED 设备一样&#xff0c;PWM 同样也是通过sysfs 方式进行操控&#xff0c;进入到/sys/class/pwm 目录下&#xff0c;如下所示&#xff1a; 这里…

Java多态性

用一句话概括就是&#xff1a;事物在运行过程中存在不同的状态。 多态的存在有三个前提: 1.要有继承关系 2.子类要重写父类的方法 3.父类引用指向子类对 但是其中又有很多细节需要注意。首先我们定义两个类&#xff0c;一个父类Animal&#xff0c;一个子类Cat。 父类Animal cl…

Hive学习——企业级调优

目录 一、计算资源调优 (一)Yarn资源配置——集群 1.Yarn配置说明 (1)yarn.nodemanager.resource.memory-mb (2)yarn.nodemanager.resource.cpu-vcores (3)yarn.scheduler.maximum-allocation-mb (4)yarn.scheduler.minimum-allocation-mb (二)MapReduce资源配置 二、…

裁员降本,扭转颓势!通用汽车吹响智能电动「中国集结号」

2023年&#xff0c;将是合资品牌能否搭上中国智能电动市场红利的关键一年。 全新一代VCS智能座舱&#xff08;高通8155&#xff0c;30英寸6K曲面OLED显示屏&#xff0c;12.6英寸WHUD以及5G版本的别克eConnect车联系统&#xff09;、全新一代Super Cruise超级辅助驾驶系统&#…

7.SpringSecurity中的权限管理

SpringSecurity中的权限管理 SpringSecurity是一个权限管理框架&#xff0c;核心是认证和授权&#xff0c;前面已经系统的给大家介绍过了认证的实现和源码分析&#xff0c;本文重点来介绍下权限管理这块的原理。 一、权限管理的实现 服务端的各种资源要被SpringSecurity的权限…

ccc-pytorch-卷积神经网络介绍(5)

文章目录一、卷积二、池化三、Batch Norm四、经典卷积网络简单介绍一、卷积 卷积连续函数形式&#xff1a; F(x)∫f(t)g(x−t)dtF(x)\int f(t)g(x-t)dtF(x)∫f(t)g(x−t)dt 物理意义是一个函数在另一个函数上的加权叠加。在2D卷积中指卷积核在数据矩阵中分割出的矩阵和卷积核相…

PMP和软考高项集成,更应该考哪个呢?

要看你自己的偏向&#xff0c;要说考的话&#xff0c;我是觉得都值得考的&#xff0c;一个证一份技术嘛。 我给你稍微介绍一下&#xff0c;PMP都是美国PMI发起的考试&#xff0c;软考高项是国内的考试。PMP是项目管理证书&#xff0c;学习的内容是项目管理&#xff0c;包含大约…