tes ir atas semua

Dependencies:   mbed ADS1115 StepperMotor SRF05 TPA81new

main.cpp

Committer:
hisyamfs
Date:
2019-02-07
Revision:
40:1c29f33d54d7
Parent:
39:1c067e2e2820
Child:
41:71c6f608fd2b

File content as of revision 40:1c29f33d54d7:

#include "mbed.h"
#include "TPA81new.h"
#include "SRF05.h"
#include "Uvtron.h"

#define LCD_D4_DIG PA_15
#define LCD_D5_DIG PA_14
#define LCD_E_DIG PC_15
#define LCD_RS_DIG PB_7

Serial pc(USBTX,USBRX);

// TPA
TPA81 tpax(PB_9, PB_8, 0xDC);
TPA81 tpay(PB_9, PB_8, 0xDE);

// Ultrasonik
//SRF05 srf1(PC_13, PA_14); // trigger, echo
//SRF05 srf1(PA_11, PB_12);
//SRF05 srf1(PB_12, PA_11);
SRF05 srf1(PB_3, PB_10);
SRF05 srf2(PA_15, PB_7); // trigger, echo

DigitalOut relay(PB_2);

// UVTron
Uvtron uv(PC_12); 

// Sound
DigitalIn sound(PA_9);

// Line
AnalogIn line(PC_1);

// infrared
#define a_depan 5000000
#define b_depan 1.229
// atas
AnalogIn ira1(PC_5);
AnalogIn ira2(PA_5);
AnalogIn ira3(PC_2);
AnalogIn ira4(PC_3);
AnalogIn ira5(PB_1);
AnalogIn ira6(PC_4);
AnalogIn ira7(PA_6);
AnalogIn ira8(PA_7);
// bawah
AnalogIn irb1(PA_0);
AnalogIn irb2(PA_1);
AnalogIn irb3(PA_4);
AnalogIn irb4(PB_0);

#define WAIT_TIME 0.02

// stepper(PinName _en, PinName ms1, PinName ms2, PinName ms3, PinName _stepPin, PinName dir);
stepper s(PC_6, PC_8, PA_12, PC_7, PA_11, PB_12);

DigitalOut led_api(PH_0);
DigitalOut led_sound(PH_1);

float call_depan(uint16_t x){
    float side_distance = a_depan/pow(x,b_depan)+1;
    return side_distance;
}

int main()
{
    //tpax.changeaddress(0xDC,0xDE);
//    while(sound.read()){}
    led_api = 0;
    led_sound = 0;
    pc.printf("Sound Detected\n");
    while(1) {
        pc.printf("%d", tpay.getTemp(0));
        int i;
        pc.printf("\nTPA Y \n");
        tpay.Read();
        for (i=2; i<=9; i++) {
            pc.printf("%d ",tpay.getTemp(i));
        }

        pc.printf("\nTPA X \n");
        tpax.Read();
        for (i=2; i<=9; i++) {
            pc.printf("%d ",tpax.getTemp(i));
        }
        pc.printf("\n");

        pc.printf("us 1: %.2f\tus 2:%.2f\n", srf1.read(), srf2.read());
        
        uv.Read();
        int read = uv.Flag;
        if (read) pc.printf("FIRE DETECTED\n");
        else pc.printf("NOT DETECTED\n");
        wait(0.5); // 200 ms

        relay = 1;
        pc.printf("RELAY ON\n");
        wait(0.5);
        relay = 0;
        pc.printf("RELAY OFF\n");    
        
        pc.printf("Line = %.2f\n", 3300*line.read());    
        
        uint16_t raw_a1 = ira1.read_u16();
        uint16_t raw_a2 = ira2.read_u16();
        uint16_t raw_a3 = ira3.read_u16();
        uint16_t raw_a4 = ira4.read_u16();
        uint16_t raw_a5 = ira5.read_u16();
        uint16_t raw_a6 = ira6.read_u16();
        uint16_t raw_a7 = ira7.read_u16();
        uint16_t raw_a8 = ira8.read_u16();
        
        uint16_t raw_b1 = irb1.read_u16();
        uint16_t raw_b2 = irb2.read_u16();
        uint16_t raw_b3 = irb3.read_u16();
        uint16_t raw_b4 = irb4.read_u16();
        
        float dist_a1 = call_depan(raw_a1);
        float dist_a2 = call_depan(raw_a2);
        float dist_a3 = call_depan(raw_a3);
        float dist_a4 = call_depan(raw_a4);
        float dist_a5 = call_depan(raw_a5);
        float dist_a6 = call_depan(raw_a6);
        float dist_a7 = call_depan(raw_a7);
        float dist_a8 = call_depan(raw_a8);
        
        float dist_b1 = call_depan(raw_b1);
        float dist_b2 = call_depan(raw_b2);
        float dist_b3 = call_depan(raw_b3);
        float dist_b4 = call_depan(raw_b4);
        
        pc.printf("ir atas\n");
        pc.printf("    %.2f %.2f\n", dist_a2, dist_a1);
        pc.printf("%.2f          %.2f\n", dist_a3, dist_a7);
        pc.printf("%.2f          %.2f\n", dist_a4, dist_a8);
        pc.printf("    %.2f %.2f\n", dist_a6, dist_a5);
        
        pc.printf("ir bawah\n");
        pc.printf("      %.2f\n", dist_b1);
        pc.printf("%.2f            %.2f\n", dist_b2, dist_b3);
        pc.printf("      %.2f\n", dist_b4);
        
        wait(1);
        
        pc.printf("Stepper \n");
        for (int i = 0; i < 200; i++) {
            s.step(1, 1, 1/WAIT_TIME);
//            pc.printf("%d\n", i);
        }
        
        led_api = 1;
        pc.printf("led api on\n");
        wait(0.5);
        led_api = 0;
        pc.printf("led api off\n");
        
        led_sound = 1;
        pc.printf("led sound on\n");
        wait(0.5);
        led_sound = 0;
        pc.printf("led sound off\n");
        wait(0.5);
        pc.printf("\033[2J\033[H");
    }
}