Курсовая работа "Разработка цифрового вольтметра на базе микроконтроллера серии STM32", семестр 24/25 осенний, дисциплина "Микроконтроллерные системы"
!!!Перед запуском в протеусе укажите для МК путь к прошивке: ..\kursLCD4bit\Debug\kursLCD4bit.hex Версия протеуса: 8.17.39395 Для работы с МК использовал среду STM32CubeIDE. Для упрощенной работы LCD использовал сторонние библиотеки.
В работе сделан вольтметр, измеряющий напряжение и падение напряжения в диапазоне 0-500В. Погрешность 0.5-3% в зависимости от величины напряжения.
Режимы выбираются с помощью ротатора SW3. Имеются 3 диапазона напряжений для более точного показа (ротатор SW2): до 500В, до 100В, до 10000 мВ. При слишком высоком напряжении для диапазона предлагается его сменить на более высокий.
Пин PA0 используется для измерения напряжения, к нему подключен источник напряжения и тестер для проверки. Пин PA1 используется вместе с PA0 для измерения падения напряжения, желательно подключать PA0 к месту, где напряжение больше. Остальные пины подписаны.
Диапазоны делал по примеру цифрового мультиметра М-832, где на экране могут поместиться только 4 цифры. Но в работе LCD явно бОльшего размера (20х2), а значения с ацп считаются сразу с 6+ знаками после запятой, поэтому может выглядеть странно.
Использовался МК STM32F103C8T6 и его внутренний 12-битный АЦП с работой в 2 канала (второй для изм. падения напряжения). АЦП мог измерять только до 5В, поэтому сделал делитель напряжения 1:100 с входящим в МК током 0,005А.
Главные файл по адресу Core/Inc/main.c, файлы для LCD: Core/Inc/lcd.c и Core/Src/lcd.h В main основной код находится в цикле while(1), user code begin pv, 0, 2. Остальное генерируется самостоятельно. Для просмотра назвачения пинов и настройки АЦП откройте в среде файл /kursLCD4bit.ioc