tes ir atas semua

Dependencies:   mbed ADS1115 StepperMotor SRF05 TPA81new

main.cpp

Committer:
hisyamfs
Date:
2019-01-04
Revision:
13:0c5942931cad
Parent:
12:1e3227a6fcd7
Child:
14:207770fefedf

File content as of revision 13:0c5942931cad:

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

#define WAIT_TIME 0.02

Serial pc(USBTX, USBRX);
AnalogIn IR(PA_0);
// 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);
Uvtron uv(PC_12);
AX12 servo1(PC_10, PC_11, PA_13, 1, 1000000); // tx, rx, tx_enable, servo ID, baud rate  
TPA81 tpay(PB_9,PB_8, 0xDE);
SRF05 srf(PA_15, PA_14); // trigger, echo
DigitalOut led(LED1);

int main()
{
//    s.enable();
    while (1)
    {
//      Ultrasonik
        pc.printf("Distance = %.1f\n", srf.read());

//      TPA
        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));
        }
        
//         Stepper
        pc.printf("\n stepper \n");
        s.step(1, 1, 1/WAIT_TIME);
        
        // Servo
        float degrees2 = 150;
        float speed1 = 1.0;
        servo1.MultSetGoal(
            degrees2, speed1, 
            degrees2, speed1,  
            degrees2, speed1,   
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1
        );
        
        pc.printf("Servo 150\n");
        wait(1);
        
        degrees2 = 240;
        
        servo1.MultSetGoal(
            degrees2, speed1, 
            degrees2, speed1,  
            degrees2, speed1,   
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1, 
            degrees2, speed1
        );
        
        pc.printf("Servo 240\n");
        wait(1);
        
        // Uvtron
        uv.Read();
        int read = uv.Flag;
        if (read) pc.printf("FIRE DETECTED\n");
        else pc.printf("NOT DETECTED\n");
        
        // IR
        float meas = IR.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
        meas = meas * 3300; // Change the value to be in the 0 to 3300 range
        float ir_dist = (330377) * (pow(meas , (-1.349f)));
        printf("IR : %.4f\n", ir_dist);
    }    
}