First Last
/
BMT-K9_if_then_else
if then else demo with potmeter
main.cpp@0:e381f9305692, 2013-09-24 (annotated)
- Committer:
- vsluiter
- Date:
- Tue Sep 24 15:17:40 2013 +0000
- Revision:
- 0:e381f9305692
Initial Commit;
Who changed what in which revision?
User | Revision | Line number | New 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 |