Як я можу взяти вибірку аналогового сигналу від 2 до 2 В до мікроконтролера PIC?


10

Я використовую мікросхему PIC з 10 бітним АЦП, щоб брати показання з аналогового сигналу з частотою менше 300 Гц. Однак аналоговий сигнал знаходиться в діапазоні -2 В і +2 В. Як я можу обумовити сигнал, щоб він перейшов у корисний діапазон (якщо вхід в АЦП повинен бути позитивним) Також у мене немає позитивного і негативне джерело живлення.


3
Можливий дублікат: electronics.stackexchange.com/questions/3105/…
Thomas O



@Kellenjb - питання, на які ви посилаєтесь, не стосуються обчислень для даного конкретного випадку, коли напруга входу виходить обома шляхами за рамки рейки.
stevenvh

Наступні питання були закритими як дублікати цього питання і мають корисні відповіді: electronics.stackexchange.com/questions/15985/… , electronics.stackexchange.com/questions/15940/…
Кевін Вермер

Відповіді:


14

важлива примітка:
ця відповідь була розміщена, щоб вирішити проблему для входу від -20V до + 20V , тому що саме про це і задавали Це розумний метод, але не працює, якщо межа вхідної напруги залишається між рейками.

Вам доведеться масштабувати напругу за допомогою дільника резистора, щоб ви отримали напругу між -2,5 В і + 2,5 В, і додати 2,5 В. (Я припускаю, що 5В джерела живлення для вашого ПОС).

Наступний розрахунок виглядає довго, але це лише тому, що я детально пояснюю кожен крок. Насправді це так просто, що ти можеш це зробити в голові за короткий час.

Спочатку це:

R1 - резистор між і , R2 - резистор між і , а R3 - резистор між і . У Про У Т + 5 В В Про У Т У Про У Т Про Н ДVINVOUT
+5VVOUT
VOUTGND

Скільки у нас невідомих? Три, R1, R2 і R3. Не зовсім, ми можемо вибрати одне значення вільно, а два інших залежать від цього. Виберемо R3 = 1k. Математичний спосіб пошуку інших значень полягає у створенні набору з двох одночасних рівнянь з двох пар ( , ) та вирішення невідомих значень резистора. Будь-які пари ( , ) будуть робити, але ми побачимо, що ми можемо надзвичайно спростити речі, обережно вибираючи ці пари, а саме крайні значення: ( , ) та ( , ). V O U T V I N V O U T + 20 V + 5 V - 20 V 0 VVINVOUTVINVOUT+20V+5V20V0V

Перший випадок: , Зверніть увагу, що (і це ключ до рішення!) Обидва кінці R2 бачать , тому немає падіння напруги, а отже, і струму через R2. Це означає, що повинен бути таким же, як (KCL). . Ми знаємо струм через R1, а також напругу над ним, тому можемо обчислити його опір: . Знайшли нашу першу невідому! V O U T = + 5 V + 5 V I R 1 I R 3 I R 3 = + 5 V - 0 VVIN=+20VVOUT=+5V
+5VIR1IR3
R1=+20V-5VIR3=+5V0V1kΩ=5mA=IR1
R1=+20V5V5mA=3kΩ

Другий випадок: , Те саме, що і з R2, відбувається зараз із R3: немає падіння напруги, тому немає струму. Знову відповідно до KCL, зараз = . . Ми знаємо струм через R2, а також напругу над ним, тому можемо обчислити його опір: . Знайшли нашу другу невідому! V O U T = 0 V I R 1 I R 2 I R 1 = - 20 V - 0 VVIN=20VVOUT=0V
IR1IR2
R2=+5V-0VIR1=20V0V3kΩ=6.67mA=IR2
R2=+5V0V6.67mA=0.75kΩ

Отже, рішення: . R1=3kΩ,R2=0.75kΩ,R3=1kΩ

