Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

AVR Atmega - AVR Atmega pomiar i wyjście napięcia +-10V

motykami 02 Dec 2013 21:51 3873 4
SterControl
  • #1
    motykami
    Level 18  
    Witam, mam wielką prośbę o pomoc, potrzebuję za pomocą procesora AVR (prawdopodobnie Atmega 32/64 – ale to nie ma tutaj większego znaczenia) mierzyć napięcia z zakresu +-10V, oraz za pomocą PWMu „generować” napięcia również z przedziału +-10V.

    Dokładniej mówiąc chcę podpiąć taki procesor do sterownika PLC (Siemens Simatic S7-1200) który to właśnie posiada moduł wejść/wyjść analogowych z zakresem napięć +-10V. Sygnały te będą wolnozmienne, więc akurat z tym nie ma problemu, atmega spokojnie poradzi sobie z ich pomiarem, muszę tylko dostosować poziomy napięć.
    Potrzebuję 1 wejście PLC (+-10V)-> Atmega (ADC), i 2 wyjścia Atmega (PWM) -> PLC(+-10V)

    Problemem jest dla mnie skonstruowanie układów konwertujących napięcie, w AVRze jak wiadomo mogę mierzyć napięcia 0-5V oraz generowany PWM również będzie miał 5V. O ile z samym przeskalowaniem napięcia nie było by problemu (dzielnik napięcia na dwóch rezystorach) to z pomiarem napięć ujemnych mam lekki problem.

    Co do układu wejściowego to zacząłem kombinować coś z prostownikami aktywnymi na wzmacniaczach operacyjnych, znalazłem układ prostownika aktywnego który ładnie ujemny sygnał „odwraca”, więc wystarczy tylko jeszcze jakiś dzielnik napięcia na rezystorach i taki sygnał można podać na wejście ADC Atmegi, tyle że jak odróżnić czy w danej chwili mierzymy napięcie dodatnie czy ujemne ?

    Układ wyjściowy:
    Tutaj niestety nie mam pomysłu jak to zrobić, pierwszym pomysłem było zastosowanie scalonego mostka H, tyle że wtedy mamy problemy ze wspólną masą. Musiał bym więc użyć jednego zasilacza do atmegi i układu wejściowego wzmacniaczy operacyjnych, następnie optoizolację (transoptory) dla sygnałów PWM i sterowanie mostkami H, i oddzielnych zasilaczy do jednego i drugiego mostka H – układ taki jak najbardziej by działał tyle że odrobinę komplikuje on całe urządzenie (dodatkowe zasilacze).
    Dla układu wejściowego i tak muszę mieć zasilacz z napięciem symetrycznym, więc myślę że można by pójść tą drogą. Można wstawić komplementarną parę tranzystorów (npn na napięciu ujemnym i pnp na napięciu dodatnim) tyle że nie mam pojęcia jak nimi sterować.
    Potrzebował bym układu który dało by się sterować jak mostek H, czyli wejście Enable (dla PWM) oraz 1-2 piny do sterowania polaryzacją napięcia wyjściowego.
    Prosił bym o radę i pomoc jak takie coś zrealizować. Przypuszczam że od strony sprzętowej najszybciej było by użyć zewnętrznego konwertera DAC – tyle że obawiam się że nie poradzę sobie z jego obsługą programowo, a PWM w zupełności by mi wystarczył.

    Pozdrawiam i z góry dziękuję za wszelkie rady.
  • SterControl
  • #2
    mi14chal
    Level 28  
    Co do układu pomiaru napięć z zakresu +-10V to wystarczy że zastosujesz dzielnik napięcia, żeby mieć +-2.5V na wyjściu a potem wystarczy przesunąć napięcie do 0-5V tak żeby zmierzyć na Atmedze.
  • SterControl
  • #3
    tank_driver
    Level 17  
    I dokładnie to samo można zrobić z wyjściem, generować PWM-em 0 do 5V, przy pomocy wzmacniacza operacyjnego przesunąć to wyjście i wzmocnić do poziomu +/- 10V, gdzie 2,5V z PWM Atmegi oznaczać będzie 0V na wyjściu układu. Rozdzielczość to 20V/256 = najmniejszy skok napięcia to 0,078V, przy PWM 8-bit. Można wykorzystać TIMER1 w trybie PWM 10bit - wtedy rozdzielczość wejścia (ADC 10bit) i wyjścia będzie identyczna.

    Poczytaj o wzmacniaczach operacyjnych, dowiesz się jak przesuwać offset napięcia oraz dobrać wzmocnienie.

    Pozdrawiam,
    TD
  • #4
    markolsrz
    Level 11  
    Na wyjściu PWM sugerowałbym układ do komunikacji z portem RS232, np. MAX232 - wytwarza napięcie ±10V (w praktyce trochę niższe), trzeba tylko pamiętać, że dodatkowo odwraca fazę, a więc i wypełnienie.
    Pomiar napięcia można przeprowadzić bez odwracania używając dzielnika napięciowego podłączonego do źródła napięcia 3.3V (np stabilizator 3.3V z obciążającym go opornikiem podłączonym do masy).
    oznaczenia:
    Ua - napięcie na wejściu atmegi
    Um - napięcie mierzone
    Jeśli użyć opornika R1=1kΩ między wejściem atmegi, a źródłem napięcia 3.3V
    oraz R2=3.3kΩ między napięciem mierzonym, a wejściem atmegi uzyskasz zależność:
    (Um-3.3V)=4.3*(Ua-3.3V)
    Um=4.3*Ua-10.89V
    co pozwoli zmierzyć napięcia Um w zakresie: -10.89V(Ua=0V) do 10.61V(Ua=5V).