树莓派-python之adc电压采集的实现
通过对树莓派增加扩展板的方式,实现树莓派的ADC电压采集功能。
具体代码如下:
# 实时记录数据
import time as t #引入时间
import smbus2 as smbus #引入smbus 库 用于adc采集
import xlwt #引入excel读写库
import xlrd
import numpy as np #引入numpy数学库time_int = 0.5 #设定采集时间间隔
time_m = 3 #设定采集总时间
timeend =int(time_m*60/time_int) #循环终止步数
ADC = smbus.SMBus(1) #adc采集必备
print("数据开始记录")#首先将采集 并需要保存的电压值设定为空集
U1=[]
U2=[]
U3=[]
U4=[]
U5=[]
U6=[]
U7=[]
U8=[]
timeline=[] #时间值for i in range(0, timeend): #进行循环采集U1.append( ADC.read_word_data(0x04, 0x10) * 5 / 4096) # adc通道1 测量值 单位为VU2.append( ADC.read_word_data(0x04, 0x11) * 5 / 4096) # adc通道2 测量值U3.append( ADC.read_word_data(0x04, 0x12) * 5 / 4096) # adc通道3 测量值U4.append( ADC.read_word_data(0x04, 0x13) * 5 / 4096) # adc通道4 测量值U5.append( ADC.read_word_data(0x04, 0x14) * 5 / 4096) # adc通道5 测量值U6.append( ADC.read_word_data(0x04, 0x15) * 5 / 4096) # adc通道6 测量值U7.append( ADC.read_word_data(0x04, 0x16) * 5 / 4096) # adc通道7 测量值U8.append( (ADC.read_word_data(0x04, 0x17) * 5 / 4096) # adc通道8 测量值t.sleep(time_int) #时间间隔timeline.append((i+1) * time_int) #记录时刻#时刻输出保留两位小数的采集值 print("%0.2f" % timeline[-1],"%0.2f" % U1[-1] ,"%0.2f" % U2[-1] ,"%0.2f" % U3[-1] ,"%0.2f" % U4[-1] ,"%0.2f" % U5[-1] ,"%0.2f" % U6[-1] ,"%0.2f" % U7[-1] ,"%0.2f" % U8[-1] )
#将数据合成一个矩阵
a = np.array([timeline,U1,U2,U3,U4,U5,U6,U7,filtedData])
f = xlwt.Workbook() # 创建工作簿
sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) # 创建sheet
row0 = [u'time',u'U1',u'U2',u'U3',u'U4',u'U5',u'U6',u'U7',u'U8']Uall=a.T #对矩阵进行转置#顺序写入excel表格中
for i in range(0,len(Uall)):for j in range(0,len(row0)):sheet1.write(i,j,Uall[i,j])f.save('demo.xlsx') #保存为excel文件
树莓派-python之adc电压采集的实现相关推荐
- 基于STM32的ADC电压采集(DMA传输)
我最近在写stm32的adc电压采集过程中遇到了一些问题,这些问题或许对stm32初学者入手adc有所帮助. 对adc采集到的数据进行均值滤波处理,新建一个数组ADC_ConvertedValue_1 ...
- 基于ADC电压采集的锂电池电量显示方法
应用场景 设备采用锂电池供电,可充电,MCU的ADC采集计算锂电池电压,电池电量根据锂电池放电特性,电池电量三段段码显示(分段式显示). 电量显示策略 1.有充电器充电器插入的情况下: ADC采集电池 ...
- 个人项目 免费开源 基于STM32F103的oled示波器,频谱fft adc电压采集 spi接口0.96寸oled
@基于stm32的adc检测波形 0.96oled显示(spi/iic)移植gui库(开源). 使用标准库开发,未使用dsp官方库. adc采集到电压并且在oled上显示. 支持0-3.3v电压采集显 ...
- 第 30 章 ADC—电压采集
30.1 ADC 简介 30.2 ADC 功能框图剖析 2.1 电压输入范围 2.2 输入通道 1.规则通道 2.注入通道 2.3 转换顺序 1.规则序列 2.注入序列 2.4 触发源 2.5 转换时 ...
- 树莓派python编程读取电压_《树莓派Python编程指南》——3.2 在结构体中存储值-阿里云开发者社区...
本节书摘来自华章计算机<树莓派Python编程指南>一书中的第3章,第3.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...
- ADC电压采集(多重ADC交替模式)
实验说明 1:采用三个ADC采集同一个IO口(通道12 PC2),采用一个ADC去采集最快速率2.4M,三个同时交替采集最高可达7.2M 2:三重是以ADC1占主导的,我们只要开启ADC1的DMA就可 ...
- STM32F1系列ADC电压采集
1. ①电压输入范围 ADC 输入范围为:VREF- ≤ VIN ≤ VREF+.由 VREF-.VREF+ .VDDA .VSSA.这四个外部 引脚决定. 我们在设计原理图的时候一般把 VSSA ...
- stm32学习笔记---ADC电压采集
1. ①电压输入范围 ADC 输入范围为:VREF- ≤ VIN ≤ VREF+.由 VREF-.VREF+ .VDDA .VSSA.这四个外部 引脚决定. 我们在设计原理图的时候一般把 VSSA ...
- stm32双adc电压采集
ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult; //ADC工做模式:ADC同步规则组模式 ADC_DMACmd(ADC1, ENABLE); ...
- 基于STM32的ADC电压采集proteus仿真LCD1602显示
硬件设计 (末尾附文件) 仿真图如下所示: #include "bsp-lcd1602.h"void LCD1602_GPIO_Config(void) {RCC_APB2Peri ...
最新文章
- java servlet 获取路径问题_Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析...
- Java高新技术第一篇:类加载器详解
- UNITY 优化之带Animator的Go.SetActive耗时问题,在手机上,这个问题似乎并不存在,因为优化了后手机上运行帧率并未明显提升...
- Python之路(第二十篇) subprocess模块
- python中numpy.array_python中数组(numpy.array)的基本操作
- [CODEVS1205]单词反转
- SpringBoot集成Google开源图片处理框架,贼好用!
- 多期高收入的C++on-job学员
- go mysql 条件查询_go-sql-driver包 实现mysql不定字段查询
- java进行图片和字符串的互相转换
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。
- 蓝桥杯c语言试题 历届真题 天干地支【第十一届】【决赛】【A组】
- B Bitwise Exclusive-OR Sequence
- STM32F103系列的单片机一共有11个定时器
- 博弈论_奇偶性、单向行走
- python 刷微信跳一跳分数遇到的bug
- 习题 于歆杰 电路_清华大学 电路原理 于歆杰 60讲视频教程
- L1正则化及其稀疏性的傻瓜解释
- 韦东山 嵌入式Linux应用开发基础知识 下【串口 IIC SPI
- 三菱FX系列PLC和台达ASDA-B2伺服驱动器位置控制接线和程序示例