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.
main.cpp@0:e8cb21f0ea92, 2021-03-11 (annotated)
- Committer:
- malyuskin
- Date:
- Thu Mar 11 14:21:37 2021 +0000
- Revision:
- 0:e8cb21f0ea92
AnalogIn - reading input voltage using analog pin
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| malyuskin | 0:e8cb21f0ea92 | 1 | #include "mbed.h" |
| malyuskin | 0:e8cb21f0ea92 | 2 | |
| malyuskin | 0:e8cb21f0ea92 | 3 | AnalogIn analog_value(A0); |
| malyuskin | 0:e8cb21f0ea92 | 4 | |
| malyuskin | 0:e8cb21f0ea92 | 5 | DigitalOut led(D12); |
| malyuskin | 0:e8cb21f0ea92 | 6 | |
| malyuskin | 0:e8cb21f0ea92 | 7 | void blink(float delay); |
| malyuskin | 0:e8cb21f0ea92 | 8 | |
| malyuskin | 0:e8cb21f0ea92 | 9 | int main() |
| malyuskin | 0:e8cb21f0ea92 | 10 | { |
| malyuskin | 0:e8cb21f0ea92 | 11 | float meas_r; |
| malyuskin | 0:e8cb21f0ea92 | 12 | float meas_v; |
| malyuskin | 0:e8cb21f0ea92 | 13 | float delay = 1.0; |
| malyuskin | 0:e8cb21f0ea92 | 14 | float delay1 = 0.4; |
| malyuskin | 0:e8cb21f0ea92 | 15 | |
| malyuskin | 0:e8cb21f0ea92 | 16 | printf("\nAnalogIn example\n"); |
| malyuskin | 0:e8cb21f0ea92 | 17 | |
| malyuskin | 0:e8cb21f0ea92 | 18 | while(1) { |
| malyuskin | 0:e8cb21f0ea92 | 19 | |
| malyuskin | 0:e8cb21f0ea92 | 20 | meas_r = analog_value.read(); // Read the analog input value |
| malyuskin | 0:e8cb21f0ea92 | 21 | //(value from 0.0 to 1.0 = full ADC conversion range) |
| malyuskin | 0:e8cb21f0ea92 | 22 | |
| malyuskin | 0:e8cb21f0ea92 | 23 | meas_v = meas_r * 3300; // Converts value in the 0V-3.3V range |
| malyuskin | 0:e8cb21f0ea92 | 24 | |
| malyuskin | 0:e8cb21f0ea92 | 25 | // Display values |
| malyuskin | 0:e8cb21f0ea92 | 26 | printf("measure = %f = %.0f mV\n", meas_r, meas_v); |
| malyuskin | 0:e8cb21f0ea92 | 27 | printf("\n"); |
| malyuskin | 0:e8cb21f0ea92 | 28 | |
| malyuskin | 0:e8cb21f0ea92 | 29 | // LED is ON is the value is below 1V |
| malyuskin | 0:e8cb21f0ea92 | 30 | if (meas_v < 1000) { |
| malyuskin | 0:e8cb21f0ea92 | 31 | |
| malyuskin | 0:e8cb21f0ea92 | 32 | blink(delay); |
| malyuskin | 0:e8cb21f0ea92 | 33 | |
| malyuskin | 0:e8cb21f0ea92 | 34 | } |
| malyuskin | 0:e8cb21f0ea92 | 35 | else { |
| malyuskin | 0:e8cb21f0ea92 | 36 | |
| malyuskin | 0:e8cb21f0ea92 | 37 | blink(delay1); |
| malyuskin | 0:e8cb21f0ea92 | 38 | } |
| malyuskin | 0:e8cb21f0ea92 | 39 | |
| malyuskin | 0:e8cb21f0ea92 | 40 | wait(0.2); // 0.2 second |
| malyuskin | 0:e8cb21f0ea92 | 41 | } |
| malyuskin | 0:e8cb21f0ea92 | 42 | } |
| malyuskin | 0:e8cb21f0ea92 | 43 | |
| malyuskin | 0:e8cb21f0ea92 | 44 | void blink(float delay) { |
| malyuskin | 0:e8cb21f0ea92 | 45 | led.write(1); |
| malyuskin | 0:e8cb21f0ea92 | 46 | wait (delay); |
| malyuskin | 0:e8cb21f0ea92 | 47 | led.write(0); |
| malyuskin | 0:e8cb21f0ea92 | 48 | wait (delay); |
| malyuskin | 0:e8cb21f0ea92 | 49 | } |