# Данный пример калибрует значение шунтирующего резистора на 4 канале.
# Калибровка шунтирующего резистора позволяет улучшить рассчёт силы тока.
# УКАЗАНИЕ ЗНАЧЕНИЙ ОТЛИЧНЫХ ОТ РЕАЛЬНО ИЗМЕРЕННОЙ СИЛЫ ТОКА ПРИВЕДЁТ
# К НЕПРАВИЛЬНЫМ РАССЧЁТАМ СИЛЫ ТОКА ФУНКЦИЕЙ currentRead() В ДАЛЬНЕЙШЕМ

from time import sleep 
from pyiArduinoI2Crelay import *
pwrkey = pyiArduinoI2Crelay(0x09)

k=4  # Номер канала для которого выполняется калибровка

#   Включаем канал «k» модуля.
pwrkey.digitalWrite(k, HIGH)
#   Выводим подсказку:
print("Для калибровки подключите нагрузку к каналу «"+str(k)+"»"
      "последовательно с амперметром. Желательно (но не обязательно) "
      "подобрать нагрузку с током потребления в районе 800...1200 мА."
      "Введите в монитор последовательного порта силу тока в мА,"
      "которую показывает амперметр и нажмите Enter."
      "При вводе данных используйте только символы цифр")

try:                                   #  Стараемся прочитать целое число из stdin
    a = int(input())                   #  игнорируя учения Йоды 
except ValueError:                     #  Если введено что-то другое 
    print("Целое число ввести "        #  Выводим текст 
          "ты должен...")              #  в stdout 
else:                                  #  Если всё же введены цифры
    val /= 1000                        #  Преобразуем силу тока «а» из мА в А и выполняем калибровку 
    pwrkey.currentWrite(k, a)          #  канала «k» функцией currentWrite() указав реально измеренную силу тока «a». 
    print("Rш пересчитано по току в "  #  
          +str(val)+"А.")              #  Функция currentWrite() сохраняет значение Rш в энергонезависимую память модуля.
                                       #  Значит результаты калибровки сохранятся и после отключения питания.
while True:                            # 
    print("Сила тока %.2f"             #  Выводим силу тока измеренную модулем на канале «k» в stdout.
          % pwrkey.currentRead(k)      #
          + "А.", end="\r")            #   
    sleep(.1)                          #
