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_P22
Semafor
Project Description
Am ales sa realizez si sa implementez o placuta de circuit care sa simuleze functionalitatea a 2 semafoare. Simularea se va face prin programarea PIC16F628A.
Project Requirements
Vei folosi placa cu PIC16F628A. La PIC am conectat 2 leduri rosii. 2 leduri galbene si 2 leduri verzi.
De la placa EV/Z3 vei primii cate un caracter prin seriala cu starea curenta a becurilor. 100100 -> aceasta stare indica faptul ca 2 leduri sunt aprinse iar celelalte 4 sunt stinse. PIC-ul va updata starea porturilor la care sunt conectate led-urile.
Pe placa EV/Z3 va functiona un program care va simula circulatia prin intersectie. O stare de mers trebuie sa dureze minim 5s.
User Flow
Required components
Componentele pe care le-ati folosit:
-6 leduri: 2 rosi, 2 galbene si 2 verzi;
-PIC16F628A;
-MAX232;
-5 condensatori de 1uF;
-2 condensatori de 22pF;
-LM7805;
-3 rezistente de 4.7k;
-1 cuartz de 20MHz;
-3 rezistente de 100k;
-6 rezistente de 330 Ohmi;
-2 mufe DB9 TATA;
-1 buton;
-1 placa de circuit.
Software Design
Programul in C care imi genereaza schimbul de lumini :
#INCLUDE<16F84A.H>
#USE DELAY(CLOCK=32768) //CRISTALUL DE CUART ARE 32768 HZ
#FUSES LP,NOWDT // SE FOLOSESTE UN REZONATOR DE TIP LOW POWER CRYSTAL, NOWDT = DEZACTIVEAZA WATCHDOG
int perioade,sw,a; //variabile globale pentru a fi recunoscute si in functia main si in functia timer_int
#INT_TIMER0void timer_int() //va fi apelata de catre mcu cand timer-ul va genera intrerupere
{ perioade++;
if(perioade>=15 && perioade <=21 )
{ if(sw==0) //este cale libera pentru cei de la semaforul 2 dar mai e putin timp si se face rosu
{ //ledul galben de la semaforul 2 se aprinde si se stinge semn ca urmeaza rosu
if(a==0)
{output_bit(PIN_B2,1); //se aprinde galben semafor 2; a=1;
}
else
{output_bit(PIN_B2,0); //se stinge galben semafor 2;
a=0;
}
}
else //este cale libera pentru cei de la semaforul 1 dar mai e putin timp si se face rosu
{ //ledul galben de la semaforul 1 se aprinde si se stinge semn ca urmeaza rosu
if(a==0) {output_bit(PIN_A3,0); //se stinge galben semafor 1; a=1;
}
else {output_bit(PIN_A3,1); //se aprinde galben semafor 1;
a=0;
} } }
else if(perioade>21)
{ if(sw==1)
{ output_bit(PIN_A2,0); // se stinge verde semafor 1; output_bit(PIN_B0,1); // se aprinde verde semafor 2; output_bit(PIN_A4,1); // se aprinde rosu semafor 1;
output_bit(PIN_B4,0); // se stinge rosu semafor 2;
sw=0; //cale libera pentru cei care sunt la semaforul 2
}
else { output_bit(PIN_A2,1); // se aprinde verde semafor 1; output_bit(PIN_B0,0); // se stinge verde semafor 2;
output_bit(PIN_A4,0); // se stinge rosu semafor 1;
output_bit(PIN_B4,1); // se aprinde rosu semafor 2;
sw=1; //cale libera pentru cei care sunt la semaforul 1
} perioade=0; //se reia ciclul perioadelor }
}
void main(){
perioade=0;
a=0; //folosit pentru aprinderea si stingerea culorii galben de la cele doua semafoare
set_tris_a(0x00); //toti pinii portului A sunt setati ca iesireset_tris_b(0x00); //toti pinii portului B sunt setati ca iesireoutput_b(0);
//initial totii pinii portului A au valoarea 0 (ledurile sunt stinse)output_a(0); //initial totii pinii portului B au valoarea 0 (ledurile sunt stinse)
sw=1; // este cale libera pentru cei de la semaforul 1 => se seteaza semafoarele
output_bit(PIN_A2,1); //se aprinde verde semafor 1
output_bit(PIN_A3,0); //se stinge galben semafor 1
output_bit(PIN_A4,0); //se stinge rosu semafor 1
output_bit(PIN_B0,0); //se stinge verde semafor 2
output_bit(PIN_B3,0); //se stinge galben semafor 2
output_bit(PIN_B4,1); //se aprinde rosu semafor 2
setup_timer_0(T0_INTERNAL|T0_DIV_32); //se seteaza timerulset_timer0(0); //se incarca timerul cu valoare 0enable_interrupts(INT_TIMER0); //se valideaza intreruperile timeruluienable_interrupts(GLOBAL); //se valideaza bitul GIE = Global Interrupt Enable
while(1);
}
Results [edit]
Download [edit]
Arhiva cu schema hardware + cod microcontroller + tot proiectul OpenWatcom.
Arhiva va contine 2 directoare (1 singur pentru proiecte doar software)
Hardware design - schema uC + codul folosit pentru a genera fisierul .HEX
Software design - template-ul Open Watcom folosit
Status
Pasii de lucru la acest proiect:
-18 aprilie - achizitionare componente;
- 30 aprilie -relizarea programului in C a simulatorului;
- 2 mai -realizarea schemei de principiu in Proteuss;
- 6 mai - lipirea unora dintre piese: socluri PIC si MAX232; lipirea rezistentelor si condensatoarelor;
- 14 mai -lipirea si realizarea conexiunii dintre mufele DB9 si PIC si MAX232;