0

我正在尝试构建基于 Raspberry Pi 的示波器。我正在使用安装了 Python 3.5 的 raspberry Pi 3 B+。我按照以下链接执行此操作

https://circuitdigest.com/microcontroller-projects/raspberry-pi-based-oscilloscope/

我的python脚本执行成功,如下

reading ADS channel 0: value

在此处输入图像描述

但问题是无法在屏幕上显示图形。我已经安装了matplotlib 和 drawow包。

我想在屏幕上显示图表。因为我不太了解这一点,所以请帮我解决这个问题。

4

1 回答 1

0

从外部很难知道问题究竟是什么。drawnow我确实对这个包的有用性有些怀疑。所以我会把那个放在外面,看看普通的动画是否有效。

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
#import numpy
# Import the ADS1x15 module.
import Adafruit_ADS1x15
# Create an ADS1115 ADC (16-bit) instance.
adc = Adafruit_ADS1x15.ADS1115()

GAIN = 1
val = [ ]

# Start continuous ADC conversions on channel 0 using the previous gain value.
adc.start_adc(0, gain=GAIN)
print('Reading ADS1x15 channel 0')

fig, ax = plt.subplots()
ax.set_ylim(-5000,5000)
ax.set_title('Osciloscope')
ax.grid(True)
ax.set_ylabel('ADC outputs')

line, = ax.plot([], 'ro-', label='Channel 0')
ax.legend(loc='lower right')

def update(cnt):
    # Read the last ADC conversion value and print it out.
    value = adc.get_last_result()
    print('Channel 0: {0}'.format(value))
    # Set new data to line
    line.set_data(list(range(len(val))), val)
    ax.relim()
    ax.autoscale_view()
    #Store values for later
    val.append(int(value))
    if(cnt>50):
        val.pop(0)

ani = FuncAnimation(fig, update, interval=500)
plt.show()
于 2018-08-11T17:39:05.100 回答