![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
tes ir atas semua
Dependencies: mbed ADS1115 StepperMotor SRF05 TPA81new
Diff: main.cpp
- Revision:
- 44:49ef8addf233
- Parent:
- 43:b82c19d0c6a9
- Child:
- 45:96815f504b17
--- a/main.cpp Mon Feb 11 15:47:23 2019 +0000 +++ b/main.cpp Fri Mar 01 10:28:41 2019 +0000 @@ -4,59 +4,50 @@ #include "Uvtron.h" #include "Stepper.h" #include "AMG8833.h" +#include "Adafruit_ADS1015.h" + +// Konstanta +#define WAIT_TIME 0.05 +// infrared +#define a_depan 5000000 +#define b_depan 1.229 +#define a_ads 500000 +#define b_ads 1.184 Serial pc(USBTX,USBRX); -// TPA -//TPA81 tpax(PB_9, PB_8, 0xDC); -//TPA81 tpay(PB_9, PB_8, 0xDE); - // AMG -Adafruit_AMG88xx amg(PB_9, PB_8); +Adafruit_AMG88xx amg(PB_3, PB_10); // sda, scl float pixels[AMG88xx_PIXEL_ARRAY_SIZE]; -// 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 +Uvtron uv(PC_12); DigitalIn sound(PA_9); - -// Line AnalogIn line(PC_1); -// infrared -#define a_depan 5000000 -#define b_depan 1.229 +// Infrared // 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); +AnalogIn ira5(PC_4); +AnalogIn ira6(PB_1); +AnalogIn ira7(PA_7); +AnalogIn ira8(PA_6); // bawah AnalogIn irb1(PA_0); AnalogIn irb2(PA_1); AnalogIn irb3(PA_4); AnalogIn irb4(PB_0); +// ADC +I2C ads_i2c(PB_9, PB_8); // sda, scl +Adafruit_ADS1115 ads(&ads_i2c); -#define WAIT_TIME 0.05 - +stepper s(PC_8, PC_6, PA_12, PA_11, PB_12, PC_7); // 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(PC_14); +DigitalOut led_api(PB_6); DigitalOut led_sound(PH_1); float call_depan(uint16_t x){ @@ -64,6 +55,13 @@ return side_distance; } +float call_ads(uint16_t ir) { + float voltage = ir * 6.2676 * 10e-5; // ubah ke mV + uint16_t x = (voltage/3.3f) * 0xFFFF; // ubah ke uint16_t sesuai max nucleo + float dist = a_ads/pow(x, b_ads); + return dist; +} + int main() { relay = 1; @@ -72,53 +70,50 @@ amg.begin(AMG88xx_ADDRESS); amg.setMovingAverageMode(1); - while(sound.read()){ - wait(0.2); - } +// while(sound.read()){ +// wait(0.2); +// } - pc.printf("Sound Detected\n"); +// pc.printf("Sound Detected\n"); while(1) { - // AMG - amg.readPixels(pixels); - float max_temp = pixels[0]; - int max_i = 0; - float sum_temp = 0; - for (int i = 1; i <= AMG88xx_PIXEL_ARRAY_SIZE; i++) { - if (pixels[i-1] > max_temp) { - max_temp = pixels[i-1]; - max_i = i; - } - sum_temp += pixels[i-1]; - } - for (int i = 1; i <= AMG88xx_PIXEL_ARRAY_SIZE; i++) { - pc.printf("%.2f", pixels[i-1]); - if (i == max_i) { - pc.printf("_ "); - } - if (i % 8 == 0) pc.printf("\n"); - } - pc.printf("temp max= %.2f at %d\n", max_temp, max_i); - pc.printf("temp rata2 = %.2f", sum_temp/AMG88xx_PIXEL_ARRAY_SIZE); + //// AMG +// amg.readPixels(pixels); +// float max_temp = pixels[0]; +// int max_i = 0; +// float sum_temp = 0; +// for (int i = 1; i <= AMG88xx_PIXEL_ARRAY_SIZE; i++) { +// if (pixels[i-1] > max_temp) { +// max_temp = pixels[i-1]; +// max_i = i; +// } +// sum_temp += pixels[i-1]; +// } +// pc.printf("temp max= %.2f at %d\n", max_temp, max_i); +// pc.printf("temp rata2 = %.2f", sum_temp/AMG88xx_PIXEL_ARRAY_SIZE); - // UVTron + //// UVTron // uv.Read(); - //int read = uv.Flag; +// int read = uv.Flag; // if (read) pc.printf("FIRE DETECTED\n"); // else pc.printf("NOT DETECTED\n"); // wait(0.5); // 200 ms - // Relay - relay = 0; - pc.printf("RELAY ON\n"); - wait(0.5); - relay = 1; - pc.printf("RELAY OFF\n"); + //// Relay +// relay = 0; +// pc.printf("RELAY ON\n"); +// wait(1); +// relay = 1; +// pc.printf("RELAY OFF\n"); - // Line - pc.printf("Line = %.2f\n", 3300*line.read()); - + //// Line +// pc.printf("Line = %.2f\n", 3300*line.read()); +// // IR + uint16_t ads_raw[4] = {0, 0, 0,0}; + for (int i=0; i < 4; i++) { + ads_raw[i] = ads.readADC_SingleEnded(i); + }; uint16_t raw_a1 = ira1.read_u16(); uint16_t raw_a2 = ira2.read_u16(); uint16_t raw_a3 = ira3.read_u16(); @@ -141,17 +136,20 @@ float dist_a6 = call_depan(raw_a6); float dist_a7 = call_depan(raw_a7); float dist_a8 = call_depan(raw_a8); - + float dist_a9 = call_ads(ads_raw[0]); + float dist_a10 = call_ads(ads_raw[1]); + float dist_a11 = call_ads(ads_raw[2]); + float dist_a12 = call_ads(ads_raw[3]); 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("%.2f %.2f %.2f %.2f\n", dist_a9, dist_a10, dist_a11, dist_a12); + pc.printf("%.2f %.2f\n", dist_a3, dist_a1); + pc.printf("%.2f %.2f\n", dist_a4, dist_a6); + pc.printf("%.2f %.2f %.2f %.2f\n", dist_a2, dist_a8, dist_a7, dist_a5); pc.printf("ir bawah\n"); pc.printf(" %.2f\n", dist_b1); @@ -160,30 +158,29 @@ wait(1); - // Stepper - pc.printf("Stepper \n"); - for (int i = 0; i < 50; i++) { - s.step(1, 1, 1/WAIT_TIME); -// pc.printf("%d\n", i); - } - - for (int i = 0; i < 50; i++) { - s.step(1, -1, 1/WAIT_TIME); - } + //// Stepper +// pc.printf("Stepper \n"); +// for (int i = 0; i < 50; i++) { +// s.step(1, 1, 1/WAIT_TIME); +// } +// +// for (int i = 0; i < 50; i++) { +// s.step(1, -1, 1/WAIT_TIME); +// } +// +// // LED +// led_api = 1; +// pc.printf("led api on\n"); +// wait(0.5); +// led_api = 0; +// pc.printf("led api off\n"); - // LED - 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); + //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"); }