|
DWD: Это при наладке, для сопряжения показаний дисплея с реальными значениями измеряемых параметров? Честно говоря вопрос для меня несколько расплывчат. Попробую дать раскрытый ответить что бы внести некую ясность. На вход АЦП в МК можно подать максимальное напряжение равное напряжению питания МК, в данном примере принято питание МК равное 5В, при этом АЦП в своём регистре будет иметь значение 1023 т.е. один разряд АЦП равен 5В/1023=4,8875мВ, если в регистре АЦП лежит число 125 то напряжение на выходе АЦП равно 125*0,004887585В=0,611В ну и следовательно максимально измеряемое напряжение которое может измерить МК это 5В, далее для измерения напряжений большей величины применяют схемный резистивный или активный делитель напряжения, по сути для отображения измеренного напряжения коэффициент деления должен учитываться программно, и этот коэффициент должен быть одинаковый что в программе что в схеме, т.е. есть два пути сопряжения показаний если коэффициенты деления разные, это изменять коэффициент в самой программе или схемно. Я выбрал путь схемной коррекции коэффициента, т.е. в самой программе коэффициент некой пропорциональности рассчитывается автоматически по принципу k=Vmax/1000. Следовательно величина максимального напряжения вводится в программу в ручную а коэффициент пропорциональности рассчитывается автоматически, и он применяется при вычислении измеренного напряжения и его индикации. К примеру мы в программу вводим максимальное напряжение которое мы хотим измерять равное 250В следовательно некий коэффициент пропорциональности равен 250В/1000=0,25, или же цена одного разряда равна 0,25В. к примеру АЦП измеряет на своём входе некое напряжение и в своём регистре держит число 125, следовательно напряжение на входе вольтметра с учётом коэффициента пропорциональности равно 125*0,25В=31,25В, для правильного отображения входного напряжения схемно должен быть выдержан коэффициент деления равный 250В*1023/5В*1000=51,15. Т.е. когда на входе делителя присутствует напряжение равное 250В то на входе АЦП с учётом коэффициента деления будет присутствовать напряжение равное 250В/51,15=4,8875В, зная цену одного разряда в АЦП мы можем найти число которое будет лежать в регистре АЦП оно равно 4,8875В/0,004875В=1000, программа возьмёт цену разряда и умножит на это число и получит 1000*0,25В=250В. Далее это число уходит на индикацию. С током та же канетель только в токе есть запятая, по этому в программе вводятся миллиамперы и обрабатываются миллиамперы, а перед выводом на индикацию делается преобразование мА в А и вывод запятой, по этому индикация напряжения и тока сделана отдельными подпрограммами, но вас это не особо должно беспокоить, по сути программа может выводить ток док до 99,99А и напряжение до 999В и мощность до 999Вт и ограничение в этом лежит не в разрядности чисел в программе, а в подпрограмме индикации этих чисел. ШИМ каналы управляются независимо от введенных величин или от входных значений величин, но индикация тока ограничения зависит от значения числа в ШИМе, зависимость точно такая же как и в случае с вольтметром, т.е. коэффициент пропорциональности между ШИМом и 494 по току должен быть соблюдён схемно по принципу вольтметра. Т.е. для настройки вольтметра нужно знать максимальное напряжение которое нужно измерять, его вводят в программу компилируют программу зашивают её в МК, потом на вход подают заведомо известное напряжение, и изменяя схемный коэффициент деления добиваются индикации на ЖК дисплее того напряжения которое подано на вход. Далее изменяя напряжение во всём диапазоне, смотрят что бы напряжение на ЖК дисплее было равно напряжению на входе вольтметра, в данном примере напряжение после десятых не видно что несколько затруднит регулировку, но опять же всё зависит с какой абсолютной погрешностью Вы готовы мирится, если Вас устраивает +/-1В во всём диапазоне напряжений то это один случай, и думаю что для этого случая не нужно сильно напрягаться с калибровкой вольтметра, если нет, то точность можно поднять путём введения поправочных чисел в программу, и произведением измерений для нахождения погрешности в расширенном режиме индикации напряжения. Опять же вполне возможна некая нелинейность как в АЦП так и в делителе. В общем Вы должны собрать схему делителя которая будет применяться в ЛАТре и посмотреть что будет по факту и дальше принимать решение устроит Вас полученная погрешность или нет. DWD: В любом случае (по крайней мере - для меня) нужны схема, прошивка, описание режимов и правил работы. Эт понятно. Я сегодня вечером дорисую схему в протеусе, из неё будет всё понятно, и дам Вам этот файл симуляции с помощью которого Вы сможете смотреть как работает программа, в протеусе, сможете регулировать величину ШИМа входного тока и т.д и т.п. при этом не собирая схему в живую, вообще-то в протеусе можно собрать и схему делителя и посмотреть на результат, если у меня сегодня вечером будет желание то я соберу Ваш активный выпрямитель с НЧ и посмотрю что скажет программа по поводу его линейности. Но сдаётся мне что если Вы разберётесь как писать программу, то измерением постоянного напряжения дело не ограничится, т.к. можно измерять среднюю мощность нелинейного тока, и далее плясать от неё, либо от тока. Так что думаю это будет хорошим стимулом изучить пару операторов языка Си для WinAVR и начать кромсать программу под свои нужды. |
|
|
Я так смотрю эта прога ни кому не нужна кроме Вас, оно и понятно, т.к. подобные программы довольно просты и те кто умеет программировать сами себе могут такую написать, а те кто не может так им нужно целое изделие с проверенной прогой и т.д. и т.п. так что давайте в личку мыло и пишите если нужен Вам протеус 7,6 с таблеткой, он весит 65 метров, плюс кину WinAWR который позволит редактировать программу, в общем если протеус не нужен будет, тогда архив будет меньше, покуда я не добавлял схему выпрямителя, если хотите могу сегодня выслать без него, а потом позже добавить и его и до дать второй файл симуляции. |
|
|
alx25v: может что подскажу Ну если так, то тогда вот, http://webfile.ru/6561718 за грамматические и орфографические ошибки уж простите, нет времени и желания ещё и их исправлять. Файл симуляции в протеусе лежит в одной папке с программой, исходник проги называется LCD_494.c, без файла lcd.c прога не скомпенсируется т.к. в нём лежит алгоритм управления ЖК. Писалось это в WinAVR-20080512. alx25v: да сам поучусь... Программа на уровне знаний старшеклассника, нечему там учится, тем более это кастрированная версия, и некоторые вещи реализованы не совсем рационально и адекватно, основной критерий - абы работало. 2 DWD Я добавил пару строчек комментариев к программе, и почистил пару лишних строк. |
|