Sunteți pe pagina 1din 8

Student: Nechifor Florin

Grupa:
EA 31 b

RAPORT

(Electronica si Informatica Industriala)

L1. TRADUCTOR DE TEMPERATURA CE ARE CA SENZOR


TERMOREZISTENTA PT100
1. Sa se traseze caracteristica Uo=f(T) pentru traductorul de temperatura ce are ca sensor
termorezistenta PT100 .
T[C]
Uo[V]

10
20
30
40
50
60
0.67
1.72 2.52 3.35 4.16
5
[] 103.9 107.79 111.67 115.54 119.4 123.2

70
5.8
127

80
90
100
110
120
6.69 7.5
8.33 9.17
10
130 134.7 138.5 142.2 146.07

2. Sa se traseze caracteristica Iout =f(Ui) pentru convertorul tensiune - curent XTR 110.
Ui [V]
0
Iout [mA] 4

0.5
5.5

1
7.1

1.5
8.7

2
10.3

2.5
11.9

3
13.5

3.5
15.1

4
16.8

4.5
18.4

5
20

3. Sa se proiecteze un traductor de temperatura ce are ca senzor termorezistenta PT100.


Stiind ca temperatura variaza intre 0 si 500 *, se cere ca marimea de iesire a
traductorului sa fie in curent si sa varieze intre 0 si 20 mA.
Ca amplificator de instrumentatie se va folosi circuitul integrat AD620.
Termorezistenta PT100 : la t=0* R PT100 = 100 , iar la t=500*
RPT100 = 280,9
Pentru o temperatura de 0* la iesirea traductorului se va gasi 0mA, iar la o temperatura de 500*
la iesire se va gasi curentul de 20mA.
La temperatura de 0* este necesar sa fie indeplinita conditia ca: R1*R3= RPT100*R4
Ue=A*Ui => A=10V/0.17V => A=58.8
A=(49,44k/Rg)+1 => Rg = 855
R8 = Ue/Ie => R8 = 10V/20mA = 500
R8=R9=500

L2. APLICATII ALE CIRCUITULUI INTEGRAT MPY634


Acest circuit integrat realizeaza o serie de operatii aritmetice cum ar fi operatia de
inmultire,impartire,adunare sau scadere. In continuare vor fi prezentate cateva din aceste
functiuni:
Expresia tensiunii de iesire are urmatoarea forma:

Vout A[

( x1 x2 )( y1 y2 )
( z1 z2 )]
SF

unde

SF=10V

Ualim=15V;
Ui=max10V;

Vout

Circuit de inmultire:
x* y
SF

X1-semnal

X2-GND

Y1-semnal

Y2-GND

Z1-Vout

Z2-GND

X[V] -10 -8

-6

-4

-2

10

Y[V] -5

-5

-5

-5

-5

-5

-5

-5

-5

-5

-5

Vout 5 4
X[V] -10 -8

3
-6

2
-4

1
-2

0
0

-1
2

-2
4

-3
6

-4
8

-5
10

Y[V] 5

Vout -5

-4

-3

-2

-1

Circuit de impartire:

Vout y1

z1 * SF
x1

X1-semnal

X2-GND

Y1- Vout

Y2-GND

Z1-semnal

Z2-GND

X1[V]

5 5 5 5 5 5

Z1[V]

-5

0 1 2 3 4 5

Y1=Vo
ut

10

0 2 4 6 8 1
0

L3. CONVERTORUL TENSUNE-CURENT REALIZAT CU XTR-110

A=2;
A=1+

R2=250R;
R1
;
R2

R1=

5V
250 R
20mA

Ui[V]

0 0.
5

1.
5

2.5

3.5

4.5

Iies[m
A]

4 5.
5

7.
1

8.
7

10.
3

11.
9

13.
5

15.
1

16.
8

18.
4

2
0

L5. IZOLAREA GALVANICA


f[kh
z]

0.
1

0.
5

1 2 5 1
0

1
5

18

20

22

2
5

3
0

4
0

Ui[V
]

2 2 2 2

Uo[
V]

2 2 2 2

1.
8

1.7

1.6

1.
4

0.
6

1 1 1 1

0.
9

0.8
5

0.8

0.
7

0.
5

0.
3

AdB

0 0 0 0

0.
9

1.4

1.9
3

-3

-6

1
0

L5. APLICATII CU DSPIC-URI (DSpic3013)


Configurarea unui proiect nou :
In meniul principal: Project/New/, introduceti numele proiectului la Project
Name si calea la Project Directory (C:\Users\EII_2011\GrupaA/B/C\L_x\). Daca
folderul L_x (unde _x este numarul laboratorului) nu exista, poate fi creat in Windows
Explorer sau cu ajutorul MPLAB-ului.
-

alegeti device-ul existent in montaj (dsPic30f3013) din Configure/Select Device;

In Project/Select Language Toolsuite alegeti Microchip C30 Toolsuite


1. Creati (File/New) un nou fisier si salvati-l in folderul destinat proiectului, cu

extensia .c;
2. Adaugati fisierul in proiect dand click dreapta pe Source Files (in fereastra
dedicata proiectului);
3. Adugati fisierul linker script la proiect: click dreapta pe Linker Script (C:\Program
Files\Microchip\MPLAB C30\Support\gld), adaugati fisierul p30f3013.gld.

