gpt4 book ai didi

python - 这个 python 从连接到 Raspberry Pi 的模数转换器产生的值的总和?

转载 作者:太空宇宙 更新时间:2023-11-03 20:05:19 26 4
gpt4 key购买 nike

我正在学校开展一个初学者项目,该项目使用 Raspberry Pi 3、10 位 MCP3008 模数转换器 (ADC) 和 5v 太阳能电池来读取太阳能电池从光中获取的能量。我已经采用了模数转换器附带的代码并对其进行了一些修改,但我想对程序运行完成时显示的数字进行求和并输出到 Excel。它设置为每秒显示一个值,因此我想在最后对所有值求和。我该怎么做呢?生成 ADC 值的代码部分是由 Adafruit 网站和 ADC 提供给我的,所以我仍然很难理解它。运行Python 2.7。这是我的代码:

# Simple example of reading the MCP3008 analog input channels and printing
# them all out for solar test

import time
import datetime
# Import SPI library (for hardware SPI) and MCP3008 library.
import Adafruit_GPIO.SPI as SPI
import Adafruit_MCP3008


# Software SPI configuration:
CLK = 18
MISO = 23
#MISO = Master Input Slave Output
MOSI = 24
#MOSI = Master Output Slave Input
CS = 25
mcp = Adafruit_MCP3008.MCP3008(clk=CLK, cs=CS, miso=MISO, mosi=MOSI)

# Hardware SPI configuration:
# SPI_PORT = 0
# SPI_DEVICE = 0
# mcp = Adafruit_MCP3008.MCP3008(spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE))
runTime = input("How many minutes should the program run?: ")

t_end = time.time() + runTime * 60

print('Reading MCP3008 values, press Ctrl+C to quit...')
# Print nice channel column headers.
file = open('solartest.xls','a')
st = time.time()
print (datetime.datetime.fromtimestamp(st).strftime('%Y-%m-%d %H:%M:%S'))
file.write(datetime.datetime.fromtimestamp(st).strftime('%Y-%m-%d %H:%M:%S') + "\n")
print('| {0:>4} |'.format(*range(8)))
#file.write('{0:>4}'.format(*range(8)) + "\t")
print('-' * 8)
# Main program loop.
#while True:
while time.time() < t_end:
# Read all the ADC channel values in a list.
values = [0]*8
for i in range(8):
# The read_adc function will get the value of the specified channel (0-7).
values[i] = mcp.read_adc(i)
# Print the ADC values.
print('| {0:>4} |'.format(*values))
file.write('{0:>4}'.format(*values) + '\n')
# Pause for a second.
time.sleep(1)
#end = datetime.datetime.fromtimestamp().strftime('%Y-%m-%d %H:%M:%S')
ed = time.time()
print (datetime.datetime.fromtimestamp(ed).strftime('%Y-%m-%d %H:%M:%S'))
file.write(datetime.datetime.fromtimestamp(ed).strftime('%Y-%m-%d %H:%M:%S'))
file.close()

如果可能的话,我想计算每个 ADC 值的电压,并在另一列中写入 Excel。计算电压的公式为 V = (5/1024) * ADC 值。 ADC 值是程序运行时每秒打印的数字。我尝试安装 openpyxl 但它不起作用,因为我的 python 版本不是 3.6 或更高版本,而且我无法更新它,因为它是学校设备。

最佳答案

#while True:
allValues = []
while time.time() < t_end:
# Read all the ADC channel values in a list.
values = [0]*8
for i in range(8):
# The read_adc function will get the value of the specified channel (0-7).
values[i] = mcp.read_adc(i)
allValues.append(values)
# Print the ADC values.
print('| {0:>4} |'.format(*values))
file.write('{0:>4}'.format(*values) + '\n')
# Pause for a second.
time.sleep(1)

print(sum(sum(v) for v in allValues))

关于python - 这个 python 从连接到 Raspberry Pi 的模数转换器产生的值的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59001993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com