2012_333AB_P5

13. Controlul iluminării unei încăperi cu ajutorul plăcii EV/Z3
[edit]

  [edit]

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;