2012_333AB_P5
13. Controlul iluminării unei încăperi cu ajutorul plăcii EV/Z3
I. Project Description
Acest proiect ar trebui sa comunice cu placa EV/Z3 prin intermediul unei seriale.Transmisia intre microcontroler(ATMega 88) si seriala se face prin itermediul unui MAX232. Proiectul ar trebui sa aprinda 2 ledui in functie de comanda primita de la placa EV/Z3,de la tastatura careia sa putem alege culoarea,intesitatea si durata ledului.Aceste caracateristici sunt implementate in software pe microcontroler si sunt alese prin apasarea unor taste de pe tastatura palaci EV/Z3.
II. Project Requirements
What does the project require to be implemented (both hardware and software). Expected behavior.
Theacher Proposal
- placa cu PIC
- 2 led de 12V cu intensitatea controlata prin PWM. Placa Z3 ii tirmite pic-ului intensitatea curenta . De la tastatura Z3 o sa selectati culoarea, durata, intensitaea.
III. User Flow
Dupa conectarea la placuta EV/Z3 prin intermediul tastaturi utilizatorul poate selecta culoarea,intesitatea si durata unuia dintre cele 2 leduri.
IV. Required components
microcontroler ATMega88
circui integrat MAX232
interfata seriala RS232
condesatoare
rezistente
regulator de tensiune de 5V
leduri
cristal de cuart de 20 mhz
alimentare de la o baterie de 9 v
V. Hardware Design
VI. Software Design
* LedSMP.c
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 20000000UL
int main(void)
{
DDRB |= (1 <<PIND5);
while(1)
{
PORTD ^= (1 << PIND5);
_delay_ms(1000);
}
}
Programul LEDSMP.c aprinde si stinge la fiecare secunda ledul legat la pinul 11 de pe microcontrloer.
Seriala.c
#include "platform_io.h"
const char *welcome = "Laborator SMP ";
const char *serialStart = "Please send data";
static SerialConfig serialConf;
unsigned char buffer[32];
unsigned char valoare[5];
int main()
{
int key = 0;
int i=0;
int stop=0;
valoare[0]='intensitate 1';
valoare[1]='intensitate 2';
valoare[2]='intensitate 3';
valoare[3]='intensitate 4';
valoare[4]='intensitate 5';
serialConf.baudRate = b9600;
serialConf.parity = none;
serialConf.stopBits = one;
serialConf.wordLength = eight;
kIo.SerialInit(&serialConf);
key = kIo.ReadKey();
kIo.Wait(1000);
buffer[0]=valoare[0];
while(cv==1)
{
key = kIo.ReadKey();
kIo.Wait(1000);
if(key!=stop)
{
if((key==9)&&(i<5))
i++;
else if ((key==18)&&(i>0))
i--;
buffer[0]= valoare[i];
kIo.SerialWrite(COM1, buffer, 1);
}
else
{ cv=0;
buffer[0]= '0';
kIo.SerialWrite(COM1, buffer, 1);
}
}
return 0;
}
Programul Seriala.c stabileste conexiunea seraiala dintre placa noastra si EV/Z3 ,astfel incat la fiecare apasare a tastei -> sa creasca intensitatea ledului iar la fiecare apasare a tastei <- sa scada intensitatea ledului.
VII. Results
VIII. Download
After you have presented your project at the laboratory (week 13-14) you will add all your sources here. Any hardware simulation used, code archive and so on.
IX. Status
You will have to update this every 2 weeks to include details of what you have done on your project. E.g.: aquired componets, made board, written code for EV/Z3
X. Personal Contribution
Comsa Alexandru,Rusu Lucian lipit placuta;
Rusu Lucian cod aprindere led;
Comsa Alexandru cod transmisie seriala;