hisyam fs / Mbed 2 deprecated Test_all

Dependencies:   mbed ADS1115 StepperMotor SRF05 TPA81new

Files at this revision

API Documentation at this revision

Comitter:
hisyamfs
Date:
Fri Mar 01 10:28:41 2019 +0000
Parent:
43:b82c19d0c6a9
Child:
45:96815f504b17
Commit message:
ir aja

Changed in this revision

ADS1015.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADS1015.lib	Fri Mar 01 10:28:41 2019 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/arve0/code/ADS1015/#aa277517f0ad
--- 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");
     }