Як я вже сказав, важливим є лише співвідношення між цими значеннями, тому я можу також вибрати . Ми можемо перевірити це рішення щодо іншої пари ( , ), наприклад ( , ). R1 і R3 тепер паралельні (вони обоє мають + 2,5V-0V над ними, тому коли ми обчислюємо їх загальне значення, ми знаходимо , саме значення R2, ​​і значення, яке нам потрібно було отримати від ! Отже наше рішення справді правильне. [Штамп QC йде тут]V I N V O U T 0 V 2,5 V 0,75 k Ω + 2,5 V + 5 VR1=12kΩ,R2=3kΩ,R3=4kΩ
VINVOUT0V2.5V0.75kΩ+2.5V+5V

Останнє, що потрібно зробити - це підключити до АЦП ПІК. АЦП часто мають досить низький вхідний опір, тому це може порушити нашу ретельно обчислену рівновагу. Не варто турбуватися, однак, нам просто потрібно збільшити R3, щоб . Припустимо, , тоді З цього знаходимо . R 3 / / R A D C = 1 k Ω R A D C = 5 k Ω 1VOUTR3//RADC=1kΩRADC=5kΩ R3=1,25kΩ11kΩ=1R3+1RADC=1R3+15kΩR3=1.25kΩ


редагувати
ОК, це було розумно і дуже просто, навіть якщо я сам так говорю. ;-) Але чому б це не спрацювало, якщо вхідна напруга залишається між рейками? У вищезазначених ситуаціях у нас завжди був резистор, який не протікав через нього струм, так що, слідуючи за KCL, струм, що надходить у вузол через один резистор, виходив через інший. Це означало, що одна напруга повинна бути вищою за , а інша - нижчою. Якщо обидві напруги нижчі, то від цього вузла буде подаватися тільки струм, і KCL забороняє це. V O U TVOUTVOUT


-20V в призведе до трохи нижче 0V.
Олін Латроп

(і, можливо, Олін Летроп): Я намагався з'ясувати, як ви знаєте значення резистора 7k. Я помітив, що коли напруга на вході становить 2,5 В, то не буде подаватися струм до вузла, незалежно від значення резистора, оскільки різниці напруги немає. Але 2.5V в не середній діапазон, в той час як 2.5V вихід теж. Чи це не означає, що дільник повинен мати два різних резистора? Якщо ти розумієш що я маю на увазі.
Федеріко Руссо

Можливо, це також пояснює коментар @Olin Lathrop.
Федеріко Руссо

@Frederico: Так, це не буде повністю симетрично. Я обговорюю це у своїй відповіді. Можна відрегулювати три резистори для відображення від -20 до +20 вольт до 0 до 5 вольт, але ми з Стівеном показали простіші випадки, коли ви отримуєте літ-асиметрію.
Олін Летроп

6

Найпростіший спосіб - використовувати «дільник резисторів».

Ви не сказали, на якій напрузі працює цей ПІК, і тому діапазон вводу A / D є, тому давайте для прикладу використовувати 5В. Діапазон вхідної напруги - 40 В, а вихідний - 5 В, тому вам потрібно щось, що зменшується принаймні на 8. Ви також потребуєте, щоб результат був зосереджений на 1/2 Vdd, що становить 2,5 В, тоді як напруга на вході орієнтоване на 0 В .

Це можна досягти за допомогою 3 резисторів. Один кінець усіх трьох резисторів з'єднаний між собою та вхідним штифтом PIC A / D. Інший кінець R1 йде до вхідного сигналу, R2 переходить до Vdd, а R3 переходить на землю. Дільник резисторів утворений R1 і паралельною комбінацією R2 і R3. Ви можете налаштувати R2 і R3, щоб зосередити отриманий діапазон на 2,5 В, але для простоти пояснення цього, ми будемо жити з трохи асиметрії та трохи послабимо, щоб переконатися, що обидва кінці обмежені діапазоном Vss-Vdd.

Скажімо, PIC хоче, щоб аналоговий сигнал мав імпеданс 10 кОм або менше. Знову для простоти зробимо R2 і R3 20 кОм. Імпеданс, що живить PIC, буде не більше ніж паралельне поєднання тих, що становить 10 кОм. Для ослаблення 8, R1 має бути в 7 разів R2 // R3, що становить 70 кОм. Однак, оскільки результат не буде точно симетричним, нам потрібно послабити трохи більше, щоб переконатися, що -20 В не призведе до менше 0В в ПОС. Це фактично вимагає загасання 9, тому R1 повинен бути не менше 8 разів R2 // R3, що становить 80 кОм. Стандартне значення 82 кОм дозволить отримати деякий нахил і запас, але ви все одно отримаєте більшу частину діапазону A / D для вимірювання вихідного сигналу.

Додано:

Ось приклад пошуку точного рішення подібної проблеми. Це не має асиметрії та має певний заданий вихідний опір. Ця форма рішення завжди може бути використана, коли діапазон А / Д повністю знаходиться в діапазоні вхідної напруги.


