Tot

Dependencies:   HCSR04 TextLCD mbed

main.cpp

Committer:
Cip
Date:
2017-05-07
Revision:
0:10cdeeb1f90e

File content as of revision 0:10cdeeb1f90e:

#include "mbed.h"
#include "TextLCD.h"
#include "hcsr04.h"

PwmOut dreapta(PTA4);
PwmOut stanga(PTD3);
DigitalOut in1(PTA5);
DigitalOut in2(PTC8);
DigitalOut in3(PTD0);
DigitalOut in4(PTD2);
TextLCD lcd(PTE21,PTE20,PTB0,PTB1,PTB2,PTB3);
Serial device(PTE22, PTE23);
DigitalOut Spate(PTC2);
DigitalOut Fata1(PTC1);
DigitalOut Fata2(PTA1);
DigitalOut SemnalizareStanga(PTD1);
DigitalOut SemnalizareDreapta(PTA2);

void setare_PWM_motoare(double Stanga,double Dreapta)
{
    stanga.period(0.020); 
    dreapta.period(0.020); 
    stanga.pulsewidth(Stanga);
    dreapta.pulsewidth(Dreapta);
}

int main() {
    double S,D;
    char Instr;
    device.baud(9600);
         
    while(1)
    {
    
        if(device.readable())
        {
        
            lcd.cls();
            lcd.locate(0,0);
            Instr = device.getc();
            switch (Instr){
                case 48://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 0");
                    break;
                case 49://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 1");
                    S=0.005;
                    D=0.005;
                    break;
                case 50://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 2");
                    S=0.006;
                    D=0.006;
                    break;
                case 51://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 3");
                    S=0.008;
                    D=0.008;
                    break;
                case 52://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 4");
                    S=0.010;
                    D=0.010;
                    break;
                case 53://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 5");
                    S=0.012;
                    D=0.012;
                    break;
                case 54://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 6");
                    S=0.014;
                    D=0.014;
                    break;
                case 55://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 7");
                    S=0.016;
                    D=0.016;
                    break;
                case 56://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 8");
                    S=0.018;
                    D=0.018;
                    break;
                case 57://viteza motoare
                    lcd.cls();
                    lcd.locate(3,0);
                    lcd.printf("Viteza 9");
                    S=0.019;
                    D=0.019;
                    break; 
                case 87: //faruri fata ON
                    Fata1=1;
                    Fata2=1;
                    break;
                case 119://faruri fata OFF
                    Fata1=0;
                    Fata2=0;
                case 83://Stop
                    setare_PWM_motoare(0,0);
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Stop");
                    SemnalizareStanga=0;
                    SemnalizareDreapta=0;
                    Spate=1;
                    wait(0.02);
                    Spate=0;
                    break;
                case 70://inainte
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Inainte");
                    in1=0;
                    in2=1;
                    in3=1;
                    in4=0;
                    setare_PWM_motoare(S,D);
                    Spate=0;
                    SemnalizareStanga=0;
                    SemnalizareDreapta=0;
                break;
                case 66://inapoi
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Inapoi");
                    in1=1;
                    in2=0;
                    in3=0;
                    in4=1;
                    setare_PWM_motoare(S,D);
                    Spate=1;
                    SemnalizareStanga=0;
                    SemnalizareDreapta=0;
                break;
                case 82://viraj dreapta
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Dreapta");
                    setare_PWM_motoare(S,0);
                    SemnalizareStanga=0;
                    SemnalizareDreapta=1;
                    wait(0.04);
                    SemnalizareDreapta=0;
                break;
                case 76://viraj stanga
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Stanga");
                    setare_PWM_motoare(0,D);
                    SemnalizareStanga=1;
                    SemnalizareDreapta=0;
                    wait(0.04);
                    SemnalizareStanga=0;
                break;
                case 73://inainte->dreapta
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Inainte");
                    lcd.locate(5,1);
                    lcd.printf("Dreapta");
                    in1=0;
                    in2=1;
                    in3=1;
                    in4=0;
                    setare_PWM_motoare(S,D-0.005);
                    SemnalizareStanga=0;
                    SemnalizareDreapta=1;
                    wait(0.04);
                    SemnalizareDreapta=0;
                break;
                case 71://inainte->stanga
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Inainte");
                    lcd.locate(5,1);
                    lcd.printf("Stanga");
                    in1=0;
                    in2=1;
                    in3=1;
                    in4=0;
                    setare_PWM_motoare(S-0.005,D);
                    SemnalizareStanga=1;
                    SemnalizareDreapta=0;
                    wait(0.04);
                    SemnalizareStanga=0;
                break;
                case 72://inapoi->stanga
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Inapoi");
                    lcd.locate(5,1);
                    lcd.printf("Stanga");
                    in1=1;
                    in2=0;
                    in3=0;
                    in4=1;
                    setare_PWM_motoare(S-0.005,D);
                    SemnalizareStanga=1;
                    SemnalizareDreapta=0;
                    wait(0.04);
                    SemnalizareStanga=0;
                break;
                case 74://inapoi->dreapta
                    lcd.cls();
                    lcd.locate(5,0);
                    lcd.printf("Inapoi");
                    lcd.locate(5,1);
                    lcd.printf("Dreapta");
                    in1=1;
                    in2=0;
                    in3=0;
                    in4=1;
                    setare_PWM_motoare(S,D-0.005);
                    SemnalizareStanga=0;
                    SemnalizareDreapta=1;
                    wait(0.04);
                    SemnalizareDreapta=0;
                break;
            }
        }
    }
}