Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed ADS1115 StepperMotor SRF05 TPA81new
Revision 44:49ef8addf233, committed 2019-03-01
- 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");
}