показометр U/I в Bascom-AVR
- SolderC
- Первый раз сказал Мяу!
- Сообщения: 25
- Зарегистрирован: Пн окт 28, 2013 20:39:28
- Откуда: извне
Re: показометр U/I в Bascom-AVR
если я буду использовать константы с плавающей точкой, будет ни есть гуд, у меня точка на индикаторах фиксированная, ведь не ЖК использую, приходится работать с целыми или весь исходник переписывать.
Может завтра ещё пересмотрю исходник, сегодня уже нет времени
Может завтра ещё пересмотрю исходник, сегодня уже нет времени
Re: показометр U/I в Bascom-AVR
Зачем переписывать весь код?
Достаточно изменить код чтения из АЦП.
Результат можно получить целочисленным.
Достаточно изменить код чтения из АЦП.
Результат можно получить целочисленным.
Код: Выделить всё
Const Aref = 2.56 ' Напряжение ИОН.
Config Adc = Single , Prescaler = 128 , Reference = Internal ' Внутренний ИОН.
Dim x As Word
Dim y As Single
x = Getadc(0) ' Опрос канала 0 АЦП.
y = Aref * x
y = y / 1024
y = y * 1000 ' Результат в милливольтах на входе АЦП.
x = y ' В переменной 'x' целочисленный результат в милливольтах.- SolderC
- Первый раз сказал Мяу!
- Сообщения: 25
- Зарегистрирован: Пн окт 28, 2013 20:39:28
- Откуда: извне
Re: показометр U/I в Bascom-AVR
Достаточно изменить код чтения из АЦП.
Попробовал Ваш код, точно такие же значения получаются как и у меня.
Просто попробуйте закоментировать этот кусок
Volt_1 = Aref * Volt
Volt_1 = Volt_1 / 1024
Volt_1 = Volt_1 * 1000
Volt_1 = Volt
результат одинаков, что с ним что без него, и чтобы выйти на реальные значения в вольтах adc1, надо разделить на 2, как у меня и было изначально.
Пробовал в протеусе, но в железе результат преобразования я уверен будет тот же, просто сейчас работа, некогда на макетке попробовать, работаю два через два с восьми до восьми.
- Вложения
-
- Forum.zip
- (29.4 КБ) 108 скачиваний
-
pcb
- Опытный кот
- Сообщения: 833
- Зарегистрирован: Пт авг 12, 2011 09:14:27
- Откуда: Млечный путь/Земля/РФ/Екатеринбург
Re: показометр U/I в Bascom-AVR
У ТС всё хорошо. Пожелаем ему успехов.
Последний раз редактировалось pcb Вт окт 20, 2015 08:48:41, всего редактировалось 1 раз.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
- SolderC
- Первый раз сказал Мяу!
- Сообщения: 25
- Зарегистрирован: Пн окт 28, 2013 20:39:28
- Откуда: извне
Re: показометр U/I в Bascom-AVR
пользуйтесь диф включением каналов
А ето чаво
такоечто бы ни делали, у аврки как было 1024 отсчета так и останется, 20 В/1024 = ~20 мВ в идеальном случае, а в действительности будет 8-9 бит, что эквивалентно 40мВ.
А у меня 3 вольта в диапазоне 10-50вольт, не хило правда?
И по поводу температуры измерительные цепи не геются у меня да и контроллер тоже
-
pcb
- Опытный кот
- Сообщения: 833
- Зарегистрирован: Пт авг 12, 2011 09:14:27
- Откуда: Млечный путь/Земля/РФ/Екатеринбург
Re: показометр U/I в Bascom-AVR
SolderC писал(а):А у меня 3 вольта в диапазоне 10-50вольт, не хило правда?
Я не знаю про какие 3 В идёт речь.
SolderC писал(а):И по поводу температуры измерительные цепи не геются у меня да и контроллер тоже
Из этого следует, что моя помощь вам не нужна.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Re: показометр U/I в Bascom-AVR
Не удивительно с учетом ошибки в коде.SolderC писал(а):результат одинаков, что с ним что без него
В последней строке должно быть.SolderC писал(а):Volt_1 = Aref * Volt
Volt_1 = Volt_1 / 1024
Volt_1 = Volt_1 * 1000
Volt_1 = Volt
Код: Выделить всё
Volt = Volt_1- SolderC
- Первый раз сказал Мяу!
- Сообщения: 25
- Зарегистрирован: Пн окт 28, 2013 20:39:28
- Откуда: извне
Re: показометр U/I в Bascom-AVR
Во бла
ща попробуем
Не работает, подаю напряжение 0-8В на индикаторах 0В, как только превышает 8,9В - сразу 9,99А 50,0В
Скажите, а смещение нуля АЦП может быть причиной нелинейности?
ща попробуем
Не работает, подаю напряжение 0-8В на индикаторах 0В, как только превышает 8,9В - сразу 9,99А 50,0В
Скажите, а смещение нуля АЦП может быть причиной нелинейности?
Re: показометр U/I в Bascom-AVR
В коде объявление переменной.SolderC писал(а):Не работает, подаю напряжение 0-8В на индикаторах 0В, как только превышает 8,9В - сразу 9,99А 50,0В
Код: Выделить всё
Dim Volt_1 As Integer- SolderC
- Первый раз сказал Мяу!
- Сообщения: 25
- Зарегистрирован: Пн окт 28, 2013 20:39:28
- Откуда: извне
Re: показометр U/I в Bascom-AVR
Мурик писал(а):В коде объявление переменной.SolderC писал(а):Не работает, подаю напряжение 0-8В на индикаторах 0В, как только превышает 8,9В - сразу 9,99А 50,0Ва должно быть Single.Код: Выделить всё
Dim Volt_1 As Integer
Спасибо, что разжёвываете и извините за невнимательность, в протеусе работает, завтра опробую в железе.
- SolderC
- Первый раз сказал Мяу!
- Сообщения: 25
- Зарегистрирован: Пн окт 28, 2013 20:39:28
- Откуда: извне
Re: показометр U/I в Bascom-AVR
Спасибо за внимание, устранено, дело было в бракованной mega8
Код изначально был верным.
End
Код изначально был верным.
End