Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
17.10.2006, 05:22
|
#41
|
Частый гость
Регистрация: 01.10.2006
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от Luzkov
|
И еще если у тебя отрицательные и положительные полуволны симетричны. То нет смысла изврашатся. Ставь диод на входе и будеш мерить только положительную полуволну а потом результат умножай на 2 (сдвиг запятой в право на 1 байт).
|
Благодарю за консультацию. Но если тиристор открыт в самом конце полупериода, тоесть импульс минимален, то и результат будет маленький. После деления его на 256 получим 0, что не приемлемо. Хотелось бы охватить весь диапазон, а значит надо работать с двухбайтовым числом. Я предлогаю получить сумму измерений и перевести результат в десятичнй вид, вот здесь тупик. А откалибровать можно будет изменяя опорное напряжение. Подскажите как перевести двухбайтовое двоичное число в десятичное?
|
|
|
|
17.10.2006, 07:14
|
#42
|
Гражданин KAZUS.RU
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
В том то и проблема что интегратор вычисляет среднее а не действующее значение
Вы правы я сначала думал что имеется одиночный импульс.Стоит подумать действительно ли необходимо действующее значение,иногда используется среднее значение(существуют приборы градуированные в средних
значениях)Если действительно необходимо действующее
то рядом фирм выпускаются измерители истинного среднеквадратического значения.
По поводу АЦП важна не только его разядность но и количество отсчетов.Если оно будет мало ,то на коротком импульсе вы получите значительную погрешность.Я ссильно сомневаюсь в способности PIC
оцифровать 60 мкСек импульс.По моему мнению для АЦП
необходимо мерять в худшем случае через 6мкСек(с учетом помещения результата в память).
|
|
|
|
17.10.2006, 08:37
|
#43
|
Временная регистрация
Регистрация: 06.05.2005
Сообщений: 93
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
если мы оцифровываем каждые 6 мксек - то про 60 мксек импульс мы можем говорить с точностью не более 10 процентов, сколько бы бит в ацп ни было. Если нужна точность 1 процент - нам надо сделать за время импулься не менее 100 замеров 8 битным АЦП, тогда мы можем говорить, что мы срисовали импульс с точностью 1 процент (не более), это на преобразование 0.6 мксек, АЦП контроллеров с такой скоростью не работают, необходимо внешнее АЦП с временем преобразования не более 0.5 мксек. когда начинается импульс? как контроллер узнает, что импульс начался и необходимо начинать оцифровку. или оцифровка идет всегда, смотрим что посчитали и находим начало импулься по цифровым результатам. дальше арифметика - и результат - в студию
|
|
|
|
17.10.2006, 08:57
|
#44
|
Частый гость
Регистрация: 01.10.2006
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от demaven
|
если мы оцифровываем каждые 6 мксек - то про 60 мксек импульс мы можем говорить с точностью не более 10 процентов, сколько бы бит в ацп ни было. Если нужна точность 1 процент - нам надо сделать за время импулься не менее 100 замеров 8 битным АЦП, тогда мы можем говорить, что мы срисовали импульс с точностью 1 процент (не более), это на преобразование 0.6 мксек, АЦП контроллеров с такой скоростью не работают, необходимо внешнее АЦП с временем преобразования не более 0.5 мксек. когда начинается импульс? как контроллер узнает, что импульс начался и необходимо начинать оцифровку. или оцифровка идет всегда, смотрим что посчитали и находим начало импулься по цифровым результатам. дальше арифметика - и результат - в студию
|
Это как раз понятно, что чем выше скорострельность АЦП тем выше точность, но меня устраивает 10% погрешности. У меня проблема в том как преобразовать двухбайтное двоичное число в десятичное. PIC я научил узнавать начало и конец импульса.
|
|
|
|
17.10.2006, 09:48
|
#45
|
Гражданин KAZUS.RU
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Существует очень простой способ.Если соответствующий бит двоичного числа =1 то его десятичный эквивалент прибавляется к результату предыдущих суммирований,и после каждого суммирования производится десятичная
коррекция результата,те Если бит 0=1 то прибавляется1
затем DAA
если бит1=1 то 2 и DAA и так далее,если бит15=1 то прибавляется 32768 и DAA
|
|
|
|
17.10.2006, 10:34
|
#46
|
Частый гость
Регистрация: 01.10.2006
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от EVGENIY1962
|
Существует очень простой способ.Если соответствующий бит двоичного числа =1 то его десятичный эквивалент прибавляется к результату предыдущих суммирований,и после каждого суммирования производится десятичная
коррекция результата,те Если бит 0=1 то прибавляется1
затем DAA
если бит1=1 то 2 и DAA и так далее,если бит15=1 то прибавляется 32768 и DAA
|
Так, уже ближе, но учтите пожалуста, что я не великий программист. Что такое DAA и если можно, то поподробней, чего куда и как. А за ответ благодарен.
|
|
|
|
17.10.2006, 11:03
|
#47
|
Гражданин KAZUS.RU
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
DAA -десятичная коррекция.
Если вы складываете например 9+2 результат суммирования 0BH(11 в шестнадцатеричной системе)
для десятичного сложения вы должны проверить не превышает ли сумма 9 и если превышает то к сумме
в тетраде прибавить 6
09
+ 02
= 0B (B›9)
+ 06
= 01 и частичный перенос=1
=› к старшей тетраде прибавляется 1=›
результат =11
|
|
|
|
17.10.2006, 12:28
|
#48
|
Частый гость
Регистрация: 01.10.2006
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Признателен. Теперь попробую все это переварить и родить программу. Может у кого есть готовая? Буду рад.
|
|
|
|
17.10.2006, 21:14
|
#49
|
Гражданин KAZUS.RU
Регистрация: 21.02.2005
Сообщений: 685
Сказал спасибо: 14
Сказали Спасибо 84 раз(а) в 44 сообщении(ях)
|
Несколко лет назад делал похожий проэкт. Прибор на ПИК16Ф84 мерит действующее, среднее и максимальное значеине в диопозоне от 100мВ до 220В. Допазон переключается автоматически. Не забудь что если при делении ты переносил запятую в двоичном числе то надо это учесть пои переводе в десятичное.
Прикрепленный файл: 5740176.rar
|
|
|
|
18.10.2006, 07:18
|
#50
|
Частый гость
Регистрация: 01.10.2006
Сообщений: 32
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Luzkov, Огромное Вам спасибо за исходник, отпали некоторые вопросы.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:35.
|
|