Автор Тема: DC Волтметър с PIC16F  (Прочетена 20954 пъти)

hacker4eto1

  • Вече знае какво е робот!
  • *****
  • Публикации: 78
    • Профил
DC Волтметър с PIC16F
« -: Март 19, 2010, 12:51:59 am »
Здравейте,
Искам да се обърна към вас с ясната представа,че питам на правилното място..относно някой малки или в течение на времето изникващи въпроси за това което съм си намислил да правя..
Понеже в момента започнах изучаването  на микропроцесорната електроника и да си кажа доста интересно ми стана..То не бяха прости програмки ,то не бяха писане на елементарни кодчета и така малко по малко ми хареса да се занимавам с микропроцесори...
Реших да си направя Един постоянно токов волтметър,като съм го замислел да го направя със порт за PC МS232 (Com port) и чрез него вход да си го програмирам докато стигна до успеха и правилното реализиране...
Невярвам да е по-точен от уредите който се продават за по 5 лева но важното , е че е съм си го направил аз...Тук искам да ви помоля за помощ ако нещо не ми ясно да ме насочите ,4е те първа навлизам в микрото и като нищо да ви задам некой глупав въпрос.....За което се моля да бъда извинен ОТ СЕГА.. :-D  :-D  :-D
Днес си направих блоковата схема и искам да ви я покажа ,за да ми кажите на прав път ли съм.... понеже въпроси ще имам .. а знам ,4е вие сте точните хора които биха подпомогнали :)
Ето ми я и блок Схемата...

Искам да имам 4 тири обхвата на уреда а именно 200мв,2в,20в,200в.
Мисля да използвам за сега тези 2 MCU - та
PIC16F877 или PIC16F688
PIC16F Са си 10 битови ... имат си вградено Ацп и мисля ,че ще ми свършат добра работа...
Трябват ми само 2 резистивни делителя за обхватите от 20в и 200в понеже микропроцесора ми се захранва на 5 волта следователно не мога да подам повече от 5 волта на единият вход... :?  :?  :? Тук правилно ли мисля ?
Ето и първият ми въпрос Този усилвател коефицента му на усилване как трябва да го сметна  примерно .. ако на входа имам 200мв  и Аu=10  то на входа на Ацп -то ще имам 2 волта което си е в охват до 5 те волта????(и тук черно петно..)
А при резистивните делители си слагам резистори така ,че на входа на АЦП-то така  да съм си  в обхват и си включвам съответния делител за съответния обхват.После резултата от АЦП-то го умножавам по коеф. на делителя и това ми  е напрежението което е на входа.
АЗ така си ги убесних нещата ,много ще съм ви благодарен ако ми помогнете при относните делители и работата на целият този усилвател :) ,4е аналоговата схемотехника леко се скарах с професора ми..... и сега си патя от това...
Аз до ден 2 ще се опитам на базата на вашите мнения да направя некоя постна схема в протеуса и да ви я покажа за съвет иначе за сега толкова от мен ..Благодаря ви предварително.... :)  :)
Tодор Пламенов Димитров София/Ямбол

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
DC Волтметър с PIC16F
« Отговор #1 -: Март 20, 2010, 09:02:07 pm »
Предлагам ти усилвателя да го ползваш само като повторител.. усилване не ти трябва, тъй като АЦП-то на процесора съвсем спокойно ще измери до 5 mV при захранване от 5V.. единствено трябва да сменяш посоката..т.е. да четеш горните 8 бита или долните 8 от 10-битовият резултат. ДА не говорим, че има и толеранси.. които също се усилват и резултата няма да е точен.. Какъв е усилвателят.. програмиеруем? Също така не забравяй и отрицателните напрежения ;)
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

hacker4eto1

  • Вече знае какво е робот!
  • *****
  • Публикации: 78
    • Профил
DC Волтметър с PIC16F
« Отговор #2 -: Март 20, 2010, 10:11:46 pm »
А според теб дали ще е по лесно да се направи само с един обхват от 200мв до 200в... или да де от 0 до 200в. и тази точност 0,5 зависи от АЦП то нали така...което си е вградено в mcu-то.
Tодор Пламенов Димитров София/Ямбол

tommyboy

  • Направо Робот! :)
  • *****
  • Публикации: 416
    • Профил
