if then else demo with potmeter

Dependencies:   mbed

Committer:
vsluiter
Date:
Tue Sep 24 15:17:40 2013 +0000
Revision:
0:e381f9305692
Initial Commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vsluiter 0:e381f9305692 1 #include "mbed.h"
vsluiter 0:e381f9305692 2
vsluiter 0:e381f9305692 3 // redled is an object of class PwmOut. It uses the LED_RED pin
vsluiter 0:e381f9305692 4 // in human speech: redled is an output that can be controlled with PWM. LED_RED is the pin which is connected to the output
vsluiter 0:e381f9305692 5 PwmOut redled(LED_RED);
vsluiter 0:e381f9305692 6
vsluiter 0:e381f9305692 7 //ditto...
vsluiter 0:e381f9305692 8 PwmOut greenled(LED_GREEN);
vsluiter 0:e381f9305692 9 PwmOut blueled(LED_BLUE);
vsluiter 0:e381f9305692 10
vsluiter 0:e381f9305692 11 // pot is an object of class AnalogIn. It uses the PTB0 pin
vsluiter 0:e381f9305692 12 // in human speech: pot is an analog input. You can read the voltage on pin PTB0
vsluiter 0:e381f9305692 13 AnalogIn pot(PTB0);
vsluiter 0:e381f9305692 14
vsluiter 0:e381f9305692 15
vsluiter 0:e381f9305692 16 //start 'main' function. Should be done once in every C(++) program
vsluiter 0:e381f9305692 17 int main()
vsluiter 0:e381f9305692 18 {
vsluiter 0:e381f9305692 19 float potvalue;
vsluiter 0:e381f9305692 20 //setup some stuff
vsluiter 0:e381f9305692 21 //period of PWM signal is 10kHz. Every 100 microsecond a new PWM period is started
vsluiter 0:e381f9305692 22 redled.period_ms(0.1);
vsluiter 0:e381f9305692 23 greenled.period_ms(0.1);
vsluiter 0:e381f9305692 24 blueled.period_ms(0.1);
vsluiter 0:e381f9305692 25 //while 1 is unequal to zero. For humans: loop forever
vsluiter 0:e381f9305692 26 while(1)
vsluiter 0:e381f9305692 27 {
vsluiter 0:e381f9305692 28 //limit loop time
vsluiter 0:e381f9305692 29 wait(0.01);
vsluiter 0:e381f9305692 30 //read potentiometer, store in potvalue
vsluiter 0:e381f9305692 31 potvalue = pot.read();
vsluiter 0:e381f9305692 32 if(potvalue < 0.33)
vsluiter 0:e381f9305692 33 {
vsluiter 0:e381f9305692 34 redled = 1-potvalue; //subtract from 1 to get high value (almost off) at potmeter maximum
vsluiter 0:e381f9305692 35 greenled = 1; //off
vsluiter 0:e381f9305692 36 blueled = 1; //off
vsluiter 0:e381f9305692 37 }
vsluiter 0:e381f9305692 38 else // value greater or equal to 0.33
vsluiter 0:e381f9305692 39 {
vsluiter 0:e381f9305692 40 if(potvalue < 0.66)
vsluiter 0:e381f9305692 41 {
vsluiter 0:e381f9305692 42 redled = 1-potvalue;
vsluiter 0:e381f9305692 43 greenled = 1-potvalue;
vsluiter 0:e381f9305692 44 blueled = 1;
vsluiter 0:e381f9305692 45 }
vsluiter 0:e381f9305692 46 else //value greater or equal to 0.66
vsluiter 0:e381f9305692 47 {
vsluiter 0:e381f9305692 48 redled = 1-potvalue;
vsluiter 0:e381f9305692 49 greenled = 1-potvalue;
vsluiter 0:e381f9305692 50 blueled = 1-potvalue;
vsluiter 0:e381f9305692 51 }
vsluiter 0:e381f9305692 52 }
vsluiter 0:e381f9305692 53 }
vsluiter 0:e381f9305692 54 }
vsluiter 0:e381f9305692 55