STM32 cubeMX 光敏电阻AD转化实验

文章代码使用 HAL 库。

文章目录

  • 前言
  • 一、光敏电阻介绍
  • 二、光敏电阻原理图解析
  • 三、ADC采样介绍
      • 1. 工作原理:
      • 2. ADC精度:
  • 四、STM32 cubeMX配置ADC采样
  • 五、代码编写
  • 总结

前言


  • 实验开发板:STM32F051K8。
  • 所需软件:keil5 , cubeMX 。
  • 实验目的:了解 cubeMX 定时器 的配置和使用。

一、光敏电阻介绍

光敏电阻模块,也称为光敏电阻传感器或光敏电阻模块,是一种用于检测光照强度变化的传感器设备。它通常由光敏电阻元件,调节电阻,输出电路组成,可以方便地与微控制器或其他电子设备连接,用于在光照条件变化时输出相应的电信号。

二、光敏电阻原理图解析

光敏电阻连接到了A1端口:
在这里插入图片描述

A1端口是开发板上的PA4端口:
在这里插入图片描述

三、ADC采样介绍

当涉及模拟信号(例如声音、光线、温度等)需要在数字系统(如计算机或微控制器)中进行处理时,需要将其转换为数字形式。模拟-数字转换器(ADC)负责执行这一过程。

1. 工作原理:

  1. 采样: 这是ADC的第一步,它连续或间断地测量输入模拟信号的值。在这个阶段,ADC以一定的时
    间间隔对模拟信号进行采样。
  2. 量化: 采样得到的模拟信号需要被量化。量化过程将连续的模拟信号转换为离散的数字值。ADC根
    据采样时的精度将信号转换为对应的数字表示,例如,8位、10位、12位或更高的精度。
  3. 编码: 编码将量化的样本转换为二进制数字。这个数字代表了信号的大小,以便在数字系统中进行
    处理和存储。

2. ADC精度:

ADC(模拟-数字转换器)精度是指ADC输出的数字值与实际模拟输入之间的差异程度。精度是ADC性能的一个重要指标,通常以位(bits)为单位表示。更高的精度通常意味着更准确的数字表示。

  1. 位数: 精度通常以位数表示,比如8位、10位、12位等。一个N位的ADC可以表示2^N个不同的数
    字值。例如,一个10位ADC可以表示2^10(1024)个不同的数字。
  2. 分辨率: 分辨率是指ADC能够将模拟输入范围分成多少个离散的步骤。与位数直接相关,分辨率越
    高,ADC能够区分的模拟输入的微小变化就越多。

四、STM32 cubeMX配置ADC采样

在这里插入图片描述

五、代码编写

通过 AD 转换将光敏电阻的模拟信号转化为数字信号。

int adc_val = 0;// ADC 开启
HAL_ADC_Start(&hadc);// 获取 ADC 值
adc_val = HAL_ADC_GetValue(&hadc);
printf("adc_val : %d\r\n", adc_val);HAL_Delay(1000);		// 每一秒打印一次ADC值

示例:
在这里插入图片描述


总结

下一篇文章为大家介绍 stm32 温湿度模块。

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

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

相关文章

SQLServer 2012重启服务后,自增1的标识列一次增长了1000左右

sql2012我重启了下sql服务,然后自增列Id居然一下子跳了1000,怎么回事啊?如果第一条数据是1,我重启服务,再添加就是1001,如果继续添加不重启服务的话就是1002,如果再次重启的话就是2001.重启下就…

Sphinx+MySQL5.1x+SphinxSE+mmseg

一.不停止mysql的情况下安装SphinxSE1.确定mysql版本,下载对应源码包此处下载5.1.69的mysql源码包#wget ftp://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.1/mysql-5.1.69.tar.gz 解压2.下载sphinx:#wget http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz 解压3.拷贝m…

Python3实现从txt文件中读取指定行的方法

