PROIECTE 2011
Proiectele realizate in cadrul Laboratorului de SMP, 2011, le gasiti mai jos, Fiecare echipa are de completat in pagina WIKI corespunzatoare proiectului sau capitolele existente.
Punctaj Proiect
-
2p Pagina Wiki in format HTML cu capitolele create - poze(diferite stadii ale proiectului) + schema hardware + listing software (microcontroller + OpenWatcom la Z3)
-
5p Functionalitate proiect - punctaj in functie de cerintele cerute/realizate
-
1p Calitatea proiectului - cat de organizati ati fost in realizarea acestuia, cod format frumos, optimizari etc...
-
2p Nota individuala - participarea voastra in proiect, raspunsul vostru la intrebarile laborantului la presentarea proiectului
Cerinte general valabile:
- Toate proiectele se vor integra software si/sau hardware cu placa EV/Z3. Pentru integrarea hardware se va folosi portul serial al placii EV/Z3
- Logica software de baza se va regasi pe placa EV/Z3 si va fi realizata în C + inline assembly folosind template-ul OpenWatcom de la laborator
- Pagina de wiki trebuie sa contina o descriere a ce a realizat fiecare student in cadrul proiectului
- Daca nu puneti pe site alta schema de proiectare hardware se va folosi cea cu PIC16F628A pusa la dispozitie
- Wiki-ul trebuie updat ca sa vad stadii intermediare ale proiectului
Elemente de electronica
-
Pentru a vedea/comanda un pret estimativ a componentelor va propun www.conexelectronic.ro . Mi-a fost recomandat si mie de ceilalti laboranti.
-
Pentru conectarea la porturile de I/O trebuie sa izolati galvanic folosind optocuploare, ex LTV817 - puteti sa cautati pe site, si rezistente sa limiteze curentul maxim la 5mA U=R*I si trebuie avut in vedere ca rezistentele sa reziste la puterea la care e proiectat circuitul P=U*I...
-
Pentru alte elemente elecronice puteti folosi diode 1N4007, tranzistori BD139/140 de putere mare. Binenteles ca nu sunteti limitati la folosirea acestora, e doar o propunere.
-
Letconul ar trebui sa aiba cam 40W , nu mai mult de 60 oricum , iar fludorul la 1mm-1.5mm. Sa aveti si un voltmetru cu voi.
-
Va recomand inainte sa alegeti proiectul sa cititi cateva elemente de electronica de AICI.
2011_P10
Centru meteorologic
Project Description
Proiectul consta in proiectarea unui circuit electric, ce va fi folosit in scopul achizitionarii de date din mediul in care va fi amplasat. Implementarea circuitul pe o placuta de test si testarea fizica a functionalitatii este, de asemeanea, parte componenta a proiectului.
Datele achizitionate din mediu sunt:
- Temperatura
- Umiditate
Aceste informatii despre starea curenta a mediul vor fi culese de 2 senzori, unul pentru temperatura, iar celalalt pentru umiditate. Dupa ce sunt prelucrate, valorile sunt trimise printr-o conexiune seriala catre placa EV/Z3, unde vor fi afisate.
Project Requirements
Vom folosi 2 senzori pentru a culege date: temperatura si umiditate. Folosind convertorul analog-digital al microcontroller-ului, vom face trecerea din continuu in discret. Informatiile discretizate sunt apoi prelucrate, serializate, si trimise catre interfata seriala a placutei EV/Z3. Proiectul in sine nu are elemente fizic active, cu exceptia butonului de RESET care reporneste microcontroller-ul. In schimb, trimite pasiv o data la 5 secunde informatiile despre temperatura si umiditate, fara a fi necesara activarea unui switch ,apasarea unui buton sau executarea unei comenzi.
User Flow
Pentru a pune in functiune proiectul este necesara si suficienta alimentarea de la o sursa de 5V curent continuu. Imediat dupa alimentare, datele de la senzori vor incepe sa fie trimise, trecand prin tot procesul de la culegerea acestora pana la afisarea pe ecranul placutei EV/Z3. Etapele sunt: citire, conversie, prelucrare, serializare, transmisie, afisare.
Proiectul este folosit in vederea achizitionarii de date despre mediul inconjurator (temperatura si umiditate). Poate fi folosit pentru a citi valorile acestor parametrii intr-o incapere de dimensiuni medii sau mici. O implementare mai sofisticata ar consta in integrarea circuitului intr-un sistem de reglare automata a temperaturii intr-o camera sau diverse incinte, placuta avand rolul de senzor si traductor.
Imagini relevante:
Required components
Lista de componente:
- Microcontroller PIC16F870
- Stabilizator de tensiune LM7805
- Transceiver RS-232 MAX232
- Senzor de temperatura LM35
- Senzor de umiditate SYH-1S
- Oscilator quart 4MHz
- Conector DB-9 pentru comunicatie seriala
- Conector DB-9 pentru programare microcontroller
- Doua cabluri seriale
- Condensatori si rezistente de diferite valori
- Sursa de tensiune continua de 5V
Schema montajului in Proteus:
Software Design
Codul sursa folosit pentru programarea microcontroller-ului:
unsigned char t[12],ch1,ch2;//variabile in care stocam temperatura
void Newline()//trece la linie noua in afisare
{
UART1_Write(0x0D);//scrie feed forward pe seriala
UART1_Write(0x0A);//scrie carriage return
}
void text_to_usart(unsigned char *m)//functia ce trimite un sir de caractere
{
unsigned char i;
i = 0;
while(m[i]!=0)
{
UART1_Write(m[i]);
i++;
}
}
void Get_temp()//aici preluam datele de la senzorul de temp si le pune in formatul
//grade celsius
{
unsigned long Vin, Vdec, Vfrac;
unsigned char op[12],i,j;
Vin = Adc_Read(0);//citeste valoarea de la senzor
//*******************
//prelucram informatia pt a obtine grade celsius
Vin = 488*Vin;
Vin = Vin/10;
Vdec = Vin/100;
Vfrac = Vin%100;
//*******************
//transformam valoarea obtinuta in caractere pt a trimite pe seriala
LongToStr(Vdec,op);
j=0;
for(i=0;i<=11;i++)
{
if(op[i]!=' ')
{
t[j] = op[i];
j++;
}
}
t[j] = '.';
ch1 = Vfrac/10;
ch2 = Vfrac%10;
j++;
t[j] = 48+ch1;
j++;
t[j] = 48+ch2;
j++;
t[j] = 0x0D;
j++;
t[j] = 0x0A;
j++;
t[j] = '\0';
}
void main()
{
unsigned long Vin2;
unsigned char op2[12],u[5],j,i;
TRISC = 0;
TRISA = 0xFF;//initializare port A ca input
ADCON1 = 0x82;//configurare ADC
UART1_Init(9600);//configurare seriala
while(1)
{ //***************************
//citirea si scrierea valorii umiditatii
Vin2 = Adc_Read(1);
Vin2 = Vin2*5000/1024;
Vin2 = (Vin2/100)+37;
//***************************
//conversia in caractere
LongToStr(Vin2,op2);
j=0;
for(i=0;i<=11;i++)
{
if(op2[i]!=' ')
{
u[j] = op2[i];
j++;
}
}
//*************************
//trimiterea efectiva a valorilor obtinute pe seriala
UART1_Write_Text("t = ");
Get_temp();
for(i=0;i<=strlen(t)+2;i++)
UART1_Write(t[i]);
//text_to_usart(t);
Newline();
UART1_Write_Text("u = ");
text_to_usart(u);
Newline();
//*************************
Imagine cu IDE-ul:
Results
Imagine cu proiectul functional, trimitand datele cu privire la temperatura (t) si umiditate (u) prin conexiunea seriala a calculatorului, si afisandu-le in interfata HyperTerminal a Windows XP:
Download
Arhiva cu schema in Proteus si codul sursa folosit pentru programarea microcontroller-ului aici.
Status
4 Mai - Toate componentele conectate pe placuta
6 mai - Finalizare soft pentru placuta EV/Z3
10 mai - Programare microcontroller
12 mai - Proiect finalizat