X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/d64205c7f1dde94030b92a3e143d63e64182aa6c..3d15d80420f6f61a17bf7e9c00a97863b4d96bb3:/examples/generic_aio.py diff --git a/examples/generic_aio.py b/examples/generic_aio.py index 926cbc8..8e6c9c1 100644 --- a/examples/generic_aio.py +++ b/examples/generic_aio.py @@ -1,9 +1,125 @@ +# SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries +# +# SPDX-License-Identifier: MIT import pytest import board import analogio -def test_ax_input_rand_int(): - assert board.board_id == "GENERIC_AGNOSTIC_BOARD" - pin_random = analogio.AnalogIn(board.Ax_INPUT_RAND_INT) - assert isinstance(pin_random.value, int) - pin_random.deinit() +# Analog Outputs +def test_Ax_OUTPUT(): + """Test analog output pin functionality.""" + assert board.board_id == "GENERIC_AGNOSTIC_BOARD" + pin_out = analogio.AnalogOut(board.Ax_OUTPUT) + + # Test boundaries of setting the value and reading it back + pin_out.value = 0 + assert pin_out.value == 0 + pin_out.value = 65535 + assert pin_out.value == 65535 + + pin_out.deinit() + + +# Analog Inputs + +# Values for sine wave +# (data points = 20, amplitude=100, frequency=1) +sine_wave = [ + 0, + 31, + 59, + 81, + 95, + 100, + 95, + 81, + 59, + 31, + 0, + -31, + -59, + -81, + -95, + -100, + -95, + -81, + -59, + -31, +] + +# Values for a sawtooth wave +# (data points = 20, amplitude=100) +sawtooth_wave = [ + -100, + -80, + -60, + -40, + -20, + 0, + 20, + 40, + 60, + 80, + -100, + -80, + -60, + -40, + -20, + 0, + 20, + 40, + 60, + 80, +] + + +def test_Ax_INPUT_RAND_INT(): + """Test random integer from pin Ax_INPUT_RAND_INT""" + assert board.board_id == "GENERIC_AGNOSTIC_BOARD" + pin_random = analogio.AnalogIn(board.Ax_INPUT_RAND_INT) + + assert isinstance(pin_random.value, int) + + pin_random.deinit() + + +def test_Ax_INPUT_FIXED_INT_PI(): + """Test fixed integer from pin Ax_INPUT_FIXED_INT_PI""" + assert board.board_id == "GENERIC_AGNOSTIC_BOARD" + pin_pi = analogio.AnalogIn(board.Ax_INPUT_FIXED_INT_PI) + + assert pin_pi.value == 31415 + + pin_pi.deinit() + + +def test_Ax_INPUT_WAVE_SINE(): + """Test sine wave from pin Ax_INPUT_WAVE_SINE""" + assert board.board_id == "GENERIC_AGNOSTIC_BOARD" + pin_sine_wave = analogio.AnalogIn(board.Ax_INPUT_WAVE_SINE) + + # Run through the sine wave once + for i in range(len(sine_wave)): + assert pin_sine_wave.value == sine_wave[i] + + # Run through the sine wave again to ensure it loops back correctly + for i in range(len(sine_wave)): + assert pin_sine_wave.value == sine_wave[i] + + pin_sine_wave.deinit() + + +def test_Ax_INPUT_WAVE_SAW(): + """Test sawtooth wave from pin Ax_INPUT_WAVE_SAW""" + assert board.board_id == "GENERIC_AGNOSTIC_BOARD" + pin_sine_wave = analogio.AnalogIn(board.Ax_INPUT_WAVE_SAW) + + # Run through the sine wave once + for i in range(len(sawtooth_wave)): + assert pin_sine_wave.value == sawtooth_wave[i] + + # Run through the sine wave again to ensure it loops back correctly + for i in range(len(sawtooth_wave)): + assert pin_sine_wave.value == sawtooth_wave[i] + + pin_sine_wave.deinit()