Lab 3. Placa de Achiziţie Date Multiplexoare, Circuite de Eşantionare-memorare, Convertoare...

15
L3. SMAPD 1 Lucrarea 3. Placa de achiziţie date: multiplexoare, circuite de eşantionare-memorare, convertoare analog-numerice şi numeric–analogice Progresele înregistrate în domeniul senzorilor şi al traductoarelor, al electronicii şi al informaticii au contribuit la organizarea în mod raţional şi economic a numeroaselor măsurări necesare astăzi în industrie. Spre exemplu, controlul, supravegherea şi comanda unei centrale termoelectrice necesită în mod normal mii de măsurări. Această tendinţă explică dezvoltarea foarte rapidă a instrumentaţiei numerice de măsurare. Numeroasele mărimi ce trebuie măsurate sunt desfăşurate în spaţii largi şi foarte diferite ca natură (temperaturi, presiuni, turaţii, eforturi etc.). Semnalele de măsurare trebuie transmise la un centru de prelucrare şi utilizare a informaţiilor, aflate de asemenea la distanţă. Pentru a evita diafonia dintre canalele de transmisie, dar şi din motive de economie, se utilizează multiplexorul, care cuplează pe rând canalele de măsurare la linia de transmisie. El este comandat fie de o logică cablată, fie mai ales de un microprocesor sau microcalculator, după un program adecvat. În funcţie de cerinţele sistemului de măsurare, o parte din componentele lanţurilor pot fi comune, de exemplu: amplificatorul, circuitul de eşantionare şi memorare etc. Utilizarea microprocesorului sau a calculatorului numeric presupune, obligatoriu, utilizarea unor convertoare analog-numerice (CAN) sau numeric-analogice (CAN) pentru trecerea de la mărimile analogice la semnale numerice şi invers. Se obţine astfel un sistem de măsurare şi achiziţie de date a cărui arhitectură poate fi diferită, în funcţie de cerinţele impuse de sistemul industrial de supravegheat şi controlat şi în funcţie de componentele utilizate în sistemul de măsurare. Figura 1. Structura unui lant numeric de masurare Arhitectura unui lanţ de măsurare numeric este prezentata in figura 1. El conţine o parte analogică, formată din traductor şi condiţionerul semnalului analogic, o parte de conversie analog-numerică, formată din circuitul de eşantionare-memorare (EM) şi convertorul analog-

description

Placa de achizitie

