показометр U/I в Bascom-AVR

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
SolderC
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Пн окт 28, 2013 20:39:28
Откуда: извне

Re: показометр U/I в Bascom-AVR

Сообщение SolderC »

если я буду использовать константы с плавающей точкой, будет ни есть гуд, у меня точка на индикаторах фиксированная, ведь не ЖК использую, приходится работать с целыми или весь исходник переписывать.
Может завтра ещё пересмотрю исходник, сегодня уже нет времени
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: показометр U/I в Bascom-AVR

Сообщение Мурик »

Зачем переписывать весь код? :shock:
Достаточно изменить код чтения из АЦП.
Результат можно получить целочисленным. :)

Код: Выделить всё

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

Сообщение SolderC »

Достаточно изменить код чтения из АЦП.

Попробовал Ваш код, точно такие же значения получаются как и у меня.
Просто попробуйте закоментировать этот кусок
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 »

У ТС всё хорошо. Пожелаем ему успехов.
Последний раз редактировалось pcb Вт окт 20, 2015 08:48:41, всего редактировалось 1 раз.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Аватара пользователя
SolderC
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Пн окт 28, 2013 20:39:28
Откуда: извне

Re: показометр U/I в Bascom-AVR

Сообщение SolderC »

пользуйтесь диф включением каналов

А ето чаво :dont_know: такое
что бы ни делали, у аврки как было 1024 отсчета так и останется, 20 В/1024 = ~20 мВ в идеальном случае, а в действительности будет 8-9 бит, что эквивалентно 40мВ.

А у меня 3 вольта в диапазоне 10-50вольт, не хило правда?
И по поводу температуры измерительные цепи не геются у меня да и контроллер тоже
pcb
Опытный кот
Сообщения: 833
Зарегистрирован: Пт авг 12, 2011 09:14:27
Откуда: Млечный путь/Земля/РФ/Екатеринбург

Re: показометр U/I в Bascom-AVR

Сообщение pcb »

SolderC писал(а):А у меня 3 вольта в диапазоне 10-50вольт, не хило правда?

Я не знаю про какие 3 В идёт речь.

SolderC писал(а):И по поводу температуры измерительные цепи не геются у меня да и контроллер тоже

Из этого следует, что моя помощь вам не нужна. :idea:
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение SolderC »

Во бла :oops:
ща попробуем

Не работает, подаю напряжение 0-8В на индикаторах 0В, как только превышает 8,9В - сразу 9,99А 50,0В

Скажите, а смещение нуля АЦП может быть причиной нелинейности?
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: показометр U/I в Bascom-AVR

Сообщение Мурик »

SolderC писал(а):Не работает, подаю напряжение 0-8В на индикаторах 0В, как только превышает 8,9В - сразу 9,99А 50,0В
В коде объявление переменной.

Код: Выделить всё

Dim Volt_1 As Integer
а должно быть Single.
Аватара пользователя
SolderC
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Пн окт 28, 2013 20:39:28
Откуда: извне

Re: показометр U/I в Bascom-AVR

Сообщение SolderC »

Мурик писал(а):
SolderC писал(а):Не работает, подаю напряжение 0-8В на индикаторах 0В, как только превышает 8,9В - сразу 9,99А 50,0В
В коде объявление переменной.

Код: Выделить всё

Dim Volt_1 As Integer
а должно быть Single.


Спасибо, что разжёвываете и извините за невнимательность, в протеусе работает, завтра опробую в железе.
Аватара пользователя
SolderC
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Пн окт 28, 2013 20:39:28
Откуда: извне

Re: показометр U/I в Bascom-AVR

Сообщение SolderC »

Спасибо за внимание, устранено, дело было в бракованной mega8
Код изначально был верным.
End
Ответить

Вернуться в «AVR»