DC Волтметър с PIC16F
« Отговор #3 -: Март 20, 2010, 11:06:38 pm »
Няма смисъл да се претеснява за отрицателните напрежения, на входа се слага един 'повдигач' така да се каже два еднакви резистора единия пин на единия резистор към маса, а на другия към захранване, на средната точка входния сигнал след това буфера с ОУ и после ацп. Ако на входа имаш -2.5В на входа на ацп ще се получи 0В от там вече ще си ги оправя софтуерно.

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 187
    • Профил
DC Волтметър с PIC16F
« Отговор #4 -: Март 21, 2010, 09:26:25 am »
tommyboy, това не е така дори и на теория.
Причинате е, че поради неизбежни толеранси и дрейфове на параметрите на тези резистори, на практика е невъзможно да се уличи точно "нулата" и при 0 волта на входа винаги ще показва някаква стойност. Тази стойност може да достичгне до 1% от максималното показание, което вече е много. Китайчетата от 5 лв рядко грешат с повече от 1 единица при "0" на входа.
Не може да не може

Венцислав Караджов, 61 год.

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
DC Волтметър с PIC16F
« Отговор #5 -: Март 21, 2010, 03:38:24 pm »
tommy нещо си се объркал. Това което описваш се нарича "суперналагне" и тези 2.5В са "виртуална маса". И обикновенно сигнала който е променлив се "налага" върху тази маса през кондензатор, който блокира DC потенциала от делителя. Тука се разправяме с DC, и този трик не работи. Попринцип става, като сложиш още един резистор, еднакъв на другите, по закона на суперпозицията, но преди това трябва да свалиш сигнала до 5V, па после да сваляш импеданса, и какво ли още не. Просто трябва да се нагласят делителите така, че винаги резултата да е положителен в съответната конфигурация.

Да кажем, че измерваното напрежение е -200В, и че искаме да измерваме 0В на входа. Тогава ще ни трябва делител 5:200. Ако нашият делител консумира примерно 1mA, тогава ни трябват само резистори 5k и 200k. Схема 1

Нека сега си направим сметка за положителни напрежения. Ако входното напрежение е 200В, то на изхода на делителя получаваме приблизително 9.76В... Схема 2

За тази цел ще направим втори делител, и ще свалим напрежението до 5В. За да не се налага да правим сложни изчисления, ще изберем този делител да не консумира повече от 1mA. Например 100uA. Намираме, че делителя има съпротивление 97,6k.

После намираме долният резистор:

5*97.6k = 9.76*x
x = 50k
За другият резистор съвсем спокойно използваш 47k.
Схема 3

По същият начин изчисляваме и за други стъпала и във софтуера си нагласяш всичко останало. И да отговоря на hacker4eto, не можеш да използваш единично стъпало mv-V, заради делителите. Просто процесора има прекаленно малък разряд - 10-бита.

И това е общо взето.. този волт-метър няма разбира се да ти дава точни резултати.. но ако искаш да са по точни.. намаляваш тока на вторият делител, и/или увеличаваш тока на първият. Имай в предвид, че говорим за нискоомен източник на напрежение ... За това в началото едно усилвателно стъпало ще трябва да направиш с транзистори.
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

hacker4eto1

  • Вече знае какво е робот!
  • *****
  • Публикации: 78
    • Профил
DC Волтметър с PIC16F
« Отговор #6 -: Март 21, 2010, 04:46:08 pm »
Meрси за разяснението така добре на делителите ,ще направя една схема за да си кажите мнението...
Tодор Пламенов Димитров София/Ямбол

tommyboy

  • Направо Робот! :)
  • *****
  • Публикации: 416
    • Профил
DC Волтметър с PIC16F
« Отговор #7 -: Март 21, 2010, 06:53:48 pm »
Е нема да се слага кондезатор бре и ДЦ си минава като по вода (е и това дето е от захранването си отива към източника хехе), а проблема с толеранса се избягва като се сложи тример така се донастройва и калибрира. Аз лично съм правил скопче с графичен ЛЦД верно си имаше грешка ама проблема ми беше от нестабилното напрежение, което подавам на тоя тример. Пък сега, ако ви се занимава да правите точни уреди ок ама не си струва, може на ръка да се скалъпи само нещо средно.
Пък ако му се занимава на човека може да си направи инвертиращ дц-дц за отирацателното опорно напрежение на ацп (само да е стабилно), може и други схеми да се ползват специализирани.

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
DC Волтметър с PIC16F
« Отговор #8 -: Март 21, 2010, 08:47:38 pm »
Ето сам си направи извода от тези 4 примера . Първите два примера използват метода на суперпозицията..
Последните два показват това което ти предлагаш. Приемаме, че източниците са идеални (и те почти са като ги повтаряме с усилвателя).
Тодоре ето още един начин как можеш да си направиш стъпалото.. този е по-точен, но компонентите са повече.
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

