You are viewing an older revision! See the latest version
AnalogIn

The AnalogIn Interface is used to read the voltage applied to an analog input pin.
Hello World!¶
Turn on a LED when AnalogIn goes above 0.3
#include "mbed.h"
AnalogIn ain(p20);
DigitalOut led(LED1);
int main() {
while (1){
if(ain > 0.3) {
led = 1;
} else {
led = 0;
}
}
}
API¶
API summary
Details¶
The AnalogIn Interface can be used on mbed pins p15-p20.
The 0.0v to 3.3v range of the AnalogIn is represented in software as a normalised floating point number from 0.0 to 1.0.
Examples¶
Control a R/C model servo with an analog input
#include "mbed.h"
AnalogIn position(p20);
PwmOut servo(p21);
int main() {
servo.period(0.020); // servo requires a 20ms period
while (1) {
servo.pulsewidth(0.001 + 0.001 * position); // servo position determined by a pulsewidth between 1-2ms
}
}
}}}
{{{
// AnalogIn reading 16-bit samples
#include "mbed.h"
AnalogIn input(p20);
DigitalOut led1(LED1);
int main() {
unsigned short samples[1024];
for(int i=0; i<1024; i++) {
samples[i] = input.read_u16();
wait_ms(1);
}
printf("Results:\n");
for(int i=0; i<1024; i++) {
printf("%d, 0x%04X\n", i, samples[i]);
}
}
#include "mbed.h"
AnalogIn ain(p20);
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
int main() {
while (1){
led1 = (ain > 0.2) ? 1 : 0;
led2 = (ain > 0.4) ? 1 : 0;
led3 = (ain > 0.6) ? 1 : 0;
led4 = (ain > 0.8) ? 1 : 0;
}
}