5 Ch. Data Logger. MSP430G2553 / Linux / LCD screen.

5-ти канальный вольтметр / даталоггер с выводом в RS-232 и LCD (VFD).

Data Logger on VFD Screen
  Noritake Itron VFD Vacuum Fluorescent Display, LCD Compatible Design (HD44780), parallel interface, 20x2.

       Мы уже сделали следующее:

     1. Соединили LaunchPad (MSP430G2553) с индикатором и это начало работать сразу (ссылка);

     2. Сделали одноканальный вольтметр, который выводит данные на экран компьютера (ссылка);

     3. Перенаправили данные, из последовательного порта в файл, используя TinyCore Linux (ссылка).

     4. Сделали 5-ти канальный вольтметр с выводом через последовательный интерфейс (ссылка).


 Работает уже все. Осталось адаптировать к измерению наряжений  >  3,5V.

 Допустим, что мы хотим измерять напряжение на аккумуляторе автомобиля. Это 12V. В реальной жизни это от 14 до 15V, если в автомобиле все работает нормально. Если нет, но напряжение может подниматься до 18 - 20V. Значит меряем от 0 до 20V.

 Понятное дело, что на входе необходимо поставить делитель напряжения из двух резисторов, сопротивление которых будет зависить от входного сопротивления MSP430 и минимального наряжения которое она измеряет. Входное сопротивление проверяется с помошью высокоомного резистора и источника напряжения. Схема ниже.

 В результате, входной ток MSP430 оказался ~0.15uA. Шаг АЦП  3.6V / 1024 = 0.0035V.
0.0035V / 0.15uA = 25000 или 25 кОм. Т/образом, если мы подключим резистор 25 кОм ко входу АЦП, то падение наряжения на нем будет, аккуратно 0.0035V. Это даст ошибку в один разряд АЦП (3.5mV).

 Выход из положения очень простой - скомпенсировать эту ошибку программно. То есть, при резисторе 25кОм вычитать из результата работы АЦП единицу, при 50кОм - двойку,  и так далее. Но лучше этого не делать.

 В идеале, для 20V делитель это два резистора 227кОм и 50кОм, для 5V - 19.4кОм и 50кОм.

 Вы уже бросились искать точные резисторы? Зря. В этом нет никакой необходимости. Необходимо поставить то, что есть и остальное скомпенсировать программно в этом блоке.
    voltageA0 = sensorValueA0*3.562/1024; //convert to Volts, 3.562V = 1024 counts
      voltageA4 = sensorValueA4*3.562/1024;
        voltageA5 = sensorValueA5*3.562/1024;
          voltageA6 = sensorValueA6*3.562/1024;
            voltageA7 = sensorValueA7*3.562/1024;

 Собираем делители из резисторов, которые под рукой. Напряжения, которым соответсвуют 1023 на
выходе АЦП, на схеме.

 Остается перенести эти напряжения в программу.

voltageA0 = ((sensorValueA0*51.53)/1024);
voltageA4 = ((sensorValueA4*26.26)/1024);
voltageA5 = ((sensorValueA5*18.64)/1024);
voltageA6 = ((sensorValueA6*7.341)/1024);
voltageA7 = ((sensorValueA7*4.964)/1024);
 Допустим, что:  P1.7 измеряет напряжение питания MSP430, P1.6 - уровень напряжения на USB, P1.5 - на аккумуляторной батарее, P1.4, P1.0 - напряжения на солнечных панелях.

 Изображение обновляется каждую секунду и каждую минуту данные отправляются в компьютер.



 Текст программы, которую можно скопировать и вставить в Energia: 5to52Volt.txt

 Пример файла, который сохраняется на Linux компьютере: file.txt

 Все. С простым Data Logger закончили. Программу можно рассматривать как основу. Дальше ее можно менять по необходимости.

 На данный момент мне необходимо сделать устройство, которое будет измерять напряжения и, в зависимости от них, подбирать ток нагрузки.


Дальше:  мониторим, с помощью DataLogger самодельную алюминиево-углеродную батарею.



12.31.2015  SKootS

_

Make a Free Website with Yola.