Stanley Cohen
/
AnalogMax_v2
example to read an analog input ultrasonic sensor.
Embed:
(wiki syntax)
Show/hide line numbers
amaxmain2.cpp
00001 #include "mbed.h" 00002 00003 //#define PRINTDBUG 00004 #define WAITTIME 100 00005 #define NEARLIMIT 0.025 00006 #define FARLIMIT 0.40 00007 #define LEDON false 00008 #define LEDOFF true 00009 #define LEDFULLBRITE 0.0 00010 #define LEDNOBRITE 1.0 00011 #define HALFBRITE 0.5 00012 #define PROGNAME "AnalogMAX v2\r\n" // puTTY does not automatically add carriage return 00013 00014 AnalogIn input(PTC2); 00015 // Set up PWM on all three colors 00016 PwmOut greenLED(LED_GREEN); // green led 00017 PwmOut blueLED(LED_BLUE); 00018 PwmOut redLED(LED_RED); // red led 00019 Serial pc(USBTX, USBRX); 00020 Timer millis; 00021 00022 int ledState = false; 00023 00024 void takeData(float spanScale) { 00025 00026 float samples; 00027 float scaledPWM; 00028 00029 samples = input.read(); 00030 #ifdef PRINTDBUG 00031 pc.printf("%f\r\n", samples); 00032 #endif 00033 if ((samples > NEARLIMIT) && (samples < FARLIMIT)){ 00034 scaledPWM = (samples - NEARLIMIT)*spanScale; 00035 redLED = 1.0 - scaledPWM; 00036 // greenLED = LEDOFF; // on 00037 blueLED = scaledPWM; 00038 #ifdef PRINTDBUG 00039 pc.printf("RED -> %f BLUE -> %f\r\n", redLED.read(), blueLED.read()); 00040 #endif 00041 }else{ 00042 redLED = LEDNOBRITE; // off 00043 // greenLED = HALFBRITE; 00044 blueLED = LEDNOBRITE; 00045 } 00046 return; 00047 } 00048 // end takeData() 00049 // ---------------------------- 00050 int main() { 00051 float spanScale; 00052 00053 // initialization 00054 // calulate scaling for red/blue LED 00055 00056 00057 spanScale = 1.0/(FARLIMIT-NEARLIMIT); 00058 pc.printf(PROGNAME); 00059 00060 greenLED = HALFBRITE; // 1/2 on 00061 redLED = LEDNOBRITE; // pwm off 00062 blueLED = LEDFULLBRITE; // pwm on 00063 millis.start(); 00064 millis.reset(); 00065 // Loop forever 00066 while(true){ 00067 if (millis.read_ms() > WAITTIME) { 00068 takeData(spanScale); 00069 millis.reset(); 00070 } 00071 } 00072 00073 } // end main
Generated on Sat Aug 6 2022 00:02:46 by 1.7.2