当前位置: 首页 > news >正文

江西医院网站建设代做网站名称优化

江西医院网站建设,代做网站名称优化,WordPress怎样交换友链,wordpress支付看文章文章目录1- ADC介绍2- MQ-2烟雾传感器介绍#xff08;1#xff09;工作原理#xff08;2#xff09;MQ-2应用电路3- MQ-2烟雾传感器硬件连接4- ADC驱动配置5- 编程查看当前浓度1- ADC介绍 ADC是Analog-to-Digital Converter的缩写#xff0c;指模数转换器。真实世界的模拟… 文章目录1- ADC介绍2- MQ-2烟雾传感器介绍1工作原理2MQ-2应用电路3- MQ-2烟雾传感器硬件连接4- ADC驱动配置5- 编程查看当前浓度1- ADC介绍 ADC是Analog-to-Digital Converter的缩写指模数转换器。真实世界的模拟信号例如温度、压力、声音或者图像等需要转换成更容易储存、处理和发射的数字形式模数转换器可以实现这个功能。ADC就是数模转换将模拟量转换为数字量。 总之只要是需要模拟信号转为数字信号的场合那么肯定要用到ADC。很多数字传感器内部会集成 ADC传感器内部使用 ADC来处理原始的模拟信号最终给用户输出数字信号。 学习ADC需要注意注意几个参数 分辨率采集精准度的重要因素。就是尺子上的能量出来的最小测量刻度例如我们常用的厘米尺它的最小刻度就是1毫米表示最小测量精度就是1毫米。假如 ADC的测量范围为 0-5V分辨率设置为12位那么我们能测出来的最小电压就是 5V除以 2的 12次方也就是5/40960.00122V。很明显分辨率越高采集到的信号越精确所以分辨率是衡量 ADC的一个重要指标。精度是影响结果准确度的因素之一。经过计算我们 ADC在 12位分辨率下的最小测量值是 0.00122V但是我们ADC的精度最高只能到11位也就是 0.00244V。也就是 ADC测量出0.00244V的结果是要比0.00122V要可靠也更准确。采样时间当 ADC在某时刻采集外部电压信号的时候此时外部的信号应该保持不变但实际上外部的信号是不停变化的。所以在 ADC内部有一个保持电路保持某一时刻的外部信号这样 ADC就可以稳定采集了保持这个信号的时间就是采样时间。采样率也就是在一秒的时间内采集多少次。很明显采样率越高越好当采样率不够的时候可能会丢失部分信息所以 ADC采样率是衡量 ADC性能的另一个重要指标。 2- MQ-2烟雾传感器介绍 1工作原理 MQ-2烟雾传感器属于二氧化锡半导体气敏材料属于表面离子式N型半导体。 处于200~300摄氏度时二氧化锡吸附空气中的氧形成氧的负离子吸附使半导体中的电子密度减少从而使其电阻值增加。当与烟雾接触时如果晶粒间界处的势垒收到烟雾的调至而变化就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息烟雾的浓度越大导电率越大输出电阻越低则输出的模拟信号就越大。 2MQ-2应用电路 MQ-2常用的电路有两种一种使用采用比较器电路监控另一种为ADC电路检测。 以下图中的模块仅有比较器电路ADC部分使用IGKBoard的主控集成的ADC进行检测下文进行详细介绍和使用。 MQ-2的引脚4输出随烟雾浓度变化的直流信号被加到比较器U1A的2脚Rp构成比较器的门槛电压。当烟雾浓度较高输出电压高于门槛电压时比较器输出低电平0v此时LED亮报警当浓度降低传感器的输出电压低于门槛电压时比较器翻转输出高电平VccLED熄灭。调节Rp可以调节比较器的门槛电压从而调节报警输出的灵敏度。 R1串入传感器的加热回路可以保护加热丝免受冷上电时的冲击。 3- MQ-2烟雾传感器硬件连接 GND该引脚要连到开发板的GND扩展引脚上VCC该引脚要连到开发板的 5v 供电引脚上AOUT是MQ-2模块的模拟输出引脚该引脚应该连开发板上ADC功能的GPIO引脚上 在IGKBoard开发板上提供了两个ADC模拟输入的引脚位于开发板的8pin扩展口上其管脚名为TS_XP和TS_YN在Linux系统启动时如果启用了ADC overlay后它俩会默认作为ADC模拟输入口使用。这样MQ-2的AO引脚应该连接上其中之一即可。 4- ADC驱动配置 如果想作为MQ-2的模拟信号采样引脚使用的话我们需要修改开发板上的DTOverlay配置文件添加该引脚的 ADC 支持然后关机重启系统就可以了。 rootigkboard:~# vi /run/media/mmcblk1p1/config.txt # Enable extra overlays dtoverlay_extraadc然后在/sys/bus/iio/devices目录下可以查看到ADC对应的iio设备iio:device0 rootigkboard:/sys/bus/iio/devices# ls iio:device0rootigkboard:/sys/bus/iio/devices/iio:device0# ls buffer in_voltage1_raw in_voltage_scale scan_elements buffer0 in_voltage2_raw name subsystem dev in_voltage3_raw of_node trigger in_conversion_mode in_voltage4_raw power uevent in_voltage0_raw in_voltage_sampling_frequency sampling_frequency_available进入设备我们可以看见很多文件但是我们只关心三个文件 in_voltage1_ra ADC1通道 1原始值文件即**TS_YNGPIO01_IO01**管脚的输入模拟值转换的数字值范围0-4095in_voltage4_raw ADC1通道 4原始值文件即**TS_XPGPIO01_IO04**管脚的输入模拟值转换的数字值范围0-4095in_voltage_scale ADC1比例文件 (分辨率 )单位为 mV。实际电压值 (mV) in_voltage1_raw * in_voltage_scale。 rootigkboard:/sys/bus/iio/devices/iio:device0# cat in_voltage1_raw 1448 rootigkboard:/sys/bus/iio/devices/iio:device0# cat in_voltage_scale 0.805664062当前TS_YN管脚上的实际电压是 1448 * 0.805664062 ≈ 1,166.6 mV即1.1666V MQ-2的浓度值也就可以计算出为 1448/4095 * 100% 35.4% 5- 编程查看当前浓度 还是来说一下流程 第一步肯定要打开我们文件的路径读取文件因为是两个文件直接用一个指针数组因为要每时每刻都需要读取数据所以需要在一个while1循环中进行打开文件读取数据我们可以创建一个自定义函数传进文件路径以及buf保存我们读取的数据当然我们需要将我们读取的字符串数据进行类型转换然后公式计算输出。 #include stdio.h #include stdlib.h #include sys/types.h #include sys/stat.h #include fcntl.h #include errno.h #include unistd.h #include string.h/*我们要访问的文件路径*/ static char *file_path[] {/sys/bus/iio/devices/iio:device0/in_voltage_scale, /sys/bus/iio/devices/iio:device0/in_voltage1_raw, };static int file_data_read(char *filename, char *buf, size_t buf_size) {int ret 0;//打开文件之后的标注值小于0说明文件打开了需要关闭int fd -1;//文件描述符if(!filename || !buf || !buf_size){printf([%s] Error filename or buf or buf_size error\n, __FUNCTION__);return -1;}fd open(filename, O_RDONLY);if(fd 0){printf(Open file %s failure:%s\n, filename, strerror(errno));ret -2;goto CleanUp;}memset(buf, 0, sizeof(buf));fd read(fd, buf, buf_size);if(fd 0){printf(Read file %s failure:%s\n, filename, strerror(errno));ret -3;goto CleanUp;}CleanUp:if (ret 0){close(fd);}return ret; }int main(int argc, char *argv[]) {int raw 0;//原始数据float scale 0;//精度值float act 0;//实际值float conc 0;//浓度值char adc_buf[30] {};while(1){if(file_data_read(file_path[0],adc_buf, sizeof(adc_buf)) 0){printf(Error:Read %s failuere.\n, file_path[0]);}scale atof(adc_buf);//字符串类型转换为浮点数类型printf(scale:%f , scale);if(file_data_read(file_path[1],adc_buf, sizeof(adc_buf)) 0){printf(Error:Read %s failuere.\n, file_path[1]);}raw atoi(adc_buf);//字符串类型转换为浮点数类型printf(raw:%d\n, raw);act (raw*scale)/1000.f;conc ((float)raw/4095.f)*100.f;printf(MQ-2 实际电压%.3fV, 浓度为 %.1f%%\n, act, conc);sleep(1);}return 0; }Makefile文件 CCarm-linux-gnueabihf-gcc APP_NAMEadc_mq2all:clean${CC} ${APP_NAME}.c -o ${APP_NAME}clean:rm -f ${APP_NAME}make之后文件就是在ARM架构上运行的文件啦。 wangdengtaowangdengtao-virtual-machine:~/wangdengtao/tftpboot$ make wangdengtaowangdengtao-virtual-machine:~/wangdengtao/tftpboot$ file adc_mq2 adc_mq2: ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]38c11b2cad6acaa418e19672fba8008004e43b50, for GNU/Linux 3.2.0, not stripped对tftp服务器搭建不了解的可以参考这篇文章wpa_supplicant无线网络配置imx6ull以及搭建tftp服务器 tftp服务器下载到我们的开发板然后运行 rootigkboard:~# tftp -gr adc_mq2 192.168.0.134 rootigkboard:~# chmod ax adc_mq2 rootigkboard:~# ./adc_mq2 scale:0.805664 raw:1029 MQ-2 virtual voltage: 0.829V, concentration: 25.1% scale:0.805664 raw:1029 MQ-2 virtual voltage: 0.829V, concentration: 25.1% scale:0.805664 raw:1029 MQ-2 virtual voltage: 0.829V, concentration: 25.1% 0000scale:0.805664 raw:1224 MQ-2 virtual voltage: 0.986V, concentration: 29.9% 0000scale:0.805664 raw:1329 MQ-2 virtual voltage: 1.071V, concentration: 32.5% 0.scale:0.805664 raw:1385 MQ-2 virtual voltage: 1.116V, concentration: 33.8% .....scale:0.805664 raw:1446 MQ-2 virtual voltage: 1.165V, concentration: 35.3% scale:0.805664 raw:1372 MQ-2 virtual voltage: 1.105V, concentration: 33.5% scale:0.805664 raw:1332 MQ-2 virtual voltage: 1.073V, concentration: 32.5% scale:0.805664 raw:1373 MQ-2 virtual voltage: 1.106V, concentration: 33.5% scale:0.805664 raw:1526 MQ-2 virtual voltage: 1.229V, concentration: 37.3% scale:0.805664 raw:1450 MQ-2 virtual voltage: 1.168V, concentration: 35.4% scale:0.805664 raw:1412 MQ-2 virtual voltage: 1.138V, concentration: 34.5%其实对着我们的烟雾传感器哈一口气都是可以看见变化的。
http://www.dnsts.com.cn/news/167017.html

