Автор Тема: Arduino mega adk волтметър  (Прочетена 30525 пъти)

stunito0o0

  • Робо-Новак
  • *****
  • Публикации: 14
    • Профил
Arduino mega adk волтметър
« -: Януари 30, 2013, 12:59:08 pm »
Здравейте искам да направя волтметър с ардуино мега адк . Намерих няколко статии и горе-долу разбрах как става.Ето една статия  където  е обяснено, но за жалост не пише как се изчисляват резисторите  .Целта ми е да меря напрежението на отделните клетки на LiPo батерия  с три клетки. Изведени са на отделни кабелчета , така че трябва само да  се навържат към резистори .

Благодаря за отделеното време.Очаквам вашите отговори.  :)
Станислав Димов 15г. Варна

dzwer

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Arduino mega adk волтметър
« Отговор #1 -: Януари 30, 2013, 05:54:21 pm »
http://www.raltron.com/cust/tools/voltage_divider.asp
http://www.random-science-tools.com/electronics/divider.htm
Големината на резисторите се съобразява с това колко искаш да е разрядния ток и с входното съпротивление на микроконтролера.
Дай точната схема на свързване на клетките и напрежението на всяка от тях и ще ти дам конкретното свързване, ако не можеш да се справиш.
Nothing moves you like a hydropneumatic Citroen...
HTC One S - The Sense Matters!

stunito0o0

  • Робо-Новак
  • *****
  • Публикации: 14
    • Профил
Arduino mega adk волтметър
« Отговор #2 -: Януари 31, 2013, 02:26:06 pm »
Благодаря за отговора.
Ето страницата на контролера
и страницата на батерията
Схемата ще е като на страницата която постнах в предишния пост,ето тази ,а относно напрежението максималното ще е около 4,1 V а мин около 2~2,3 V.Относно резисторите днес прочетох още малко в интернет и мисля да са R1=100 к. ома и R2=200 ома.Правилно ли съм ги пресметнал? :)
Станислав Димов 15г. Варна

dzwer

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Arduino mega adk волтметър
« Отговор #3 -: Януари 31, 2013, 06:35:53 pm »
Батерията е от три клетки последователно!
Схемата на всеки аналогов вход ще ти дава горе долу едно и също напрежение, ако клетките са с еднакво напрежение.
Ain_1, Ain_2 и Ain_3 са произволни аналогови входове на ардуиното.
http://s17.postimage.org/fldc0odyn/cell_volt.png
Ти си определяш кои точно аналогови входове ще ползваш и съответно да си коригираш кода на програмата.
Референтното напрежение за АЦП-тата трябва да е 5 волта! Ако искаш да ползваш някое от вътрешните на 1,1 и на 2,56 волта - кажи, за да ти коригирам схемата!
Изтегли си програмката LTSpice IV от тук:
http://www.linear.com/designtools/software/
Страшно много ще ти помогне за елементарни симулацийки!
Иначе по-горе ти дадох линкове с калкулатори за резисторни делители, потърси си и други, ако нещо не ти харесват, просто бяха в първите резултати, когато ги търсих.
А най-добре почети основи на електрониката, ако не си учил :)
Nothing moves you like a hydropneumatic Citroen...
HTC One S - The Sense Matters!

stunito0o0

  • Робо-Новак
  • *****
  • Публикации: 14
    • Профил
Arduino mega adk волтметър
« Отговор #4 -: Февруари 01, 2013, 12:25:42 pm »
Благодаря ти за схемата. :) Може ли само да ми поясниш ,защо съпротивленията намалят след всяка клетка и защо на последната клетка резисторният делител  има само едно съпротивление.
Благодаря за отделеното време. :)
Станислав Димов 15г. Варна

dzwer

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Arduino mega adk волтметър
« Отговор #5 -: Февруари 01, 2013, 01:32:49 pm »
АЦП-тата могат да мерят от 0 до 5 волта, когато ползваш 5 волта за референтно напрежение.
Всяка клетка ти е под 5 волта в напълно заредено състояние и над 2 волта в разредено(точните стойности ще трябва да си ги провериш за съответния тип батерия).
Точността на измерване на АЦП-тата е  най-висока в последната една трета от обхвата, т.е. над 2/3 от референтното напрежение.
Най-долното АЦП получава директно напрежението на първата клетка, което не надвишава 5 волта, за това е вързано само през резистор за защита за всеки случай..
За втората и третата клетка напреженията са вече два или три пъти по-високи спрямо първата клетка(сумират се) и за това се налага чрез резисторни делители да се намаля напрежението, за да не надвишава 5 волта на всеки АЦП вход. Иначе ще изгориш микроконтролера!
За това ти казах - седни прочети малко основи на електротехниката - закона на Ом, основни неща като паралелно и последователно свързване на резистори, кондензатори и индуктивности, основи на импулсната схемотехника за преходните процеси при RC звената(най-често срещаните неща при микроконтролерите и имбедид системите).
Nothing moves you like a hydropneumatic Citroen...
HTC One S - The Sense Matters!

stunito0o0

  • Робо-Новак
  • *****
  • Публикации: 14
    • Профил
Arduino mega adk волтметър
« Отговор #6 -: Февруари 01, 2013, 02:14:57 pm »
Аха сега вече  ми стана ясно. Тази  събота или неделя ще трябва седна да прочета малко. :) Но имам още един въпрос.Съпротивлението на първата клетка ,което е за всеки случай  няма ли да разрежда батерията прекалено бързо .Понеже  бях чел някъде ,че колкото по-голямо е съпротивлението ,толкова  по-малък е тока и толкова по-бавно  се разрежда  батерията.