Exemplu de cod de initializare a serialei :


void init()
{
U1MODE=0;//----stergere val initiala U1MODE
U1STA=0;//----stergere val initiala U1STA
U1MODEbits.ALTIO =1;//----seriala alternativa);
U1BRG=31;//----seatarea baud rate-ului la 57600
U1MODEbits.UARTEN =1;//---enable UART
U1STAbits.UTXEN=1;//----enable transmission
}

Exemplu de transmisie :
void send(unsigned char c)
{
U1TXREG=c;
}

Exemplu de receptie :
void receive()//---functia de primire de la seriala
{
if(U1STAbits.URXDA)//---daca s-a primit vreun caracter
U1TXREG=U1RXREG;//---se trimite inapoi pe seriala
}
1) Sa se scrie un program care aprinde led-uri pe rand de la RB0 pana la RB5.In
momentul in care a ajuns la RB5 trebuie sa o ia de la capat.
#include<p30f3013.h>
void delay(){
long int i,j;
for(i=0;i<=750500;i++)
j=i;
}
int main(){
ADPCFG=0xFFFF;
TRISB=0x0000;
while(1){
PORTBbits.RB0=1;
delay();
PORTBbits.RB0=0;
PORTBbits.RB1=1;
delay();
PORTBbits.RB1=0;
PORTBbits.RB2=1;
delay();
PORTBbits.RB2=0;
PORTBbits.RB3=1;
delay();
PORTBbits.RB3=0;
PORTBbits.RB4=1;
delay();
PORTBbits.RB4=0;
PORTBbits.RB5=1;
delay();
PORTBbits.RB5=0;
}
}
2)

Sa se scrie un program care initializeaza seriala UART cu un baudrate (viteza de


transfer) de: BR=(L1+L2+L3)*110, si trimite pe seriala 3 caractere din nume (adica
L1, L2 si L3).
* L1, L2 si L3 sunt literele unui nume de ex. "BGD".
* Fcy=(7,37*4)MHz=29,48MHz=29480000
* Fpic=(7,37*16)MHz=117,6MHz=117600000
L1=B=66;

L2=G=71;

L3=D=68;

Baudrate=(L1+L2+L3)*110=22550

UxBRG=Fcy/(16*BaudRate)-1
UxBRG=29480000/360800-1=80,707
#include <p30f3013.h>
void initializare()
{
U1MODE=0;
U1STA=0;
U1MODEbits.ALTIO=1;
U1BRG=80,7070;//----setarea baud rate-ului la 22550, Fcy=29,48Mhz;
U1MODEbits.UARTEN =1;
U1STAbits.UTXEN=1;
}
void send(unsigned char y)//---functia de transmisie de la seriala
{
U1TXREG=y;
}
void receive()//---functia de primire de la seriala
{
if(U1STAbits.URXDA)//---daca s-a primit vreun caracter
U1TXREG=U1RXREG;//---se trimite inapoi pe seriala
}
int main(){
unsigned char B,G,D;
initializare();
send(B);
send(G);
send(D);
receive();
}

3) Sa se scimbe baudrate-ul la 38400,Fcy=29,48Mhz; Sa se faca


RB0,RB1,RB2,RB3,RB4;un program ecou sa trimita pe seriala c si sa trimita
inapoi tot c.
#include <p30f3013.h>
void init()
{
U1MODE=0;//----stergere val initiala U1MODE
U1STA=0;//----stergere val initiala U1STA
U1MODEbits.ALTIO =1;//----seriala alternativa);
//Fcy=29,48 Mhz
U1BRG=47;//----seatarea baud rate-ului la 38400;
U1MODEbits.UARTEN =1;//---enable UART
U1STAbits.UTXEN=1;//----enable transmission
}
void send()
{unsigned char c='c';
U1TXREG=c;
}
void receive()//---functia de primire de la seriala
{
if(U1STAbits.URXDA)//---daca s-a primit vreun caracter
U1TXREG=U1RXREG;//---se trimite inapoi pe seriala
}
int main()
{
ADPCFG=0xffff;
TRISB=0;

PORTB=31;//facem RBO,RB1,RB2,RB3,RB4 1L
send();
receive();
while(1){}

4) Sa se implementeze numeric un regulator bipozitional:


#include <p30f3013.h>//----includerea bibliotecilor pt DsPicul folosit
int ref;
void delay()
{
long int i,j;
for(i=0;i<3500;i++)
j=i;
}
void init()
{
U1MODE=0;//----stergere val initiala U1MODE
U1STA=0;//----stergere val initiala U1STA
U1MODEbits.ALTIO =1;//----seriala alternativa);
U1BRG=31;//----seatarea baud rate-ului la 57600
U1MODEbits.UARTEN =1;//---enable UART
U1STAbits.UTXEN=1;//----enable transmission
}
void receive()//---functia de primire de la seriala
{
if(U1STAbits.URXDA)//---daca s-a primit vreun caracter
ref=U1RXREG;//---se trimite inapoi pe seriala
}
void send(unsigned char y)
{
U1TXREG=y;
}
int main()
{
int y=0,c=0,er=0;
ref=54;
init();
while(1)
{
receive();
er=ref-y;
if(er>=5)
c=1;
if(er<=-5)
c=-1;
y=y+c;
send(y);
delay();
}
}

S-ar putea să vă placă și