ArduinoUNO实战-第七章-PWM调光

ArduinoUNO实战-第七章-PWM调光

目录

概述

通过电位器控制LED的亮度。

脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但宽度不一致的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。

学习目标

学会PWM的使用:PuleWidth Modulation脉冲宽度调制,简称脉宽调制。是利用微处理器的数字输出来模拟电路进行控制的一种非常有效的技术,广泛应用在从测量,通信到功率控制与变换的许多领域中。

脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,由于计算机不能输出模拟电压,而只能输出0V或5V的数字电压值,(0V为0,5V为1)所以通过高分辨率计数器,利用方波的占空比被调制的方法对一个具体模拟信号的电平进行编码。单PWM信号仍然是数字的,因为在给定的任意时刻,只留供电要么是5V(数字值为1),要么是0V(数字值是0)。电压或电流源以一种通(ON)、断(OFF)的重复脉冲序列加到模拟负载上,只要带宽足够,任何模拟值都可以使用PWM进行白拿。

输出的电压值是通过通和断的时间进行计算的,计算公式为:

输出电压=(接通时间/脉冲时间)* 最大电压值

PWM的三个基本参数:

  1. 脉冲宽度变化幅度(最小值/最大值)
  2. 脉冲周期(1秒内脉冲频率个数的倒数)
  3. 电压宽度(例如:0V-5V)

Arduino UNO控制器上有6个PWM的接口分别是数字接口3、5、6、9、10、11

Arduino中的设置PWM的语句:

analogWrite(pin, value);
// pin:用于输入数值的引脚
// value:占空比:0(完全关闭)到255(完全打开)之间

led

www.zeeklog.com  - ArduinoUNO实战-第七章-PWM调光

Mind+开始

www.zeeklog.com  - ArduinoUNO实战-第七章-PWM调光

IDE

/*
  测试PWM控制LED
*/

// 定义一个LED
#define LED 3
// 定义电位器引脚
#define POT A0

// 定义接收电位器的值
int PotBuffer = 0;

// the setup function runs once when you press reset or power the board
void setup() {
  // 打开串口
  Serial.begin(9600);
  // LED设置为输出
  pinMode(LED, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  // 电位器控制led灯亮度
  PwmLed();
}

void PwmLed()
{
  // 读取电位器的值
  PotBuffer = analogRead(POT); 
  PotBuffer = map(PotBuffer, 0 ,1023 , 0, 255);  
  analogWrite(LED, PotBuffer);  
}

此时转到电位器,发现led的亮度会变化。

Read more

超快速,使用ChatGPT编写回归和分类算法

超快速,使用ChatGPT编写回归和分类算法

本文将使用一些 ChatGPT 提示,这些提示对于数据科学家在工作时非常重要。 微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩 以下是一些示例ChatGPT 提示的列表以及数据科学家的响应。 ChatGPT 提示 为决策树回归算法生成 python 代码。 下面是使用scikit-learn在 Python 中进行决策树回归的示例代码: import numpy as np import matplotlib.pyplot as plt from sklearn.tree import DecisionTreeRegressor # Generate random data rng = np.random.default_rng() x = 5 * rng.random(100) y = np.sin(x) + 0.

By Ne0inhk
力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

993.二叉树的堂兄弟节点 难度:简单 题目: 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。 示例: 示例 1: 输入:root = [1,2,3,4], x = 4, y = 3 输出:false

By Ne0inhk
1239.串联字符串的最大长度 关于字符串的回溯算法!

1239.串联字符串的最大长度 关于字符串的回溯算法!

题目: 给定一个字符串数组 arr,字符串 s 是将 arr 某一子序列字符串连接所得的字符串, 如果 s 中的每一个字符都只出现过一次,那么它就是一个可行解。 请返回所有可行解 s 中最长长度。 提示: 1 <= arr.length <= 16 1 <= arr[i].length <= 26 arr[i] 中只含有小写英文字母 示例: 示例 1: 输入:arr = ["un","iq","ue"] 输出:4 解释:所有可能的串联组合是

By Ne0inhk