Измеритель магнитной индукции на датчике Холла и STM32

Немного информации: Магнитометры, применяемые для измерения магнитной индукции, называют тесламетрами.
1 Тл = 104 Гс

В измерителе применен датчик холла SS496 с диапазоном измерения +/-840 Гс или +/-84 мТл. В даташите указано, что максимальная измеряемая магнитная индукция 840Гс, при выходном напряжении 4.2В, при двухполярном питании +/-5 Вольт.

Мой датчик холла выдает напряжение 4.77 в и 4.81 в (при разном вхождении силовых линий магнитного поля) при двухполярном питании +/-5 вольт. Измерять магнитную индукцию будем от 0 до 960Гс,  в дальнейшем планирую сделать, чтобы измерял и  от 0 до -960Гс. (Для этого нужен 2й датчик).  Так как датчик холла выдает до 4.8 вольт, у меня шкала будет до 960Гс.

Схема  измерителя:

Схема измерителя магнитной индукции на датчике Холла

Делитель напряжения рассчитывается на максимальное выходное напряжение 3 вольта, так как вход АЦП рассчитан на 3 вольта.

Операционный усилитель выполняет функцию инвертирования отрицательного напряжения с выхода датчика холла.

Внешний вид БП

Внешний вид БП

Датчик холла

Датчик холла

Сама конструкция измерителя 

Конструкция измерителя

Фото измерителя

Исходный код написан в CoIDE.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
ic1 МК STM32 STM32F103C8 1
ic2 Датчик Холла SS496 1
ic3 Линейный регулятор UA7905 1
ic4 Линейный регулятор UA7805 1
OP1 Операционный усилитель TL084 1
VD1 Выпрямительный диод 1N4007 1
lcd LCD-дисплей 128×64 ST7920 1
C1, C2, C5, C6 Конденсатор 100мкФ 25В 4
C3, C4, C7-C11 Конденсатор 100 нФ 7
R1 Резистор 20 Ом 4
R2 Резистор 75 кОм 1
R3 Резистор 196 кОм 1
R4, R5 Резистор 1.96 кОм 2
R6 Резистор подстроечный 470 кОм 1