2b

Dependencies:   mbed

Committer:
sthompson
Date:
Fri Sep 22 15:08:28 2017 +0000
Revision:
0:65445b54da31
2b

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sthompson 0:65445b54da31 1 /**************************************************************
sthompson 0:65445b54da31 2 / RGB LED Colour Variation Program
sthompson 0:65445b54da31 3 /
sthompson 0:65445b54da31 4 / The program varies the colour of the RGB LED based on the
sthompson 0:65445b54da31 5 / analogue input value of Pot2
sthompson 0:65445b54da31 6 /
sthompson 0:65445b54da31 7 /**************************************************************/
sthompson 0:65445b54da31 8 #include "mbed.h"
sthompson 0:65445b54da31 9 Serial pc(USBTX, USBRX); // USB serial interface
sthompson 0:65445b54da31 10 AnalogIn A_in(p20); // analogue input pin for reference values
sthompson 0:65445b54da31 11 //DigitalOut myled(LED1); // onboard LED to indicate activity
sthompson 0:65445b54da31 12 PwmOut Rled(p23); // red component of application board RGB LED
sthompson 0:65445b54da31 13 PwmOut Gled(p24); // green component of application board RGB LED
sthompson 0:65445b54da31 14 PwmOut Bled(p25); // blue component of application board RGB LED
sthompson 0:65445b54da31 15 int main() {
sthompson 0:65445b54da31 16
sthompson 0:65445b54da31 17 float analogue_val=0.0; // variable to hold the analogue input values as decimals
sthompson 0:65445b54da31 18 float colour_level[11][4]={{0.09,1.0,0.0,0.0},
sthompson 0:65445b54da31 19 {0.18,1.0,0.5,0.0},
sthompson 0:65445b54da31 20 {0.27,1.0,1.0,0.0},
sthompson 0:65445b54da31 21 {0.36,0.5,1.0,0.0},
sthompson 0:65445b54da31 22 {0.45,0.0,1.0,0.0},
sthompson 0:65445b54da31 23 {0.54,0.0,1.0,0.5},
sthompson 0:65445b54da31 24 {0.63,0.0,1.0,1.0},
sthompson 0:65445b54da31 25 {0.72,0.0,0.5,1.0},
sthompson 0:65445b54da31 26 {0.81,0.0,0.0,1.0},
sthompson 0:65445b54da31 27 {0.90,0.5,0.0,1.0},
sthompson 0:65445b54da31 28 {1.00,1.0,0.0,1.0}}; // analogue input values vs. RGB levels
sthompson 0:65445b54da31 29 // set the USB serial interface baud rate
sthompson 0:65445b54da31 30 pc.baud(921600);
sthompson 0:65445b54da31 31
sthompson 0:65445b54da31 32 while(1) { // repeat indefinitely
sthompson 0:65445b54da31 33
sthompson 0:65445b54da31 34 // read the voltage on the analogue input pin and convert it to a
sthompson 0:65445b54da31 35 // decimal number with 12-bit resolution
sthompson 0:65445b54da31 36 analogue_val = A_in.read();
sthompson 0:65445b54da31 37
sthompson 0:65445b54da31 38 // set the number of lit LEDs to be proportional to the ADC input value
sthompson 0:65445b54da31 39 if(analogue_val < 0.09) {
sthompson 0:65445b54da31 40 Rled = 1 ;
sthompson 0:65445b54da31 41 Gled = 0 ;
sthompson 0:65445b54da31 42 Bled = 0 ;
sthompson 0:65445b54da31 43 }
sthompson 0:65445b54da31 44 else if(analogue_val < 0.18) {
sthompson 0:65445b54da31 45
sthompson 0:65445b54da31 46 Rled = 1 ;
sthompson 0:65445b54da31 47 Gled = 0.5 ;
sthompson 0:65445b54da31 48 Bled = 0 ;
sthompson 0:65445b54da31 49
sthompson 0:65445b54da31 50 }
sthompson 0:65445b54da31 51 else if(analogue_val < 0.27) {
sthompson 0:65445b54da31 52
sthompson 0:65445b54da31 53 Rled = 1 ;
sthompson 0:65445b54da31 54 Gled = 1 ;
sthompson 0:65445b54da31 55 Bled = 0 ;
sthompson 0:65445b54da31 56
sthompson 0:65445b54da31 57
sthompson 0:65445b54da31 58 }
sthompson 0:65445b54da31 59 else if(analogue_val < 0.36) {
sthompson 0:65445b54da31 60
sthompson 0:65445b54da31 61 Rled = 0.5 ;
sthompson 0:65445b54da31 62 Gled = 1 ;
sthompson 0:65445b54da31 63 Bled = 0 ;
sthompson 0:65445b54da31 64
sthompson 0:65445b54da31 65
sthompson 0:65445b54da31 66 }
sthompson 0:65445b54da31 67 else if(analogue_val < 0.45) {
sthompson 0:65445b54da31 68
sthompson 0:65445b54da31 69 Rled = 0 ;
sthompson 0:65445b54da31 70 Gled = 1 ;
sthompson 0:65445b54da31 71 Bled = 0 ;
sthompson 0:65445b54da31 72
sthompson 0:65445b54da31 73
sthompson 0:65445b54da31 74 }
sthompson 0:65445b54da31 75 else if(analogue_val < 0.54) {
sthompson 0:65445b54da31 76
sthompson 0:65445b54da31 77 Rled = 0 ;
sthompson 0:65445b54da31 78 Gled = 1 ;
sthompson 0:65445b54da31 79 Bled = 0.5 ;
sthompson 0:65445b54da31 80
sthompson 0:65445b54da31 81
sthompson 0:65445b54da31 82 }
sthompson 0:65445b54da31 83 else if(analogue_val < 0.63) {
sthompson 0:65445b54da31 84
sthompson 0:65445b54da31 85 Rled = 0 ;
sthompson 0:65445b54da31 86 Gled = 1 ;
sthompson 0:65445b54da31 87 Bled = 1 ;
sthompson 0:65445b54da31 88
sthompson 0:65445b54da31 89
sthompson 0:65445b54da31 90 }
sthompson 0:65445b54da31 91 else if(analogue_val < 0.72) {
sthompson 0:65445b54da31 92
sthompson 0:65445b54da31 93 Rled = 0 ;
sthompson 0:65445b54da31 94 Gled = 0.5 ;
sthompson 0:65445b54da31 95 Bled = 1 ;
sthompson 0:65445b54da31 96
sthompson 0:65445b54da31 97
sthompson 0:65445b54da31 98 }
sthompson 0:65445b54da31 99 else if(analogue_val < 0.81) {
sthompson 0:65445b54da31 100
sthompson 0:65445b54da31 101 Rled = 0 ;
sthompson 0:65445b54da31 102 Gled = 0 ;
sthompson 0:65445b54da31 103 Bled = 1 ;
sthompson 0:65445b54da31 104
sthompson 0:65445b54da31 105
sthompson 0:65445b54da31 106 }
sthompson 0:65445b54da31 107 else if(analogue_val < 0.9) {
sthompson 0:65445b54da31 108
sthompson 0:65445b54da31 109 Rled = 0.5 ;
sthompson 0:65445b54da31 110 Gled = 0 ;
sthompson 0:65445b54da31 111 Bled = 1 ;
sthompson 0:65445b54da31 112
sthompson 0:65445b54da31 113
sthompson 0:65445b54da31 114 }
sthompson 0:65445b54da31 115 else if(analogue_val < 0.1) {
sthompson 0:65445b54da31 116
sthompson 0:65445b54da31 117 Rled = 1 ;
sthompson 0:65445b54da31 118 Gled = 0 ;
sthompson 0:65445b54da31 119 Bled = 1 ;
sthompson 0:65445b54da31 120
sthompson 0:65445b54da31 121
sthompson 0:65445b54da31 122
sthompson 0:65445b54da31 123
sthompson 0:65445b54da31 124 }
sthompson 0:65445b54da31 125
sthompson 0:65445b54da31 126 }}