系统概要

在该系统中,所用到的技术有ADC、DMA、TIM、USART。有些可以没有必要使用,但为了作为前一段时间的总结,所以把这几种都给使用上了。说一下做这个的思路,之前每一块都已经学习过,并且都已经实现了,所以想着做这个小项目来练练手。在这里面ADC和DMA读取摇杆的位置,TIM用来输出PWM控制LED的亮度,USART串口用来输出打印一些运行时的信息。如下图所示:

系统实现

项目的文件结构图:

看一下项目的主要代码吧!
项目的所有源代码:https://github.com/Dynamicwang/Control-light.git
下面主要来看一下主函数(main.c):

#include "usart.h"
#include "TIM.h"
#include "adc.h"u8 Input_Value = 0;
extern uint16_t Conver_Value[10];
int i;
float temp;void Init(void)
{USART1_Config();TIM3_Config(1000);ADC1_Config();
}int main(void)
{Init();ADC_SoftwareStartConvCmd(ADC1,ENABLE);while(1){temp = 0;for(i = 0;i < 10;i++){temp += Conver_Value[i];}temp = temp * 3.3 /40960 *1000;TIM3_Config((int)(temp/3300 * 1000));}
}void USART1_IRQHandler(void)
{if(USART_GetITStatus(USART1,USART_IT_RXNE) == SET){USART_ClearFlag(USART1,USART_FLAG_RXNE);Input_Value = USART_ReceiveData(USART1);}
}

在主函数中,我们首先初始化各个文件中的配置,然后ADC软件触发,主函数进入死循环,轮询操作。首先我们将ADC采集的十次摇杆的值进行求和。求完和后对该数值进行转换。最后将计算的值归一化到0-1000范围内,最后一步配置TIM输出的PWM的高电平持续时间。

摇杆控制LED灯的亮度相关推荐

  1. Arduino小白学习记录:用电位器控制LED灯的亮度

    Arduino小白的学习记录:用电位器控制LED灯的亮度 一.介绍 二.材料准备 三.实验原理 四.实验步骤 五.代码 六.效果展示 七.总结分析 我是一个纯Arduino小白,为了完成老师安排的一个 ...

  2. 自动感光调节LED灯亮度C语言程序,PWM控制LED灯的亮度(C 语言)

    控制LED灯的亮度,通过调节电压的方式可以达到,但不理想,而且可调的范围很小,电压稍高,还容易把LED烧毁,唯一可行的方法就是通过PWM(脉冲宽度调节)来控制其亮度. 以下程序是在单片机中控制LED. ...

  3. Arduino系列之米思齐旋钮控制LED灯亮度

    Arduino系列之旋钮控制LED灯亮度 实验原理 电位器的旋钮旋转时改变电阻从而控制LED灯的亮度! 实验所需材料 arduino开发板,LED灯,电位器,1602液晶显示器,杜班线很多根,公母线很 ...

  4. Arduino基础入门篇10—电位器控制LED灯

    本篇介绍Arduino模拟输入功能,通过读取电位器输入的电压值来控制LED灯的亮度. 模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚.它可以将 ...

  5. 支付宝小程序控制硬件②】 全网首篇,个人支付宝小程序控制智能硬件esp8266,从设计电路到设计协议控制两盏LED灯调节亮度。

    本系列属于支付宝小程序控制智能硬件 esp8266等芯片的思路编程,欢迎大家点点手指关注我半颗心脏,博客文章列表干货多多,有任何疑问评论区留言,第一时间看到回复! [支付宝小程序控制硬件①] 申请个人 ...

  6. Arduino光敏传感器控制LED灯亮度

    Arduino光敏传感器控制LED灯亮度 目标一: 通过光敏传感器,使得LED亮度根据环境亮度自动调节,环境亮度低则LED灯更亮些 光敏传感器: 光敏传感器共有四个端口: AO:模拟信号输出 DO:T ...

  7. arduino红外遥控控制LED灯亮度

    红外接收和红外发射 vcc接5v或者3.3v 红外接收头的接线 IRremote库安装 如果下面运行版本报错请下载第一点的版本比如2.x.x 获取遥控器按键的值 /* 红外遥控,通过串口查看每个按钮对 ...

  8. Arduino 按钮控制LED灯亮度

    按下按钮开关可以打开LED灯 再按一遍关闭LED灯 长按按钮可以调节LED灯的亮度 再关闭可以保持当前选择的亮度. //LED是9 , BUTTON是2 int val = 0; //存储输入引脚状态 ...

  9. 利用声音传感器控制led灯功能_云中树莓派(4):利用声音传感器控制Led灯

    1. 声音传感器及其配置 声音传感器如下图所示: 将 VCC 引脚接入树莓派 5V 引脚,将 GND 引脚接入树莓派 GND 引脚,将 OUT 引脚接入树莓派 GPIO20. 要注意,模块在环境声音强 ...

最新文章

  1. Redis 5.0.3默认配置启动报错解决方法
  2. 【学习笔记】CO内部订单
  3. C++虚函数---我的理解
  4. 【数据库系统】数据库系统的模式分层与数据独立性
  5. html5详细的中文手册,Web前端
  6. 利用Ninject实现依赖注入
  7. Redis分布式缓存安装和使用
  8. 个性化音乐推荐系统 协同过滤推荐算法在在线音乐播放系统中的应用 基于用户/项目的协同过滤推荐算法 混合协同过滤推荐算法 协同过滤混合推荐算法 代码实现开发 程序实现开发
  9. Windows开启网络对时方法
  10. 简单 申请 msn.com邮箱 @
  11. 数美滑块,js逆向:★★★★
  12. 程序员最喜欢的4个编辑器!码农出品,必属精品!
  13. Excel 模拟form表单提交
  14. 第六章、支付结算业务的核算
  15. 百度的专业检索方法(我们所不知道的搜索语法)
  16. 阿里云轻量服务器使用一年使用体验(个人心得,仅供参考)
  17. Forecasting Principles And Practice(预测,方法与实践在线阅读)
  18. 计算机网络 英文笔记本,笔记本的英文是什么
  19. 小红书爆款笔记运营攻略
  20. 网络应用之javascript循环语句

热门文章

  1. 作者:寇纲(1975-),男,博士,西南财经大学工商管理学院教授、博士生导师、执行院长...
  2. JAVA——附加作业3——订阅报刊杂志
  3. 笨小猴(洛谷P1125题题解,Java语言描述)
  4. 巧用HashSet装载非重数据(洛谷P2250题题解,Java语言描述)
  5. linux 创建一个垃圾篓防误删及其误删文件恢复
  6. MySQL安装 - Linux7下. rpm方式安装
  7. Simple Web Server
  8. xib cell用法
  9. hibernate 使用别名查询
  10. silverlight 上下标