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 45:96815f504b17, committed 2019-03-05
- Comitter:
- hisyamfs
- Date:
- Tue Mar 05 12:22:31 2019 +0000
- Parent:
- 44:49ef8addf233
- Child:
- 46:4030083b43b3
- Commit message:
- ir adc 1 untuk semua, sesuai channel 1 (pojok kiri depan)
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Mar 01 10:28:41 2019 +0000
+++ b/main.cpp Tue Mar 05 12:22:31 2019 +0000
@@ -25,7 +25,7 @@
DigitalIn sound(PA_9);
AnalogIn line(PC_1);
-// Infrared
+// Infrared
// atas
AnalogIn ira1(PC_5);
AnalogIn ira2(PA_5);
@@ -42,15 +42,16 @@
AnalogIn irb4(PB_0);
// ADC
I2C ads_i2c(PB_9, PB_8); // sda, scl
-Adafruit_ADS1115 ads(&ads_i2c);
+Adafruit_ADS1015 ads(&ads_i2c);
-stepper s(PC_8, PC_6, PA_12, PA_11, PB_12, PC_7);
+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);
DigitalOut led_api(PB_6);
DigitalOut led_sound(PH_1);
-float call_depan(uint16_t x){
+float call_depan(uint16_t x)
+{
float side_distance = a_depan/pow(x,b_depan)+1;
return side_distance;
}
@@ -58,60 +59,16 @@
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);
+ float dist = a_ads/pow(x, b_ads)+1;
return dist;
}
int main()
{
- relay = 1;
- led_api = 0;
- led_sound = 0;
- amg.begin(AMG88xx_ADDRESS);
- amg.setMovingAverageMode(1);
-
-// while(sound.read()){
-// wait(0.2);
-// }
-
-// 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];
-// }
-// pc.printf("temp max= %.2f at %d\n", max_temp, max_i);
-// pc.printf("temp rata2 = %.2f", sum_temp/AMG88xx_PIXEL_ARRAY_SIZE);
-
- //// UVTron
-// 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
-// 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());
-//
+ while (1) {
// IR
uint16_t ads_raw[4] = {0, 0, 0,0};
- for (int i=0; i < 4; i++) {
+ for (uint8_t i=0; i < 4; i++) {
ads_raw[i] = ads.readADC_SingleEnded(i);
};
uint16_t raw_a1 = ira1.read_u16();
@@ -122,12 +79,12 @@
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);
@@ -136,52 +93,27 @@
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_a9 = call_ads(ads_raw[1]);
+ float dist_a10 = call_ads(ads_raw[3]);
float dist_a11 = call_ads(ads_raw[2]);
- float dist_a12 = call_ads(ads_raw[3]);
+ float dist_a12 = call_ads(ads_raw[0]);
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 %.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);
pc.printf("%.2f %.2f\n", dist_b2, dist_b3);
pc.printf(" %.2f\n", dist_b4);
-
- wait(1);
-
- //// 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_sound = 1;
-// pc.printf("led sound on\n");
-// wait(0.5);
-// led_sound = 0;
-// pc.printf("led sound off\n");
-// wait(0.5);
-
+
+ wait_ms(200);
pc.printf("\033[2J\033[H");
}
}