hacker4eto1

  • Вече знае какво е робот!
  • *****
  • Публикации: 78
    • Профил
DC Волтметър с PIC16F
« Отговор #9 -: Март 24, 2010, 02:09:46 am »
На базата на обясненията ви започнах да правя схема ...И мисля ,че я направих искам само ви е да си кажите мнението и дали съм си усложнил задачата :) и имам една молба към Vexorian за съвет дали схемата е приложима в този си вид :) ако има желаещи ще ви пратя файла от Proteus.. Схемата според мен си работи но не мога да я симулирам понеже нямам код който да въведа в микроконтролера.. Та според вас схемата ми има ли някакво бъдеще като волтметър...
И последният ми въпрос е ОУ в изхода му и на входа на DC конвертора(AD736) според зададеното напрежение от Батерията имам ~ 7волта и половина или 7 според напр. на батерията... и това не е 5в които ми трябват. Та ОУ съм го избрал с голям коефицент на усилване ? А?
Ето и схемичката...
Tодор Пламенов Димитров София/Ямбол

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 187
    • Профил
DC Волтметър с PIC16F
« Отговор #10 -: Март 24, 2010, 09:37:49 am »
На пръв поглед:
- утечката на Д2 ще ти компрометира измерването;
- MAX232 иска още поне 2 кондензатора за помпите, направи справка с PDF-а;
- базовите резистори на транзисторите, които управляват релетата, са оптимистично високи;
- LM324 е прекалено неточен за мястото, където си го сложил. Сложи нещо "по-така";
- не виждам блокиращите кондензатори на захранването около интегралните схеми;
Не може да не може

Венцислав Караджов, 61 год.

hacker4eto1

  • Вече знае какво е робот!
  • *****
  • Публикации: 78
    • Профил
DC Волтметър с PIC16F
« Отговор #11 -: Март 24, 2010, 12:02:14 pm »
Ще видя Диода добре :) ,но аз не използвам Max232  ,а RS232 и за него мисля ,че няма такива помпи :) докато Max232 си изма изводите за тези кондензатори... Относно Базовите Резистори ще ги намаля малко...
А под "по-така" какво имаш предвид :) относно LM324
Tодор Пламенов Димитров София/Ямбол

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
DC Волтметър с PIC16F
« Отговор #12 -: Март 24, 2010, 08:29:41 pm »
Значи всичко е О К на пръв поглед, НО
1- Защо релета?? :D Къде си виждал волтметър с релета? Можеш да сложиш примерно обикновен ключ, можеш и аналогови ключове да сложиш, може и с транзистори да го направиш, но от всички тези неща ти избра точно най-тромавите и скъпи елементи. Да не говорим, че микроконтролера има още ADC канали.
2 - RMS-DC.. за какво като не мериш AC, или не съм разбрал правилно? + това ти можеш да си го реализираш направо с микроконтролера. Още повече, че нямаш двойно захранване.. така че трябва да се добавят допълнителни елементи за да го настройш да работи с AC. (виртуална маса, кондензатори.. това което споменах в миналия ми пост)
3 - Какъв е този мерак да правиш усилване не мога да разбера? :P Правиш си повторител и това е, но сигурно имаш някаква идея която още не схващам.
4 - D2... не разбирам защо си го сложил?
5 - Липсват ти 2 кондензатора на MAX232..
6 - Сложи един бушон на входа

Изобщо това е "любителски".. така да се каже волтметър. Много оптимизиране трябва да му направиш, но общо взето си в правилната посока.. Реализирай го така, направи малко експерименти да видиш как стоят нещата, и после почни да го оптимизираш. В електрониката не е само важно дали работи, важно е да работи ефикасно и да е евтино.

Ето една препоръка.. направи отделни делители, и всеки го дай през повторител LM324.. на всеки ADC канал.. така си спестяваш тези безмислени релета и транзистори и диоди, и какво ли още не..  А пък можеш и същата конфигурация да използваш с текущия делител. Имаш цял микроконтролер и не се възползваш максимално от периферията.

Това е общо взето, делителя не съм го погледнал щателно, сигурно си го нагласил.. Сигурно има и още неща който не съм видял.
Ако имаш още въпроси питай.

П.С. Ако работиш със C, а не с Асемблер, направо смени пик-а с един 18ф.. много по-гъвкави са и имат вграден умножител, а той ще ти трябва. 18f4520 е добър...
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D