ПС.В горните постове забравих да спомена ,че  измерването на напрежението ще е постоянно тоест от както се свърже батерията към някакъв консуматор ,докато контролера неотчете, че е разредена.
Станислав Димов 15г. Варна

dzwer

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Arduino mega adk волтметър
« Отговор #7 -: Февруари 01, 2013, 02:45:21 pm »
За първата клетка с най-малкото съпротивление реално ще ти харчи най-малко ток, защото еквивалентното съпротивление се явява цялото входно на АЦП-то.
Сумарната консумация на конкретната схема при напълно заредена батерия ще е около 1мА(един мили ампер), което мисля е нищожно, спрямо другите консуматори от батерията...
Nothing moves you like a hydropneumatic Citroen...
HTC One S - The Sense Matters!

stunito0o0

  • Робо-Новак
  • *****
  • Публикации: 14
    • Профил
Arduino mega adk волтметър
« Отговор #8 -: Февруари 01, 2013, 03:16:09 pm »
Благодаря  много  за  отделеното  време. Тези  дни  ще  сглобя  схемата  и ще  пробвам. Ще  пиша  когато  има  развитие. :):)
Станислав Димов 15г. Варна

krasimir

  • Робо-Новак
  • *****
  • Публикации: 34
    • Профил
Arduino mega adk волтметър
« Отговор #9 -: Февруари 03, 2013, 03:25:41 pm »
Аз исках да правя същото нещо с ардуино, но нещата не се получиха както трябва. Проблема, който имах е че АЦП-то не мери точно. На теория при 5 волта трябва да има стойности 1023, но на практика не е така. Пробвал съм с различни източници (акумулатори и стабилизирани захранвания) и съм мерил с два, три различни мултицета.

На теория - 5/1023 =~ 0.004887, но на практика това число нито е толкова нито е постоянно друго. Варира 0,00468 - 0,0048... така на пръв поглед не е кой знае какво, но на практика мериш 4,27 волта примерно, а то показва 4,17... понякога може да се получи разлика от 0,3V.

П.П. С Ардуино Уно е това.
В областта на Ардуино и програмирането абсолютно начинаещ.

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 187
    • Профил
Arduino mega adk волтметър
« Отговор #10 -: Февруари 03, 2013, 06:20:25 pm »
Цитат на: "krasimir"
Аз исках да правя същото нещо с ардуино, но нещата не се получиха както трябва. Проблема, който имах е че АЦП-то не мери точно. На теория при 5 волта трябва да има стойности 1023, но на практика не е така. Пробвал съм с различни източници (акумулатори и стабилизирани захранвания) и съм мерил с два, три различни мултицета.

На теория - 5/1023 =~ 0.004887, но на практика това число нито е толкова нито е постоянно друго. Варира 0,00468 - 0,0048... така на пръв поглед не е кой знае какво, но на практика мериш 4,27 волта примерно, а то показва 4,17... понякога може да се получи разлика от 0,3V.

П.П. С Ардуино Уно е това.


Сложи 100nF между входа на ADC и аналоговата маса, възможно най-близо до пиновете на процесора. След това премери пак. ;)
Не може да не може

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

dzwer

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Arduino mega adk волтметър
« Отговор #11 -: Февруари 04, 2013, 07:16:46 am »
Това с кондензаторчетата е много добра идея.
Ще компенсират пиковете когато сработва семпъл-анд-холд системата и наистина ще подобри точността на измерването.
В случая, когато се мери постоянно напрежение ще са много полезни!
Nothing moves you like a hydropneumatic Citroen...
HTC One S - The Sense Matters!

stunito0o0

  • Робо-Новак
  • *****
  • Публикации: 14
    • Профил
Arduino mega adk волтметър
« Отговор #12 -: Февруари 21, 2013, 06:01:50 am »
Здравейте отново, :)
най-после ми остана време, да направя схемата ,но и при мен има проблем с меренето. Получавам сериозни разлики понякога с до 0.5 волта.Виждам че е обсъждан в тази тема въпроса, но не ми стана ясно този кондензатор от 100 нано фарада електролитен ли да е ,или керамичен и как точко трябва да се свърже  - паралелно между аналоговия пин и нулата ,или последователно между аналоговия пин и резисторния делител?
Благодаря предварително. :)
EDIT:сега видях ,че трябва да е паралелно и възможно  най-близо до пиновете на процесора.
Станислав Димов 15г. Варна

dzwer

  • Робо-Новак
  • *****
  • Публикации: 16
    • Профил
Arduino mega adk волтметър
« Отговор #13 -: Февруари 21, 2013, 02:18:35 pm »
Къде се получава разлика - като мериш общото напрежение на трите клетки или при замерването на първата клетка?
Ако е при втората и третата клетка на батерията, ще трябва да ползваш по-нискоомни резистори - например намали им съпротивленията наполовина.
Ако е още при първата клетка, където нямаш делител, то тогава си въведи някакъв корекционен коефициент и експериментално го определи колко да е точно, т.е. Измерена стойност * Корекция = Реална стойност. Един вид софтуерно калибриране...
Nothing moves you like a hydropneumatic Citroen...
HTC One S - The Sense Matters!

stunito0o0

  • Робо-Новак
  • *****
  • Публикации: 14
    • Профил
Arduino mega adk волтметър
« Отговор #14 -: Март 19, 2013, 09:19:11 pm »
Здравейте отново,
dzwer благодаря ти за идеята за софтуерният филтър,не се бях сетил, ще пробвам.А относно резисторните делители мисля да променя стойностите малко. според тази картинка съпротивленията ще станат:
R1- 20k
R2- 10k
R3- 15k
R4- 15k
R5- 30k
Дали така няма да е по-добре?  :)
Станислав Димов 15г. Варна