Back

2012_333AB_P1

Viewing page version #6
(Restore this version) 

Modified: 4 April 2011, 9:47 PM   User: Andrei Dobrin  → AD

Controlul turatiei unui motor de curent continuu

 

I. Project Description

Proiectul pe care l-am realizat controleaza turatia unui motor cu ajutorului microprocesorului 386EX de pe placa EVZ3 disponibila in laborator.

 

 

II. Project Requirements

What does the project require to be implemented (both hardware and software). Expected behavior. Acest proiect necesita construirea unei placute care contine un microcontroller ATMega328P si o punte H (controller de motor), controlate de placa EVZ3, prin intermediul tastaturii matriceale disponibila.

 

 

 

Theacher Proposal
- placa cu ATMEGA , placa de test 50*100, driver curent pentru motoare + PWM.

- placa Z3 va trimite prin seriala turatia motorului, directia de rotatie. Pe LCD-ul placii Z3 trebuie sa afisati turatia curenta. O sa aveti butoane de +/- pentru controlul turatie implementate tot pe placa de Z3.

- trebuie sa aveti 2 programe de control al turatiei : gen 10 s la 40% urmat de 4s 10% pentru simularea unui deplasament. Acest eprograme vor fi accesate tot de la tastatura.

 

III. User Flow

Describe the functionality from a users point of view. What an user can do with your app. Utilizatorul foloseste butonele C si D pentru a creste, respectiv a descreste viteza, iar cu tasta 4 opreste complet motorul. De asemenea, exista 3 programe automate pentru controlul automat al turatiei.

 

IV. Required components

The hardware components used. List them and take a screenshot of them.Compoentele hardware folosite sunt un micrcontroller AVR (ATMega328P), 4 tranzistori MOSFET pentru puntea H, si mufa DB-9 pentru comunicatia seriala.

 

 

V. Hardware Design

Add pictures and comments about the hardware implementation. Should include any schematic used in simulation (e.g. Proteus).

VI. Software Design

Describe the software functionality of your project, including code used on EV/Z3 board and the uC board. Discuss your algorithms, data flows and so on. Should post code samples of the most interesting bits.

 

 

 

 

Codul din main-ul de pe placa EVZ folosit pentru a controla turatia motorului este urmatorul:
kIo.DisplayString("abcdef");

kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);//se da o turatie initiala pentru motor
kIo.Wait(200);//Se asteapta 200ms
kIo.DisplayString("DC motor");//ce se afiseaza pe display-ul placii EVZ

while(1){//bucla infinita in care se asteapta comenzile
key = kIo.ReadKey();//citirea unei taste de la tastatura placii EVZ

switch(key){
case 6://tasta "C" care scade turatia
if((int)tur>65){//se verifica daca comanda ce trebuie daca depaseste valorile admise
tur--;//se decrementeaza turatia
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);//se da comanda catre motor
kIo.Wait(200);
}
break;
case 16://tasta "D" care creste turatia
if((int)tur<90){
tur++;
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
}
break;
case 4://tasta "8" care intra in primul program. Acest program opreste motorul, air apoi in duce 
    //treptat catre valoarea mazima a turatiei
tur='M';
for(;(int)tur<=90;tur++){
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(1000);
}
break;
case 3://tasta "6" care intra in cel de-al doilea program
		    tur='M';
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(1000);
tur='P';
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(1000);
tur='J';
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(1000);
tur='S';
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(1000);
tur='G';
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(1000);
tur='Z';
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
break;

case 14://tasta "9" care intra in cel de-al treilea program
tur='M';
for(;(int)tur>=65;tur--){
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(1000);
}
break;

case 2://tasta "4" care opreste motorul
tur='M';
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(200);
break;
default:
tur='M';
kIo.SerialWrite(COM1, (unsigned char*)&tur, 1);
kIo.Wait(200);

}

}

VII. Results

Data about the final project implementation. Includes screenshots, movies, comments about your project in action.

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

Proiectul a functionat complet la prezentarea de miercuri.

X. Personal Contribution

Claudiu s-a ocupat de construirea placutei si lipirea componentelor electronice pentru puntea H. Andrei a fost responsabil de partea software, pe placa EVZ3, in C, cat si pe microcontroller, in limbajul C++, cu ajutorul unei librarii de serial.