![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Berhasil
Main.cpp@0:21a035379c92, 2019-02-25 (annotated)
- Committer:
- adavidkhowantolim
- Date:
- Mon Feb 25 15:51:38 2019 +0000
- Revision:
- 0:21a035379c92
Berhasil;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
adavidkhowantolim | 0:21a035379c92 | 1 | #include "mbed.h" |
adavidkhowantolim | 0:21a035379c92 | 2 | #include "Adafruit_ADS1015.h" |
adavidkhowantolim | 0:21a035379c92 | 3 | |
adavidkhowantolim | 0:21a035379c92 | 4 | #define SERIAL_BAUD_RATE 9600 |
adavidkhowantolim | 0:21a035379c92 | 5 | |
adavidkhowantolim | 0:21a035379c92 | 6 | #define a_samping 500000 |
adavidkhowantolim | 0:21a035379c92 | 7 | #define b_samping 1.184 |
adavidkhowantolim | 0:21a035379c92 | 8 | //#define b_samping 1.229 |
adavidkhowantolim | 0:21a035379c92 | 9 | #define a_depan 10000000 |
adavidkhowantolim | 0:21a035379c92 | 10 | #define b_depan 1.297 |
adavidkhowantolim | 0:21a035379c92 | 11 | |
adavidkhowantolim | 0:21a035379c92 | 12 | I2C i2c(D14, D15); |
adavidkhowantolim | 0:21a035379c92 | 13 | Adafruit_ADS1015 ads(&i2c); |
adavidkhowantolim | 0:21a035379c92 | 14 | Serial pc(USBTX, USBRX); |
adavidkhowantolim | 0:21a035379c92 | 15 | |
adavidkhowantolim | 0:21a035379c92 | 16 | float dist = 0; |
adavidkhowantolim | 0:21a035379c92 | 17 | |
adavidkhowantolim | 0:21a035379c92 | 18 | float call_samping(uint16_t x) { |
adavidkhowantolim | 0:21a035379c92 | 19 | float side_distance = a_samping/pow(x,b_samping)+1; |
adavidkhowantolim | 0:21a035379c92 | 20 | return side_distance; |
adavidkhowantolim | 0:21a035379c92 | 21 | } |
adavidkhowantolim | 0:21a035379c92 | 22 | |
adavidkhowantolim | 0:21a035379c92 | 23 | float call_depan(uint16_t x){ |
adavidkhowantolim | 0:21a035379c92 | 24 | float front_distance = a_depan/pow(x,b_depan); |
adavidkhowantolim | 0:21a035379c92 | 25 | return front_distance; |
adavidkhowantolim | 0:21a035379c92 | 26 | } |
adavidkhowantolim | 0:21a035379c92 | 27 | |
adavidkhowantolim | 0:21a035379c92 | 28 | int main() { |
adavidkhowantolim | 0:21a035379c92 | 29 | uint16_t ir; |
adavidkhowantolim | 0:21a035379c92 | 30 | const uint16_t u16tmax = 0xFFFF; |
adavidkhowantolim | 0:21a035379c92 | 31 | while (1) { |
adavidkhowantolim | 0:21a035379c92 | 32 | ir = ads.readADC_SingleEnded(2); |
adavidkhowantolim | 0:21a035379c92 | 33 | float voltage = ir * 6.2676 * 10e-5; |
adavidkhowantolim | 0:21a035379c92 | 34 | uint16_t x = voltage/3.3 * 0xFFFF ; |
adavidkhowantolim | 0:21a035379c92 | 35 | float dist = call_samping(x); |
adavidkhowantolim | 0:21a035379c92 | 36 | // pc.printf("raw = %ul volt = %.2f x=%ul dist=%.2f \n", ir, voltage, x, dist); |
adavidkhowantolim | 0:21a035379c92 | 37 | pc.printf("%.5f %.5f\n", voltage,dist); |
adavidkhowantolim | 0:21a035379c92 | 38 | wait(0.08); // loop 2 sek |
adavidkhowantolim | 0:21a035379c92 | 39 | } |
adavidkhowantolim | 0:21a035379c92 | 40 | } |