Documente Academic
Documente Profesional
Documente Cultură
f3
#define jos PORTE.f0
#define stanga PORTA.f2
#define dreapta PORTE.f1
#define stanga_sus PORTC.f2
#define stanga_jos PORTE.f2
#define dreapta_sus PORTA.f1
#define dreapta_jos PORTA.f0
#define centru PORTA.f5
#define LED_stanga LATD.f0
#define LED_centru_stanga LATD.f1
#define LED_dreapta LATD.f3
#define LED_centru_dreapta LATD.f2
#define servo_baza LATD.f7
#define servo_sus LATD.f6
#define servo_gripp LATD.f4
#define servo_ultim LATD.f5
//--------------------------------DESCRIERE------------------------------------//
/*Platforma robotica mobila comandata prin microswitch-ri si 3 grade de libertate.
Alimentarea sistemelor electronice componente se realizeaza la o tensiune de 5V,
tensiune obtinua prin stabilizare pozitiva de tensiune de la o sursa externa de
5-18V. Miscarile baratelor platformei robotice se realizeaza prin intermediul
servomecanismelor RC.*/
//-------------------------CONECTIVITATE si MODULE ELECTRONICE-----------------//
/*1). INTRARI DIGITALE :
RA0 = tasta dreapta jos;
RA1 = tasta dreapta sus;
RA2 = tasta stanga;
RA3 = tasta sus;
RA5 = tasta centru;
RE0 = tasta jos;
RE1 = tasta dreapta;
RE2 = tasta stanga jos;
RC2 = tasta stanga sus;
2). IESIRI LED-uri indicatoare:
RD0 = LED stanga;
RD1 = LED centru stanga;
RD2 = LED centru dreapta;
RD3 = LED dreapta;
for (;;){
//--------------------------------------------------servo baza = stanga-dreapta
while (stanga){
servo_baza= 1;
Delay_us(900);
servo_baza = 0;
Delay_ms(40);
LED_stanga = 1;
}
while (dreapta){
servo_baza= 1;
Delay_us(2000);
servo_baza = 0;
Delay_ms(40);
LED_dreapta = 1;
}
//-------------------------------------------------------------------servo gripp
while (dreapta_sus){
servo_gripp= 1;
Delay_us(900);
servo_gripp= 0;
Delay_ms(18);
LED_centru_stanga =1;
LED_centru_dreapta =1;
}
while (dreapta_jos){
servo_gripp= 1;
Delay_us(2100);
servo_gripp= 0;
Delay_ms(18);
LED_centru_stanga =1;
LED_centru_dreapta =1;
}
//----------------------------------------------------------------servo superior
while (sus){
servo_sus= 1;
Delay_us(900);
servo_sus = 0;
Delay_ms(40);
LED_centru_stanga =1;
}
while (jos){
servo_sus= 1;
Delay_us(1700);
servo_sus = 0;
Delay_ms(40);
LED_centru_dreapta =1;
}
//--------------------------------------------------------------servo sus ultim
while (stanga_sus){
servo_ultim= 1;
Delay_us(800);
servo_ultim = 0;
Delay_ms(30);
}
while (stanga_jos){
servo_ultim= 1;
Delay_us(2200);
servo_ultim = 0;
Delay_ms(30);
}
LED_centru_dreapta =0;
LED_centru_stanga =0;
LED_dreapta =0;
LED_stanga =0;
}
}