Python3实现从txt文件中读取指定行的方法 本文实例讲述了Python3实现从文件中读取指定行的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;def getline(the_file_path, line_number):if line_number < 1:return for cur_line_number, line in enumerate(open(the…

tls握手浅析

首先上图&#xff1a; tcp三次握手完毕 tls&#xff1a; 1、client hello client random 支持的tls 支持的算法 2、server hello server random 选择的tls协议 选择的算法 证书 公钥 3、client 公&#x1f511;加密后的。 premaster secret server 私钥解密得到 premas…

第二题:坦克游戏1.0(方法:动态规划)

stO 在此给某位靠打01背包处理射程并AC的大神跪了 Orz 问题描述&#xff1a; henry公司最近推出了一款新的坦克游戏。在游戏中&#xff0c;你将操纵一辆坦克&#xff0c;在一个NM的区域中完成一项任务。在此的区域中&#xff0c; 将会有许多可攻击的目标&…

ip、子网掩码、网络地址、广播地址、主机数公式

了解ip地址组成 IP地址&#xff1a;4段十进制&#xff0c;共32位二进制&#xff0c;如&#xff1a;192.168.1.1 二进制就是&#xff1a;11000000&#xff5c;10101000&#xff5c;00000001&#xff5c;00000001 子网掩码可以看出有多少位是网络号&#xff0c;有多少位是主机号…

linux 使用systemctl 设置java进程开机启动,管理springboot开机进程

该过程默认已经安装jdk。java程序启动方式有多重&#xff0c;列出如下几种。 1、java -jar demo.jar 使用该命令程序在控制台输出启动&#xff0c;当按下CtrlC和关闭终端时&#xff0c;程序会终止。输出日志&#xff0c;在后面加上 > 文件名&#xff0c;如&#xff1a;java…

golang开发环境配置及Beego框架安装

配置环境&#xff1a;Windows7推荐IDE&#xff1a;LiteIDEGO下载地址&#xff1a;http://www.golangtc.com/downloadBeego开发文档地址&#xff1a;http://beego.me/docs/intro/ 安装步骤&#xff1a; 一、GO环境安装 二、配置系统变量 三、Beego安装 一、GO环境安装 根据上…

svn迁移到git

步骤命令如下&#xff1a; > git svn clone https://svn-url/ProjectName --no-metadata --authors-fileuser.txt --trunk/ --tagstags --branchesbranches --ignore-refsrefs/remotes/ProjectName-.* > cd ProjectName> git remote rm origin> git remote add or…

Apache基础安装(一)

一、下载安装软件包安装[rooteric6 home]# mkdir -p /home/tools[rooteric6 tools]# wget http:#mirror.esocc.com/apache/httpd/httpd-2.2.25.tar.gz[rooteric6 tools]# tar -zxvf httpd-2.2.25.tar.gz[rooteric6 tools]# cd httpd-2.2.25[rooteric6 httpd-2.2.25]# ./configu…

Supervisor管理springboot应用进程

目录 概述环境准备spring boot应用supervisor配置启动应用 概述 前面博文介绍了Supervisor进程管理,实际应用可以对springboot应用进行管理,如果springboot应用挂掉,Supervisor还可以对它进行自动重启. 点击查看进程管理利器Supervisor--入门简介 点击查看进程管理利器Supervi…

yolo 视频场景行为数据集

1 HOLLYWOOD2 https://www.di.ens.fr/~laptev/actions/hollywood2/ 动作样本&#xff08;15Gb&#xff09; | 场景样本&#xff08;25Gb&#xff09; 包含了 12 个动作类别和 10个场景共3669个样本&#xff0c;所有样本均是从69部 Hollywood 电影中抽取出来的。视频样 2 IXM…

JS只能输入数字,数字和字母等的正则表达式

1.只能输入英文  <input type"text" οnkeyup"valuevalue.replace(/[^a-zA-Z]/g,)"> 2.只能输入中文、英文、数字、符号和.符号 <input type"text" οnkeyup"valuevalue.replace(/[^a-za-z0-9u4e00-u9fa5.]/g,)"> 3.只能…

iOS 文件和数据管理 (可能会删除本地文件储存)

转自&#xff1a;http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/FilesandNetworking/FilesandNetworking.html 文件和数据管理 iPhone OS系统上的文件和用户的媒体数据及个人文件共享闪存上的空间。出于安全的目…

对称加密1

<?php /*** client* rsa aes md5签名*/ $serect 范英刚; $appkey 1248995523; //url $url "127.0.0.1?"; //参数 $params array(); $params[appkey] $appkey; $params[name] shiyi; $params[password] fyg666666; $params[time] time(); //http请求参…

Opencv 深度学习识别性别和检测年龄

目录 1基于CNN的性别分类建模原理 1.1 人脸识别 1.2 性别预测 1.3 年龄预测 1.4 结果 2 代码 参考 本教程中&#xff0c;我们将讨论应用于面部的深层学习的有趣应用。我们将估计年龄&#xff0c;并从单个图像中找出该人的性别。模型由GilLevi和TalHassner训练&#xff0…

Golang类型转换

类型转换 1、int转string strconv.Itoa(i)2、string转int i, err strconv.Atoi(s) 或者 i, err ParseInt(s, 10, 0) 3、string转float f, err ParseFloat(s, 32) 4、用户结构类型转换 userinfo : this.GetSession("userinfo")if userinfo nil {return}user : …

include和require区别

很多时候需要函数重用&#xff0c;引用其他文件中的函数。这时候就用到了以下几种方式。 include和require的区别&#xff1a; includerequire引用时在使用时候加载在初始时加载异常如果加载的文件不存在会报出一个警告程序继续运行加载的文件不存在会报出一个致命的错误 使用…

Ubuntu设置国内阿里云镜像源,加速apt-get下载速度

在VM虚拟机中安装了Ubuntu16.04LTS系统&#xff0c;通过apt或apt-get命令安装包&#xff0c;下载速度很慢&#xff0c;因为系统自带的下载源的服务器在国外。可以将下载源切换为国内的镜像源&#xff0c;比如说阿里云镜像&#xff0c;https://developer.aliyun.com/mirror/ubun…

结构体和联合体

结构体&#xff1a; 8个为一个内存地址 依次向下 联合体&#xff1a; 共用一块内存地址 调试可以gcc -g -o输出编译。然后gdb执行 d打断点。n下一行。p输出。查看每一个所占的内存地址 宏定义和使用 #define 宏名称 “实现什么东西” 大小端 可以自行判断自己电脑 摘自…