+1 тому, що стосується підрахунку деталей, це найпростіший спосіб побудувати необхідне. Деякі зауваження: Можна потурбуватися про асиметрію в коді UC, і додавши один конденсатор паралельно до резистора, що йде на GND, сигнал можна згладити (фільтр низьких частот). Кутова частота. є 1 / (2 * pi R C), де R - паралельне значення всіх трьох резисторів, а C - значення кришки, яка додається (АЦП потребує обмеження. у будь-якому разі!). Будь ласка, обчисліть точність цієї настройки, враховуючи всі допуски (R, помилка АЦП у +/- макс. LSB, похибка відбиття, ...) - це може бути гірше, ніж очікувалося.
zebonaut

@zebonaut - я зробив розрахунок ще раз і детально пояснив кожен крок у моїй оновленій відповіді (набагато менш складно, як це виглядає!). Це дає точне відображення від (-20V .. + 20V) до (0V .. + 5V)
stevenvh

@zebonaut: Конденсатор може бути корисним як фільтр для згладжування, але він нічого не стосується асиметрії. Я не думав, що маленька асиметрія була великою справою. Досить просто доглядати за прошивкою, як ви вже говорили.
Олін Летроп

Якщо ви хочете компенсувати асиметрію програмного забезпечення, вам доведеться розрахувати точну функцію передачі. Якщо вам це все одно доведеться робити, чому б не використати в першу чергу правильні значення резисторів (не ті, які були з моєї першої (помилкової) відповіді!)
stevenvh

@stevenvh: Немає нічого поганого у використанні "правильних" значень резистора. Я зрозумів, що можливе точне відображення (як я вже згадував у своїй відповіді), але вирішила не вникати в складність обчислень і відповісти на концептуально простіший випадок, що призводить до невеликої асиметрії. У будь-якому випадку, вам доведеться трохи більше ослабити облік схильності, і, мабуть, слід все-таки відкалібруватися в прошивці.
Олін Латроп,

2

Це стандартна схема для цього. Вам потрібно масштабувати значення резистора для необхідного опору.


Чи потрібно вам переконатися, що вихідний опір відносно низький, якщо ви користуєтесь цим?
Нік Т

Леон, чому б не використовувати конденсатор замість резистора 1k?
stevenvh

Це рішення, пов'язане з постійним струмом. Серійний резистор необхідний для правильної роботи.
Леон Геллер

3
@ Леон Хеллер: Я думаю, це буде кращою відповіддю, якби ви пояснили, як знайти правильні значення для резисторів.
Федеріко Руссо

2

Якщо сигнал не є постійним струмом або якщо посилання постійного струму не важливо, сигнал може бути ємнісно пов'язаний з входом АЦП.

Крім того, якщо ваша земля для PIC плаває, ви можете прив’язати свій сигнал сигналу до 1/2 VDD PIC.


Якщо ви використовуєте ємнісні з'єднання, ви позбавитесь від постійного компонента, але негативна частина сигналу все одно піде нижче землі, якщо ви не надасте зміщення на вхідному штирі резистивним дільником, як у ланцюзі Леона.
stevenvh

Напруга живлення не було вказано - вона працюватиме з 5В АЦП. Якщо ви використовували менший Vdd, вам знадобиться масштабувати дані. Він перетворився б на ланцюг Леона з конденсатором в цій точці.
W5VO

2

Наступна схема повинна зробити цю роботу:

3.3V
 +
 |
 \
 / 1k
 \
 |
 +-- ADC input
 |
 \
 /  1k
 \
 |
 +-- Signal input (-2V to +2V)

Це потенційний подільник. При -2 В вихід буде 0,65 В; при + 2В, 2,65В.

Весь шум на рейці 3,3 В буде переданий на вхід, тому використовуйте хорошу посилання на напругу для зменшення цієї проблеми.

Це буде працювати і з іншими витратами, але зміщення зміститься.


Так, це працює, але було б непогано використовувати весь діапазон АЦП :-)
stevenvh

@stevenh Ви можете це зробити, використовуючи посилання 0,65 В і 2,65 В, хоча тоді ви також можете використовувати свою схему.
Томас О

VREF+VREFGND

@stevenh PIC24, dsPIC і PIC32 безумовно мають Vref-. Я думаю, що деякі 18F теж.
Томас О

Так, добре, я не знаю їх усіх (їх дуже багато ). ОП не каже, яку частину він використовує, і він, здається, зник, і не запитуйте його.
stevenvh

1

VADCREF
VADCVDDVADCVADCREF+

VDD2V3.3VVADC

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.