mcp3421
/
main.py
54 строки · 2.1 Кб
1import sys
2from machine import I2C, Pin
3from sensor_pack_2.bus_service import I2cAdapter
4import mcp3421mod
5import time
6
7
8if __name__ == '__main__':
9i2c = I2C(id=1, scl=Pin(7), sda=Pin(6), freq=400_000) # on Raspberry Pi Pico
10adapter = I2cAdapter(i2c)
11
12adc = mcp3421mod.Mcp342X(adapter)
13
14print("---Одиночный режим измерения---")
15my_gain = 0
16my_data_rate = 2
17adc.start_measurement(single_shot=True, data_rate_raw=my_data_rate, gain_raw=my_gain,
18channel=0, differential_channel=True)
19print("---Основные 'сырые' настройки датчика---")
20gp = adc.get_general_raw_props()
21print(gp)
22print(16 * "--")
23td = adc.get_conversion_cycle_time()
24print(f"Время преобразования [мкс]: {td}")
25print(f"Бит в отсчете: {adc.current_resolution}")
26print(f"PGA: {adc.gain}")
27print(16 * "--")
28for _ in range(33):
29time.sleep_us(td)
30# print(f"value: {adc.value}; raw: {adc.get_value(raw=True)}")
31val = adc.get_value(raw=False)
32# lsb = adc.get_lsb()
33# print(f"value: {val};\tLSB [Вольт]: {lsb}")
34# val = adc.get_raw_value_ex()
35print(f"Напряжение: {val} Вольт")
36adc.start_measurement(single_shot=True, data_rate_raw=my_data_rate, gain_raw=my_gain,
37channel=0, differential_channel=True)
38
39print(16 * "--")
40print("Автоматический режим измерений АЦП")
41print(16 * "--")
42adc.start_measurement(single_shot=False, data_rate_raw=my_data_rate, gain_raw=my_gain,
43channel=0, differential_channel=True)
44td = adc.get_conversion_cycle_time()
45time.sleep_us(td)
46print(f"Время преобразования [мкс]: {td}")
47print(f"Бит в отсчете: {adc.current_resolution}")
48_cnt, _max = 0, 333333
49for voltage in adc:
50print(f"Напряжение: {voltage} Вольт")
51if _cnt > _max:
52sys.exit(0)
53time.sleep_us(td)
54_cnt += 1
55