David k
/
Nucleo_read_analog_value
INFRARED
main.cpp@1:68e7f752b1fd, 2019-03-18 (annotated)
- Committer:
- adavidkhowantolim
- Date:
- Mon Mar 18 11:45:15 2019 +0000
- Revision:
- 1:68e7f752b1fd
- Parent:
- 0:4514066bad64
IR New 18Mar;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
adavidkhowantolim | 0:4514066bad64 | 1 | #include "mbed.h" |
adavidkhowantolim | 0:4514066bad64 | 2 | #include <cmath> |
adavidkhowantolim | 1:68e7f752b1fd | 3 | #define a_depan 5000000 |
adavidkhowantolim | 1:68e7f752b1fd | 4 | #define b_depan 1.229 |
adavidkhowantolim | 1:68e7f752b1fd | 5 | Serial pc(USBTX,USBRX, 115200); |
adavidkhowantolim | 1:68e7f752b1fd | 6 | |
adavidkhowantolim | 1:68e7f752b1fd | 7 | float call_depan(uint16_t x) |
adavidkhowantolim | 1:68e7f752b1fd | 8 | { |
adavidkhowantolim | 1:68e7f752b1fd | 9 | float side_distance = a_depan/pow(x,b_depan)+1; |
adavidkhowantolim | 1:68e7f752b1fd | 10 | return side_distance; |
adavidkhowantolim | 1:68e7f752b1fd | 11 | } |
adavidkhowantolim | 1:68e7f752b1fd | 12 | |
adavidkhowantolim | 1:68e7f752b1fd | 13 | // atas |
adavidkhowantolim | 1:68e7f752b1fd | 14 | AnalogIn ira1(PC_5); |
adavidkhowantolim | 1:68e7f752b1fd | 15 | AnalogIn ira2(PA_5); // tidak membaca, semua yg di board udh ok, kabel sama irnya juga oke |
adavidkhowantolim | 1:68e7f752b1fd | 16 | AnalogIn ira3(PC_2); |
adavidkhowantolim | 1:68e7f752b1fd | 17 | AnalogIn ira4(PC_3); |
adavidkhowantolim | 1:68e7f752b1fd | 18 | AnalogIn ira5(PC_4); |
adavidkhowantolim | 1:68e7f752b1fd | 19 | AnalogIn ira6(PB_1); |
adavidkhowantolim | 1:68e7f752b1fd | 20 | AnalogIn ira7(PA_7); |
adavidkhowantolim | 1:68e7f752b1fd | 21 | AnalogIn ira8(PA_6); |
adavidkhowantolim | 1:68e7f752b1fd | 22 | // bawah |
adavidkhowantolim | 1:68e7f752b1fd | 23 | AnalogIn irb1(PA_0); // tidak membaca, kayanya header di board bawah agak longgar |
adavidkhowantolim | 1:68e7f752b1fd | 24 | AnalogIn irb2(PA_1); // tidak membaca |
adavidkhowantolim | 1:68e7f752b1fd | 25 | AnalogIn irb3(PA_4); |
adavidkhowantolim | 1:68e7f752b1fd | 26 | AnalogIn irb4(PB_0); |
adavidkhowantolim | 0:4514066bad64 | 27 | |
adavidkhowantolim | 0:4514066bad64 | 28 | DigitalOut led(LED1); |
adavidkhowantolim | 0:4514066bad64 | 29 | |
adavidkhowantolim | 0:4514066bad64 | 30 | int main() { |
adavidkhowantolim | 0:4514066bad64 | 31 | |
adavidkhowantolim | 0:4514066bad64 | 32 | while(1) { |
adavidkhowantolim | 1:68e7f752b1fd | 33 | uint16_t raw_a1 = ira1.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 34 | uint16_t raw_a2 = ira2.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 35 | uint16_t raw_a3 = ira3.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 36 | uint16_t raw_a4 = ira4.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 37 | uint16_t raw_a5 = ira5.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 38 | uint16_t raw_a6 = ira6.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 39 | uint16_t raw_a7 = ira7.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 40 | uint16_t raw_a8 = ira8.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 41 | uint16_t raw_b1 = irb1.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 42 | uint16_t raw_b2 = irb2.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 43 | uint16_t raw_b3 = irb3.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 44 | uint16_t raw_b4 = irb4.read_u16(); |
adavidkhowantolim | 1:68e7f752b1fd | 45 | |
adavidkhowantolim | 1:68e7f752b1fd | 46 | float dist_a1 = call_depan(raw_a1); |
adavidkhowantolim | 1:68e7f752b1fd | 47 | float dist_a2 = call_depan(raw_a2); |
adavidkhowantolim | 1:68e7f752b1fd | 48 | float dist_a3 = call_depan(raw_a3); |
adavidkhowantolim | 1:68e7f752b1fd | 49 | float dist_a4 = call_depan(raw_a4); |
adavidkhowantolim | 1:68e7f752b1fd | 50 | float dist_a5 = call_depan(raw_a5); |
adavidkhowantolim | 1:68e7f752b1fd | 51 | float dist_a6 = call_depan(raw_a6); |
adavidkhowantolim | 1:68e7f752b1fd | 52 | float dist_a7 = call_depan(raw_a7); |
adavidkhowantolim | 1:68e7f752b1fd | 53 | float dist_a8 = call_depan(raw_a8); |
adavidkhowantolim | 1:68e7f752b1fd | 54 | float dist_b1 = call_depan(raw_b1); |
adavidkhowantolim | 1:68e7f752b1fd | 55 | float dist_b2 = call_depan(raw_b2); |
adavidkhowantolim | 1:68e7f752b1fd | 56 | float dist_b3 = call_depan(raw_b3); |
adavidkhowantolim | 1:68e7f752b1fd | 57 | float dist_b4 = call_depan(raw_b4); |
adavidkhowantolim | 1:68e7f752b1fd | 58 | pc.printf("ir atas\n"); |
adavidkhowantolim | 1:68e7f752b1fd | 59 | |
adavidkhowantolim | 1:68e7f752b1fd | 60 | pc.printf("%.2f %.2f %.2f %.2f\n", dist_b2, dist_a3, dist_a1, dist_b1); |
adavidkhowantolim | 1:68e7f752b1fd | 61 | pc.printf("%.2f %.2f\n", dist_a2, dist_a5); |
adavidkhowantolim | 1:68e7f752b1fd | 62 | pc.printf("%.2f %.2f\n", dist_a4, dist_a6); |
adavidkhowantolim | 1:68e7f752b1fd | 63 | pc.printf("%.2f %.2f %.2f %.2f\n", dist_b4, dist_a8, dist_a7, dist_b3); |
adavidkhowantolim | 1:68e7f752b1fd | 64 | |
adavidkhowantolim | 1:68e7f752b1fd | 65 | // pc.printf("ir bawah\n"); |
adavidkhowantolim | 1:68e7f752b1fd | 66 | // pc.printf(" %.2f\n", dist_b1); |
adavidkhowantolim | 1:68e7f752b1fd | 67 | // pc.printf("%.2f %.2f\n", dist_b2, dist_b3); |
adavidkhowantolim | 1:68e7f752b1fd | 68 | // pc.printf(" %.2f\n", dist_b4); |
adavidkhowantolim | 1:68e7f752b1fd | 69 | // x1 = (330377) * (pow(M1 , (-1.349f))); |
adavidkhowantolim | 0:4514066bad64 | 70 | //printf("volt %f\n", meas); |
adavidkhowantolim | 1:68e7f752b1fd | 71 | // if (meas > 2000000) { // If the value is greater than 2V then switch the LED on |
adavidkhowantolim | 1:68e7f752b1fd | 72 | // led = 1; |
adavidkhowantolim | 1:68e7f752b1fd | 73 | // } |
adavidkhowantolim | 1:68e7f752b1fd | 74 | // else { |
adavidkhowantolim | 1:68e7f752b1fd | 75 | // led = 0; |
adavidkhowantolim | 1:68e7f752b1fd | 76 | // } |
adavidkhowantolim | 1:68e7f752b1fd | 77 | wait(0.2); |
adavidkhowantolim | 1:68e7f752b1fd | 78 | pc.printf("\033[2J\033[H"); |
adavidkhowantolim | 0:4514066bad64 | 79 | } |
adavidkhowantolim | 0:4514066bad64 | 80 | } |