相关文章:

  • html商城网站模板下载沈阳建设工程信息网官方网站
  • 坪地网站建设代理商wordpress链接里的图像地址
  • 网站模板如何优化深圳做响应式网站
  • 网站后台管理系统html江苏省建设招标网站
  • 局网站建设招标常见的网站推广方案
  • 建立网站的技术路径wordpress ajax 分页插件
  • wordpress导航字体清远seo站内优化
  • 常用的网站推广网站推广策划的思路
  • 深紫色网站营销推广是干什么的
  • 石家庄整站优化技术怎么给网站加代码
  • 旅游电子商务网站建设的重要性站长工具手机综合查询
  • 中英语双语网站咋做蛋糕店网站模板
  • 网站建立计划书网站空间和域名价格
  • 做网站建设专业定制代做网站公司
  • 做网站的标签及属性一般做网站用什么字体比较合适
  • 常宁网站建设常宁网站建设seo工作
  • 网站备案初审时间有没有那种帮人做ppt的网站
  • 甘肃省住房和城乡建设厅网站职称证查询企业网站欣赏
  • 在线网站制作模拟重庆十大装饰公司排名
  • 通州手机网站建设wordpress实现双语
  • 上海松江做网站的公司商丘网站建设设计
  • 做弹幕网站微信扫码点餐小程序怎么做
  • 成都前十名传媒网站建设wordpress 无法新建页面
  • 吉安网站推广app下载的视频为什么手机找不到
  • wordpress 评论添加表情重庆seo推广渠道
  • 网站建设的总体需求分析linux 什么做网站好
  • 深圳著名设计网站大全长沙百度关键词排名
  • 网站猜你喜欢代码用ps做网站是用像素还是毫米
  • 浙江虎霸建设机械有限公司网站企业管理培训课程百度云
  • 深圳英文网站开发广州市行政区划图