Transcript of Lab 3. Placa de Achiziţie Date Multiplexoare, Circuite de Eşantionare-memorare, Convertoare...

  • L3. SMAPD

    1

    Lucrarea 3. Placa de achiziie date: multiplexoare, circuite de eantionare-memorare, convertoare analog-numerice i numericanalogice

    Progresele nregistrate n domeniul senzorilor i al traductoarelor, al electronicii i al informaticii au contribuit la organizarea n mod raional i economic a numeroaselor msurri necesare astzi n industrie.

    Spre exemplu, controlul, supravegherea i comanda unei centrale termoelectrice necesit n mod normal mii de msurri. Aceast tendin explic dezvoltarea foarte rapid a instrumentaiei numerice de msurare. Numeroasele mrimi ce trebuie msurate sunt desfurate n spaii largi i foarte diferite ca natur (temperaturi, presiuni, turaii, eforturi etc.).

    Semnalele de msurare trebuie transmise la un centru de prelucrare i utilizare a informaiilor, aflate de asemenea la distan. Pentru a evita diafonia dintre canalele de transmisie, dar i din motive de economie, se utilizeaz multiplexorul, care cupleaz pe rnd canalele de msurare la linia de transmisie. El este comandat fie de o logic cablat, fie mai ales de un microprocesor sau microcalculator, dup un program adecvat.

    n funcie de cerinele sistemului de msurare, o parte din componentele lanurilor pot fi comune, de exemplu: amplificatorul, circuitul de eantionare i memorare etc.

    Utilizarea microprocesorului sau a calculatorului numeric presupune, obligatoriu, utilizarea

    unor convertoare analog-numerice (CAN) sau numeric-analogice (CAN) pentru trecerea de la

    mrimile analogice la semnale numerice i invers.

    Se obine astfel un sistem de msurare i achiziie de date a crui arhitectur poate fi diferit, n funcie de cerinele impuse de sistemul industrial de supravegheat i controlat i n funcie de componentele utilizate n sistemul de msurare.

    Figura 1. Structura unui lant numeric de masurare

    Arhitectura unui lan de msurare numeric este prezentata in figura 1. El conine o parte analogic, format din traductor i condiionerul semnalului analogic, o parte de conversie analog-numeric, format din circuitul de eantionare-memorare (EM) i convertorul analog-

  • L3. SMAPD

    2

    numeric (CAN), partea numeric propriu-zis, format din convertoarele de prelucrare numeric, microprocesor, afiaj numeric etc.

    Creterea complexitii sistemelor de msurare a condus la nlocuirea logicii cablate, ceea ce a permis creterea performanelor i scderea costurilor. Printre funciile caracteristice ncredinate microcalculatoarelor, se pot enumera: gestiunea dinamic a semnalelor provenind de la mai multe canale, dup un algoritm

    stabilit;

    memorarea informaiilor n scopul utilizrii lor ulterioare; supravegherea unor parametri i declanarea unor alarme ierarhizate sau a unor

    comenzi;

    trimiterea rezultatelor pe o reea telefonic sau informatic; extragerea unor semnale prin autocorelaie, intercorelaie, filtraje numerice; analiza n frecven a semnalelor prin transformata Fourier rapid (FFT); analize statistice: teste parametrice; domeniul de ncredere, extrapolri, sinteze; prezentarea grafic a rezultatelor.

    Aceste funcii pot fi realizate prin program sau utiliznd componente numerice integrate specializate.

    Multiplexorul (MUX) este o component electronic ce conine o baterie de comutatoare analogice cu ieirile legate mpreun, numrul de comutatoare determinnd numrul de canale de intrare. Comanda nchiderii i deschiderii comutatoarelor este efectuat printr-o intrare de selectare a canalului, care este o intrare logic, coninnd unul sau mai muli bii. Cu un bit, de exemplu, se pot comanda dou ci, cu n bii, 2n canale.

    MUX-urile curent ntlnite sunt cu 4, 8 sau 16 canale. Fiecare canal este comandat prin

    adresa sa, care este de fapt numrul canalului. Adresarea poate fi fcut fie secvenial, fie aleatoriu. n ultimul caz, rolul de programator l poate avea numai microprocesorul, care

    adreseaz direct fiecare canal, n timp ce, n modul secvenial, fiecare canal este adresat ntr-o ordine bine definit, unul dup altul.

    Prezena n calculatorul nsui a convertoarelor CAN i CNA simplific sarcinile de conectare i programare ale MUX i DEMUX. Semnalele de msurare obinute la senzori, condiionate corespunztor n tensiune cu nivel standard (2,5 V, 5 V), sunt aplicate multiplexorului analogic (MUX) care le comut pe rnd, conform programului, la intrarea circuitului de eantionare i memorare E&M i la convertorul analog-numeric (CAN), pentru a fi convertite numeric.

    Unitatea central (UC) prelucreaz numeric aceste eantioane, conform programului implementat n memoria de baz (HDD), unde sunt transferate i rezultatele finale. Pentru prelucrri numerice curente, este disponibil i o memorie de lucru (RAM) mai rapid. Pentru comenzi i controlul proceselor, este utilizat un DEMUX care dirijeaz informaiile spre utilizatorii digitali sau analogici (caz n care este necesar conversia numeric-analogic cu CAN).

    Pentru implementarea i modificarea programelor, este prevzut posibilitatea conectrii, permanente sau ocazionale, a unei tastaturi i a unui display. De asemenea, pot fi conectate,

  • L3. SMAPD

    3

    opional, o imprimant pentru tipriri de documente i un MODEM pentru transmisii la distan.

    Astfel de arhitecturi cu calculator de proces sunt curent utilizate n aplicaii industriale, la linii tehnologice sau de prelucrare, la centralele electrice etc. Atunci cnd sistemul de

    msurare este conceput i proiectat s monitorizeze un anumit proces, este implementat i realizat o dat cu aceasta i este optimizat n funcie de cerinele tehnice ale acestuia.

    In figura 2 este prezentata o structur posibil a unui sistem de msurare i achiziie de date tipic utilizrii microprocesoarelor (P). Se regsesc i aici convertoarele CAN i CNA, MUX, DEMUX, cu diferena c funciile corespunztoare sunt realizate n general de circuite specializate i nu de microprocesorul nsui. De subliniat c P este completat cu circuitele uzuale:

    I/O (Input / Output) interfa de intrare ieire; ROM - (Read Only Memory) memorie implementat cu program; RAM (Random Acces Memory) memorie de lucru i stocare intermediar; TIMER ceas baz de timp pentru derularea operaiilor.

    Figura 2. Sistem de achiziie de date cu microprocesor

    Tastatura, display-ul, respectiv imprimanta sunt fie prezente tot timpul, la cerere, fie numai la

    punerea n funciune, dup caz. Memoria extern i MODEM-ul nu figureaz dect dac este necesar. n majoritatea cazurilor, partea opional lipsete.

  • L3. SMAPD

    4

    APLICATIA 1.

    Sa se realizeze un sistem de masurare a temperaturii apei utilizand un senzor de

    temperatura digital in mediul Arduino.

    Figura 3. Schema circuitului de masurare a temperaturii apei ( -55 : 150 C)

    Codul programului "SenzTempAPA.ino"

    // Masurare Temperatura Apa cu senzorul digital de temperatura DS18B20

    // Librarii utile :

    // http://www.pjrc.com/teensy/td_libs_OneWire.html

    // sau

    // DallasTemperature library

    // http://milesburton.com/Dallas_Temperature_Control_Library

    #include

    OneWire ds(2); // este necesar un resistor de 4.7K intre pinul 2 si pinul 5V

    void setup(void) {

    Serial.begin(9600);

    }

    void loop(void) {

    byte i;

    byte present = 0;

    byte type_s;

    byte data[12];

    byte addr[8];

    float celsius;

    if ( !ds.search(addr)) {

    ds.reset_search();

    delay(250);

  • L3. SMAPD

    5

    return;

    }

    if (OneWire::crc8(addr, 7) != addr[7]) {

    return;

    }

    switch (addr[0]) {

    case 0x10:

    type_s = 1;

    break;

    case 0x28:

    type_s = 0;

    break;

    case 0x22:

    type_s = 0;

    break;

    default:

    return;

    }

    ds.reset();

    ds.select(addr);

    ds.write(0x44, 1);

    delay(1000);

    present = ds.reset();

    ds.select(addr);

    ds.write(0xBE);

    //Serial.print(" Data = ");

    //Serial.print(present, HEX);

    //Serial.print(" ");

    for ( i = 0; i < 9; i++) {

    data[i] = ds.read();

    //Serial.print(data[i], HEX);

    //Serial.print(" ");

    }

    int16_t raw = (data[1]

  • L3. SMAPD

    6

    celsius = (float)raw / 16.0;

    Serial.print(" Temperatura = ");

    Serial.print(celsius);

    Serial.println(" oC ");

    }

    Se adauga libraria de programe OneWire

    Se compileaza codul sursa

    Se selecteaza mediul de lucru

  • L3. SMAPD

    7

    Se selecteaza portul serial

    Se incarca programul

  • L3. SMAPD

    8

    Se selecteaza ecranul serial

    Rezultatul programului

  • L3. SMAPD

    9

    Se salveaza datele intr-un fisier extern

    Se traseaza graficul variatiei temperaturii in timp

  • L3. SMAPD

    10

    APLICATIA 2.

    Sa se realizeze un sistem de masurare a temperaturii apei in mediul Arduino (datele

    sunt afisate pe ecran si salvate in fisiere externe) .

    Codul programului "SenzTempAPA_SDCard.ino":

    // Masurare Temperatura Apa cu senzorul digital de temperatura DS18B20

    // Librarii utile :

    // http://www.pjrc.com/teensy/td_libs_OneWire.html sau

    // DallasTemperature library

    // http://milesburton.com/Dallas_Temperature_Control_Library

    /*

    SD card datalogger

    This example shows how to log data from the analog sensors

    to an SD card using the SD library.

    The circuit:

    * analog sensors on analog pins 2

    * SD card attached to SPI bus as follows:

    ** MOSI - pin 11

    ** MISO - pin 12

    ** CLK - pin 13

    ** CS - pin 10 Arduino UNO ( pin 54 Arduino MEGA)

    */

    #include

    #include

    const int chipSelect = 10;

  • L3. SMAPD

    11

    #include

    #include

    OneWire ds(2);

    #include

    #include // F Malpartida's NewLiquidCrystal library

    //Download: https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

    #define I2C_ADDR 0x27 // Define I2C Address for the PCF8574T

    #define BACKLIGHT_PIN 3

    #define En_pin 2

    #define Rw_pin 1

    #define Rs_pin 0

    #define D4_pin 4

    #define D5_pin 5

    #define D6_pin 6

    #define D7_pin 7

    #define LED_OFF 1

    #define LED_ON 0

    LiquidCrystal_I2C

    lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

    void setup(void) {

    Serial.begin(9600);

    Serial.print("Initializare SD card...");

    pinMode(10, OUTPUT);

    if (!SD.begin(chipSelect)) {

    Serial.println("Eroare SD Card , sau nu este prezent");

    return;

    }

    Serial.println("SDCard initializat");

    lcd.begin (16,2); // initializare LCD

    lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);

    lcd.setBacklight(LED_ON);

    }

    void loop(void) {

    byte i;

    byte present = 0;

    byte type_s;

    byte data[12];

    byte addr[8];

    float celsius;

    if ( !ds.search(addr)) {

    ds.reset_search();

  • L3. SMAPD

    12

    delay(250);

    return;

    }

    if (OneWire::crc8(addr, 7) != addr[7]) {

    return;

    }

    switch (addr[0]) {

    case 0x10:

    type_s = 1;

    break;

    case 0x28:

    type_s = 0;

    break;

    case 0x22:

    type_s = 0;

    break;

    default:

    return;

    }

    ds.reset();

    ds.select(addr);

    ds.write(0x44, 1);

    delay(1000);

    present = ds.reset();

    ds.select(addr);

    ds.write(0xBE);

    for ( i = 0; i < 9; i++) {

    data[i] = ds.read();

    }

    int16_t raw = (data[1]

  • L3. SMAPD

    13

    lcd.backlight();

    lcd.setCursor(0, 0);

    lcd.print("Temp APA");

    lcd.setCursor(0, 1);

    lcd.print(celsius);

    lcd.print(" ");

    lcd.print(" oC");

    lcd.home();

    Serial.print(" Temperatura ");

    Serial.print(celsius);

    Serial.println(" oC ");

    File dataFile = SD.open("datalog.txt", FILE_WRITE);

    if (dataFile) {

    dataFile.print(" Temperatura ");

    dataFile.println(celsius);

    dataFile.close();

    }

    else {

    Serial.println("error opening datalog.txt");

    }

    }

    Rezultatul programului

  • L3. SMAPD

    14

  • L3. SMAPD

    15

    Figura 4. Schema de montaj a sistemului de masurare a temperaturii apei