Uses the analog input value to control how many LEDs are on

Dependencies:   mbed

main.cpp

Committer:
ccschneider
Date:
2018-09-25
Revision:
1:1e1de02b30cc
Parent:
0:7576b8ed15e8

File content as of revision 1:1e1de02b30cc:

// Cecilia Schneider, OCE 360, September 24,2018
// HW #2, exercise 2, Analog I/O
// Use the analog input value to control how many LEDs are on
#include "mbed.h"

Serial pc(USBTX, USBRX);
AnalogIn Ain(p20); //Potentiometer input is on pin 20, this value will determine which LEDs are on
DigitalOut rled(p5); //LEDs will light based on the analog input
DigitalOut yled(p7);
DigitalOut gled(p9);
DigitalOut bled(p11);
float ADCdata;

int main() {
    pc.printf("ADC Data Values... \n\r");
    while (1) {
        ADCdata = Ain;
        wait (0.5); //Updates every half second
            if(Ain <= 0.2) { //if the analog input is less than or equal to 0.2 all LEDs will be off
                pc.printf("%3.2f",ADCdata); //displays analog input value
                pc.printf(" All LEDs OFF. Voltage at pin 20: "); //displays which LEDs should be lit
                pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20 
                rled = 0;
                yled = 0;
                gled = 0;
                bled = 0;
            } else if(0.2f<Ain, Ain<=0.4f) { //if Ain is between 0.2 and 0.4 only the red LED will be on
                    pc.printf("%3.2f",ADCdata); //displays analog input value
                    pc.printf(" Red LED ON. Voltage at pin 20: "); //displays which LEDs should be lit
                    pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20
                    rled = 1;
                    yled = 0;
                    gled = 0;
                    bled = 0;
              } else if(0.4f<Ain, Ain<=0.6f) { //if Ain is between 0.4 and 0.6 the red and yellow LEDs will be on
                        pc.printf("%3.2f",ADCdata); //displays analog input value
                        pc.printf(" Red and yellow LEDs ON. Voltage at pin 20: "); //displays which LEDs should be lit
                        pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20
                        rled = 1;
                        yled = 1;
                        gled = 0;
                        bled = 0;
                } else if(0.6f<Ain, Ain<=0.8f) { //if Ain is between 0.6 and 0.8 the red yellow and green LEDs will be on 
                            pc.printf("%3.2f",ADCdata); //displays analog input value
                            pc.printf(" Red, yellow, and green LEDs ON. Voltage at pin 20: "); //displays which LEDs should be lit
                            pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20
                            rled = 1;
                            yled = 1;
                            gled = 1;
                            bled = 0;
                 } else if(0.8f<Ain, Ain<=1.0f) { //if Ain is greater than 0.8 all LEDs will be on 
                                pc.printf("%3.2f",ADCdata); //displays analog input value
                                pc.printf(" Red, yellow, green and blue LEDs ON. Voltage at pin 20: "); //displays which LEDs should be lit
                                pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20
                                rled = 1;
                                yled = 1;
                                gled = 1;
                                bled = 1;
                    }       
    }
}