Program using Touch Sensor and PWM function. This code set a value of brightness in RGB led using Touch Sensor like a slider. The begining of touch is used to select a color. The end of touch is used to select an effect.
Dependencies: MMA8451Q TSI mbed
Fork of FRDM_TSI by
main.cpp@6:343ba87cc6cf, 2013-09-12 (annotated)
- Committer:
- carlossell
- Date:
- Thu Sep 12 01:10:29 2013 +0000
- Revision:
- 6:343ba87cc6cf
- Parent:
- 5:7f7b888f616b
Program to test Touch Sensor and PWM function.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emilmont | 0:0f00f07ebde0 | 1 | #include "mbed.h" |
chris | 1:51b1b688179a | 2 | #include "TSISensor.h" |
carlossell | 6:343ba87cc6cf | 3 | //#include "MMA8451Q.h" |
carlossell | 6:343ba87cc6cf | 4 | |
carlossell | 6:343ba87cc6cf | 5 | //#define MMA8451_I2C_ADDRESS (0x1d<<1) |
subhrajitmitra | 5:7f7b888f616b | 6 | |
carlossell | 6:343ba87cc6cf | 7 | int main(void) |
carlossell | 6:343ba87cc6cf | 8 | { |
carlossell | 6:343ba87cc6cf | 9 | // MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); |
subhrajitmitra | 5:7f7b888f616b | 10 | |
subhrajitmitra | 5:7f7b888f616b | 11 | PwmOut led1(LED_BLUE); |
subhrajitmitra | 5:7f7b888f616b | 12 | PwmOut led2(LED_GREEN); |
subhrajitmitra | 5:7f7b888f616b | 13 | PwmOut led3(LED_RED); |
subhrajitmitra | 5:7f7b888f616b | 14 | |
carlossell | 6:343ba87cc6cf | 15 | float tp = 0; |
carlossell | 6:343ba87cc6cf | 16 | //float tp_old = 0; |
carlossell | 6:343ba87cc6cf | 17 | float valor_ledR, valor_ledG, valor_ledB = 1.0; |
carlossell | 6:343ba87cc6cf | 18 | float valor_inicial, valor_final = 0.0; |
carlossell | 6:343ba87cc6cf | 19 | float offset = 0.0; |
carlossell | 6:343ba87cc6cf | 20 | float aux = 0.0; |
emilmont | 0:0f00f07ebde0 | 21 | |
carlossell | 6:343ba87cc6cf | 22 | unsigned char led_atual = 0; |
carlossell | 6:343ba87cc6cf | 23 | unsigned char ajustando = 0; |
carlossell | 6:343ba87cc6cf | 24 | unsigned char efeito = 0; |
carlossell | 6:343ba87cc6cf | 25 | unsigned char blink = 0; |
carlossell | 6:343ba87cc6cf | 26 | |
carlossell | 6:343ba87cc6cf | 27 | TSISensor tsi; //inicializa rotinas do sensor de toque |
subhrajitmitra | 5:7f7b888f616b | 28 | |
carlossell | 6:343ba87cc6cf | 29 | led1 = 1.0; //desliga leds |
carlossell | 6:343ba87cc6cf | 30 | led2 = 1.0; |
carlossell | 6:343ba87cc6cf | 31 | led3 = 1.0; |
carlossell | 6:343ba87cc6cf | 32 | |
carlossell | 6:343ba87cc6cf | 33 | valor_ledB = led1; |
carlossell | 6:343ba87cc6cf | 34 | valor_ledG = led2; |
carlossell | 6:343ba87cc6cf | 35 | valor_ledR = led3; |
carlossell | 6:343ba87cc6cf | 36 | |
carlossell | 6:343ba87cc6cf | 37 | valor_inicial = 0.0; |
carlossell | 6:343ba87cc6cf | 38 | valor_final = 0.0; |
carlossell | 6:343ba87cc6cf | 39 | |
carlossell | 6:343ba87cc6cf | 40 | efeito = 0; |
subhrajitmitra | 5:7f7b888f616b | 41 | |
subhrajitmitra | 5:7f7b888f616b | 42 | while (1) |
subhrajitmitra | 5:7f7b888f616b | 43 | { |
carlossell | 6:343ba87cc6cf | 44 | //tp = (tsi.readPercentage()>0)?tsi.readPercentage():tp; |
carlossell | 6:343ba87cc6cf | 45 | |
carlossell | 6:343ba87cc6cf | 46 | tp = tsi.readDistance(); //take actual value of touch sensor |
carlossell | 6:343ba87cc6cf | 47 | |
carlossell | 6:343ba87cc6cf | 48 | if (tp == 0) //there is no touch |
carlossell | 6:343ba87cc6cf | 49 | { |
carlossell | 6:343ba87cc6cf | 50 | |
carlossell | 6:343ba87cc6cf | 51 | if(!ajustando) |
carlossell | 6:343ba87cc6cf | 52 | { |
carlossell | 6:343ba87cc6cf | 53 | valor_inicial = 0.0; |
carlossell | 6:343ba87cc6cf | 54 | valor_final = 0.0; |
carlossell | 6:343ba87cc6cf | 55 | } |
carlossell | 6:343ba87cc6cf | 56 | |
carlossell | 6:343ba87cc6cf | 57 | ajustando = 0; //not adjusting |
carlossell | 6:343ba87cc6cf | 58 | |
carlossell | 6:343ba87cc6cf | 59 | if(led_atual) //there is any color selected? |
carlossell | 6:343ba87cc6cf | 60 | { |
carlossell | 6:343ba87cc6cf | 61 | if(!efeito) |
carlossell | 6:343ba87cc6cf | 62 | { |
carlossell | 6:343ba87cc6cf | 63 | led3 = valor_ledR; //adjust red led |
carlossell | 6:343ba87cc6cf | 64 | led2 = valor_ledG; //adjust green led |
carlossell | 6:343ba87cc6cf | 65 | led1 = valor_ledB; //adjust blue led |
carlossell | 6:343ba87cc6cf | 66 | } |
carlossell | 6:343ba87cc6cf | 67 | } |
carlossell | 6:343ba87cc6cf | 68 | else |
carlossell | 6:343ba87cc6cf | 69 | { |
carlossell | 6:343ba87cc6cf | 70 | led3 = led2 = led1 = 1.0; //turn off all colors |
carlossell | 6:343ba87cc6cf | 71 | } |
carlossell | 6:343ba87cc6cf | 72 | } |
carlossell | 6:343ba87cc6cf | 73 | |
carlossell | 6:343ba87cc6cf | 74 | if(efeito) |
carlossell | 6:343ba87cc6cf | 75 | { |
carlossell | 6:343ba87cc6cf | 76 | if(led_atual) |
carlossell | 6:343ba87cc6cf | 77 | { |
carlossell | 6:343ba87cc6cf | 78 | if(efeito == 1) |
carlossell | 6:343ba87cc6cf | 79 | { |
carlossell | 6:343ba87cc6cf | 80 | blink = ~blink; |
carlossell | 6:343ba87cc6cf | 81 | if(blink) |
carlossell | 6:343ba87cc6cf | 82 | { |
carlossell | 6:343ba87cc6cf | 83 | led3 = valor_ledR; //adjust red led |
carlossell | 6:343ba87cc6cf | 84 | led2 = valor_ledG; //adjust green led |
carlossell | 6:343ba87cc6cf | 85 | led1 = valor_ledB; //adjust blue led |
carlossell | 6:343ba87cc6cf | 86 | } |
carlossell | 6:343ba87cc6cf | 87 | else |
carlossell | 6:343ba87cc6cf | 88 | { |
carlossell | 6:343ba87cc6cf | 89 | led3 = 1.0; //adjust red led |
carlossell | 6:343ba87cc6cf | 90 | led2 = 1.0; //adjust green led |
carlossell | 6:343ba87cc6cf | 91 | led1 = 1.0; //adjust blue led |
carlossell | 6:343ba87cc6cf | 92 | } |
carlossell | 6:343ba87cc6cf | 93 | } |
carlossell | 6:343ba87cc6cf | 94 | if(efeito == 2) |
carlossell | 6:343ba87cc6cf | 95 | { |
carlossell | 6:343ba87cc6cf | 96 | offset = offset + 0.02; |
carlossell | 6:343ba87cc6cf | 97 | |
carlossell | 6:343ba87cc6cf | 98 | if(offset > 1.0) |
carlossell | 6:343ba87cc6cf | 99 | { |
carlossell | 6:343ba87cc6cf | 100 | offset = 0.0; |
carlossell | 6:343ba87cc6cf | 101 | } |
carlossell | 6:343ba87cc6cf | 102 | |
carlossell | 6:343ba87cc6cf | 103 | if(valor_ledB < 1.0) |
carlossell | 6:343ba87cc6cf | 104 | { |
carlossell | 6:343ba87cc6cf | 105 | led1 = offset; |
carlossell | 6:343ba87cc6cf | 106 | } |
carlossell | 6:343ba87cc6cf | 107 | if(valor_ledG < 1.0) |
carlossell | 6:343ba87cc6cf | 108 | { |
carlossell | 6:343ba87cc6cf | 109 | led2 = offset; |
carlossell | 6:343ba87cc6cf | 110 | } |
carlossell | 6:343ba87cc6cf | 111 | if(valor_ledR < 1.0) |
carlossell | 6:343ba87cc6cf | 112 | { |
carlossell | 6:343ba87cc6cf | 113 | led3 = offset; |
carlossell | 6:343ba87cc6cf | 114 | } |
carlossell | 6:343ba87cc6cf | 115 | } |
carlossell | 6:343ba87cc6cf | 116 | |
carlossell | 6:343ba87cc6cf | 117 | if(efeito == 3) |
carlossell | 6:343ba87cc6cf | 118 | { |
carlossell | 6:343ba87cc6cf | 119 | offset = offset - 0.02; |
carlossell | 6:343ba87cc6cf | 120 | |
carlossell | 6:343ba87cc6cf | 121 | if(offset < 0.0) |
carlossell | 6:343ba87cc6cf | 122 | { |
carlossell | 6:343ba87cc6cf | 123 | offset = 1.0; |
carlossell | 6:343ba87cc6cf | 124 | } |
carlossell | 6:343ba87cc6cf | 125 | |
carlossell | 6:343ba87cc6cf | 126 | if(valor_ledB < 1.0) |
carlossell | 6:343ba87cc6cf | 127 | { |
carlossell | 6:343ba87cc6cf | 128 | led1 = offset; |
carlossell | 6:343ba87cc6cf | 129 | } |
carlossell | 6:343ba87cc6cf | 130 | if(valor_ledG < 1.0) |
carlossell | 6:343ba87cc6cf | 131 | { |
carlossell | 6:343ba87cc6cf | 132 | led2 = offset; |
carlossell | 6:343ba87cc6cf | 133 | } |
carlossell | 6:343ba87cc6cf | 134 | if(valor_ledR < 1.0) |
carlossell | 6:343ba87cc6cf | 135 | { |
carlossell | 6:343ba87cc6cf | 136 | led3 = offset; |
carlossell | 6:343ba87cc6cf | 137 | } |
carlossell | 6:343ba87cc6cf | 138 | } |
carlossell | 6:343ba87cc6cf | 139 | if(efeito == 4) |
carlossell | 6:343ba87cc6cf | 140 | { |
carlossell | 6:343ba87cc6cf | 141 | offset = offset - 0.01; |
carlossell | 6:343ba87cc6cf | 142 | |
carlossell | 6:343ba87cc6cf | 143 | if(offset < 0.0) |
carlossell | 6:343ba87cc6cf | 144 | { |
carlossell | 6:343ba87cc6cf | 145 | offset = 1.0; |
carlossell | 6:343ba87cc6cf | 146 | } |
carlossell | 6:343ba87cc6cf | 147 | |
carlossell | 6:343ba87cc6cf | 148 | led1 = offset; |
carlossell | 6:343ba87cc6cf | 149 | |
carlossell | 6:343ba87cc6cf | 150 | aux = 1 - offset; |
carlossell | 6:343ba87cc6cf | 151 | if(aux < 0.0) |
carlossell | 6:343ba87cc6cf | 152 | { |
carlossell | 6:343ba87cc6cf | 153 | aux = 0.0; |
carlossell | 6:343ba87cc6cf | 154 | } |
carlossell | 6:343ba87cc6cf | 155 | led2 = aux; |
carlossell | 6:343ba87cc6cf | 156 | |
carlossell | 6:343ba87cc6cf | 157 | aux = offset * 2; |
carlossell | 6:343ba87cc6cf | 158 | if(aux > 1.0) |
carlossell | 6:343ba87cc6cf | 159 | { |
carlossell | 6:343ba87cc6cf | 160 | aux = 0.0; |
carlossell | 6:343ba87cc6cf | 161 | } |
carlossell | 6:343ba87cc6cf | 162 | led3 = aux; |
carlossell | 6:343ba87cc6cf | 163 | |
carlossell | 6:343ba87cc6cf | 164 | } |
carlossell | 6:343ba87cc6cf | 165 | } |
carlossell | 6:343ba87cc6cf | 166 | //wait(0.1); |
carlossell | 6:343ba87cc6cf | 167 | } |
carlossell | 6:343ba87cc6cf | 168 | |
carlossell | 6:343ba87cc6cf | 169 | if((tp > 0) & (tp < 5)) //the colors are select at begin of touch sensor |
carlossell | 6:343ba87cc6cf | 170 | { |
carlossell | 6:343ba87cc6cf | 171 | if(!ajustando) //the adjust function is not activeted |
carlossell | 6:343ba87cc6cf | 172 | { |
carlossell | 6:343ba87cc6cf | 173 | led1 = 1.0; //turn off all colors |
carlossell | 6:343ba87cc6cf | 174 | led2 = 1.0; |
carlossell | 6:343ba87cc6cf | 175 | led3 = 1.0; |
carlossell | 6:343ba87cc6cf | 176 | |
carlossell | 6:343ba87cc6cf | 177 | led_atual++; //increment actual color selector |
carlossell | 6:343ba87cc6cf | 178 | |
carlossell | 6:343ba87cc6cf | 179 | if(led_atual > 7) |
carlossell | 6:343ba87cc6cf | 180 | { |
carlossell | 6:343ba87cc6cf | 181 | led_atual = 0; //turn off leds |
carlossell | 6:343ba87cc6cf | 182 | } |
carlossell | 6:343ba87cc6cf | 183 | |
carlossell | 6:343ba87cc6cf | 184 | if(led_atual == 1) //selected color is blue |
carlossell | 6:343ba87cc6cf | 185 | { |
carlossell | 6:343ba87cc6cf | 186 | led1 = valor_ledB = 0.0; //turn on blue led |
carlossell | 6:343ba87cc6cf | 187 | led2 = valor_ledG = 1.0; |
carlossell | 6:343ba87cc6cf | 188 | led3 = valor_ledR = 1.0; |
carlossell | 6:343ba87cc6cf | 189 | } |
carlossell | 6:343ba87cc6cf | 190 | |
carlossell | 6:343ba87cc6cf | 191 | if(led_atual == 2) //selected color is green |
carlossell | 6:343ba87cc6cf | 192 | { |
carlossell | 6:343ba87cc6cf | 193 | led1 = valor_ledB = 1.0; |
carlossell | 6:343ba87cc6cf | 194 | led2 = valor_ledG = 0.0; //turn on green led |
carlossell | 6:343ba87cc6cf | 195 | led3 = valor_ledR = 1.0; |
carlossell | 6:343ba87cc6cf | 196 | } |
carlossell | 6:343ba87cc6cf | 197 | |
carlossell | 6:343ba87cc6cf | 198 | if(led_atual == 3) //selected color is red |
carlossell | 6:343ba87cc6cf | 199 | { |
carlossell | 6:343ba87cc6cf | 200 | led1 = valor_ledB = 1.0; |
carlossell | 6:343ba87cc6cf | 201 | led2 = valor_ledG = 1.0; |
carlossell | 6:343ba87cc6cf | 202 | led3 = valor_ledR = 0.0; //turn on red led |
carlossell | 6:343ba87cc6cf | 203 | } |
carlossell | 6:343ba87cc6cf | 204 | |
carlossell | 6:343ba87cc6cf | 205 | if(led_atual == 4) |
carlossell | 6:343ba87cc6cf | 206 | { |
carlossell | 6:343ba87cc6cf | 207 | led1 = valor_ledB = 0.0; //turn on blue led and |
carlossell | 6:343ba87cc6cf | 208 | led2 = valor_ledG = 0.0; //turn on green led |
carlossell | 6:343ba87cc6cf | 209 | led3 = valor_ledR = 1.0; |
carlossell | 6:343ba87cc6cf | 210 | } |
carlossell | 6:343ba87cc6cf | 211 | |
carlossell | 6:343ba87cc6cf | 212 | if(led_atual == 5) |
carlossell | 6:343ba87cc6cf | 213 | { |
carlossell | 6:343ba87cc6cf | 214 | led1 = valor_ledB = 0.0; //turn on blue led and |
carlossell | 6:343ba87cc6cf | 215 | led2 = valor_ledG = 1.0; |
carlossell | 6:343ba87cc6cf | 216 | led3 = valor_ledR = 0.0; //turn on red led |
carlossell | 6:343ba87cc6cf | 217 | } |
carlossell | 6:343ba87cc6cf | 218 | |
carlossell | 6:343ba87cc6cf | 219 | if(led_atual == 6) |
carlossell | 6:343ba87cc6cf | 220 | { |
carlossell | 6:343ba87cc6cf | 221 | led1 = valor_ledB = 1.0; |
carlossell | 6:343ba87cc6cf | 222 | led2 = valor_ledG = 0.0; //turn on green led |
carlossell | 6:343ba87cc6cf | 223 | led3 = valor_ledR = 0.0; //turn on red led |
carlossell | 6:343ba87cc6cf | 224 | } |
carlossell | 6:343ba87cc6cf | 225 | |
carlossell | 6:343ba87cc6cf | 226 | if(led_atual == 7) // select color is white |
carlossell | 6:343ba87cc6cf | 227 | { |
carlossell | 6:343ba87cc6cf | 228 | led1 = valor_ledB = 0.0; //turn on blue color |
carlossell | 6:343ba87cc6cf | 229 | led2 = valor_ledG = 0.0; //turn on green color |
carlossell | 6:343ba87cc6cf | 230 | led3 = valor_ledR = 0.0; //turn on red led |
carlossell | 6:343ba87cc6cf | 231 | } |
carlossell | 6:343ba87cc6cf | 232 | |
carlossell | 6:343ba87cc6cf | 233 | wait(0.5); //show selected led to user |
carlossell | 6:343ba87cc6cf | 234 | } |
carlossell | 6:343ba87cc6cf | 235 | } |
carlossell | 6:343ba87cc6cf | 236 | |
carlossell | 6:343ba87cc6cf | 237 | if (tp > 35) //superior side |
carlossell | 6:343ba87cc6cf | 238 | { |
carlossell | 6:343ba87cc6cf | 239 | if(!ajustando) |
carlossell | 6:343ba87cc6cf | 240 | { |
carlossell | 6:343ba87cc6cf | 241 | efeito++; |
carlossell | 6:343ba87cc6cf | 242 | if(efeito > 4) |
carlossell | 6:343ba87cc6cf | 243 | { |
carlossell | 6:343ba87cc6cf | 244 | efeito = 0; |
carlossell | 6:343ba87cc6cf | 245 | } |
carlossell | 6:343ba87cc6cf | 246 | } |
carlossell | 6:343ba87cc6cf | 247 | //wait(0.5); |
carlossell | 6:343ba87cc6cf | 248 | } |
carlossell | 6:343ba87cc6cf | 249 | |
carlossell | 6:343ba87cc6cf | 250 | if((tp > 5)) //set the brightness of select color |
carlossell | 6:343ba87cc6cf | 251 | { |
carlossell | 6:343ba87cc6cf | 252 | if(!ajustando) |
carlossell | 6:343ba87cc6cf | 253 | { |
carlossell | 6:343ba87cc6cf | 254 | valor_inicial = tp; |
carlossell | 6:343ba87cc6cf | 255 | } |
carlossell | 6:343ba87cc6cf | 256 | |
carlossell | 6:343ba87cc6cf | 257 | ajustando = 1; //adjusting is true |
carlossell | 6:343ba87cc6cf | 258 | |
carlossell | 6:343ba87cc6cf | 259 | valor_final = tp; |
carlossell | 6:343ba87cc6cf | 260 | |
carlossell | 6:343ba87cc6cf | 261 | //led1 = 1.0; //take off all colors |
carlossell | 6:343ba87cc6cf | 262 | //led2 = 1.0; |
carlossell | 6:343ba87cc6cf | 263 | //led3 = 1.0; |
carlossell | 6:343ba87cc6cf | 264 | |
carlossell | 6:343ba87cc6cf | 265 | if(led_atual == 1) //selected color is blue |
carlossell | 6:343ba87cc6cf | 266 | { |
carlossell | 6:343ba87cc6cf | 267 | valor_ledB = valor_ledB + (valor_inicial - valor_final)/200; |
carlossell | 6:343ba87cc6cf | 268 | |
carlossell | 6:343ba87cc6cf | 269 | if(valor_ledB < 0.0) |
carlossell | 6:343ba87cc6cf | 270 | { |
carlossell | 6:343ba87cc6cf | 271 | valor_ledB = 0.0; |
carlossell | 6:343ba87cc6cf | 272 | } |
carlossell | 6:343ba87cc6cf | 273 | |
carlossell | 6:343ba87cc6cf | 274 | if(valor_ledB > 1.0) |
carlossell | 6:343ba87cc6cf | 275 | { |
carlossell | 6:343ba87cc6cf | 276 | valor_ledB = 1.0; |
carlossell | 6:343ba87cc6cf | 277 | } |
carlossell | 6:343ba87cc6cf | 278 | |
carlossell | 6:343ba87cc6cf | 279 | //valor_ledB = (40.0 - tp)/40.0; |
carlossell | 6:343ba87cc6cf | 280 | |
carlossell | 6:343ba87cc6cf | 281 | led1 = valor_ledB; //put new value on blue led |
carlossell | 6:343ba87cc6cf | 282 | led2 = valor_ledG = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 283 | led3 = valor_ledR = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 284 | } |
carlossell | 6:343ba87cc6cf | 285 | |
carlossell | 6:343ba87cc6cf | 286 | if(led_atual == 2) //selected color is green |
carlossell | 6:343ba87cc6cf | 287 | { |
carlossell | 6:343ba87cc6cf | 288 | //valor_ledG = (40.0 - tp)/40.0; |
carlossell | 6:343ba87cc6cf | 289 | |
carlossell | 6:343ba87cc6cf | 290 | valor_ledG = valor_ledG + (valor_inicial - valor_final)/200; |
carlossell | 6:343ba87cc6cf | 291 | |
carlossell | 6:343ba87cc6cf | 292 | if(valor_ledG < 0.0) |
carlossell | 6:343ba87cc6cf | 293 | { |
carlossell | 6:343ba87cc6cf | 294 | valor_ledG = 0.0; |
carlossell | 6:343ba87cc6cf | 295 | } |
carlossell | 6:343ba87cc6cf | 296 | |
carlossell | 6:343ba87cc6cf | 297 | if(valor_ledG > 1.0) |
carlossell | 6:343ba87cc6cf | 298 | { |
carlossell | 6:343ba87cc6cf | 299 | valor_ledG = 1.0; |
carlossell | 6:343ba87cc6cf | 300 | } |
carlossell | 6:343ba87cc6cf | 301 | |
carlossell | 6:343ba87cc6cf | 302 | led1 = valor_ledB = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 303 | led2 = valor_ledG; //put new value on green led |
carlossell | 6:343ba87cc6cf | 304 | led3 = valor_ledR = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 305 | } |
carlossell | 6:343ba87cc6cf | 306 | |
carlossell | 6:343ba87cc6cf | 307 | if(led_atual == 3) //selected color is red |
carlossell | 6:343ba87cc6cf | 308 | { |
carlossell | 6:343ba87cc6cf | 309 | //valor_ledR = (40.0 - tp)/40.0; |
carlossell | 6:343ba87cc6cf | 310 | |
carlossell | 6:343ba87cc6cf | 311 | valor_ledR = valor_ledR + (valor_inicial - valor_final)/200; |
carlossell | 6:343ba87cc6cf | 312 | |
carlossell | 6:343ba87cc6cf | 313 | if(valor_ledR < 0.0) |
carlossell | 6:343ba87cc6cf | 314 | { |
carlossell | 6:343ba87cc6cf | 315 | valor_ledR = 0.0; |
carlossell | 6:343ba87cc6cf | 316 | } |
carlossell | 6:343ba87cc6cf | 317 | |
carlossell | 6:343ba87cc6cf | 318 | if(valor_ledR > 1.0) |
carlossell | 6:343ba87cc6cf | 319 | { |
carlossell | 6:343ba87cc6cf | 320 | valor_ledR = 1.0; |
carlossell | 6:343ba87cc6cf | 321 | } |
carlossell | 6:343ba87cc6cf | 322 | |
carlossell | 6:343ba87cc6cf | 323 | led1 = valor_ledB = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 324 | led2 = valor_ledG = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 325 | led3 = valor_ledR; //put new value on red led |
carlossell | 6:343ba87cc6cf | 326 | } |
carlossell | 6:343ba87cc6cf | 327 | |
carlossell | 6:343ba87cc6cf | 328 | if(led_atual == 4) |
carlossell | 6:343ba87cc6cf | 329 | { |
carlossell | 6:343ba87cc6cf | 330 | //valor_ledB = (40.0 - tp)/40.0; |
carlossell | 6:343ba87cc6cf | 331 | |
carlossell | 6:343ba87cc6cf | 332 | valor_ledB = valor_ledB + (valor_inicial - valor_final)/200; |
carlossell | 6:343ba87cc6cf | 333 | |
carlossell | 6:343ba87cc6cf | 334 | if(valor_ledB < 0.0) |
carlossell | 6:343ba87cc6cf | 335 | { |
carlossell | 6:343ba87cc6cf | 336 | valor_ledB = 0.0; |
carlossell | 6:343ba87cc6cf | 337 | } |
carlossell | 6:343ba87cc6cf | 338 | |
carlossell | 6:343ba87cc6cf | 339 | if(valor_ledB > 1.0) |
carlossell | 6:343ba87cc6cf | 340 | { |
carlossell | 6:343ba87cc6cf | 341 | valor_ledB = 1.0; |
carlossell | 6:343ba87cc6cf | 342 | } |
carlossell | 6:343ba87cc6cf | 343 | |
carlossell | 6:343ba87cc6cf | 344 | led1 = valor_ledB; //put new value on blue led |
carlossell | 6:343ba87cc6cf | 345 | led2 = valor_ledG = valor_ledB; //put new value on green led |
carlossell | 6:343ba87cc6cf | 346 | led3 = valor_ledR = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 347 | } |
carlossell | 6:343ba87cc6cf | 348 | |
carlossell | 6:343ba87cc6cf | 349 | if(led_atual == 5) |
carlossell | 6:343ba87cc6cf | 350 | { |
carlossell | 6:343ba87cc6cf | 351 | //valor_ledB = (40.0 - tp)/40.0; |
carlossell | 6:343ba87cc6cf | 352 | |
carlossell | 6:343ba87cc6cf | 353 | valor_ledB = valor_ledB + (valor_inicial - valor_final)/200; |
carlossell | 6:343ba87cc6cf | 354 | |
carlossell | 6:343ba87cc6cf | 355 | if(valor_ledB < 0.0) |
carlossell | 6:343ba87cc6cf | 356 | { |
carlossell | 6:343ba87cc6cf | 357 | valor_ledB = 0.0; |
carlossell | 6:343ba87cc6cf | 358 | } |
carlossell | 6:343ba87cc6cf | 359 | |
carlossell | 6:343ba87cc6cf | 360 | if(valor_ledB > 1.0) |
carlossell | 6:343ba87cc6cf | 361 | { |
carlossell | 6:343ba87cc6cf | 362 | valor_ledB = 1.0; |
carlossell | 6:343ba87cc6cf | 363 | } |
carlossell | 6:343ba87cc6cf | 364 | |
carlossell | 6:343ba87cc6cf | 365 | led1 = valor_ledB; //put new value on blue led |
carlossell | 6:343ba87cc6cf | 366 | led2 = valor_ledG = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 367 | led3 = valor_ledR = valor_ledB; //put new value on red led |
carlossell | 6:343ba87cc6cf | 368 | } |
carlossell | 6:343ba87cc6cf | 369 | |
carlossell | 6:343ba87cc6cf | 370 | if(led_atual == 6) |
carlossell | 6:343ba87cc6cf | 371 | { |
carlossell | 6:343ba87cc6cf | 372 | //valor_ledG = (40.0 - tp)/40.0; |
carlossell | 6:343ba87cc6cf | 373 | |
carlossell | 6:343ba87cc6cf | 374 | valor_ledG = valor_ledG + (valor_inicial - valor_final)/200; |
carlossell | 6:343ba87cc6cf | 375 | |
carlossell | 6:343ba87cc6cf | 376 | if(valor_ledG < 0.0) |
carlossell | 6:343ba87cc6cf | 377 | { |
carlossell | 6:343ba87cc6cf | 378 | valor_ledG = 0.0; |
carlossell | 6:343ba87cc6cf | 379 | } |
carlossell | 6:343ba87cc6cf | 380 | |
carlossell | 6:343ba87cc6cf | 381 | if(valor_ledG > 1.0) |
carlossell | 6:343ba87cc6cf | 382 | { |
carlossell | 6:343ba87cc6cf | 383 | valor_ledG = 1.0; |
carlossell | 6:343ba87cc6cf | 384 | } |
carlossell | 6:343ba87cc6cf | 385 | |
carlossell | 6:343ba87cc6cf | 386 | led1 = valor_ledB = 1.0; //turn off |
carlossell | 6:343ba87cc6cf | 387 | led2 = valor_ledG; //put new value on green led |
carlossell | 6:343ba87cc6cf | 388 | led3 = valor_ledR = valor_ledG; //put new value on red led |
carlossell | 6:343ba87cc6cf | 389 | } |
carlossell | 6:343ba87cc6cf | 390 | |
carlossell | 6:343ba87cc6cf | 391 | if(led_atual == 7) // select color is white |
carlossell | 6:343ba87cc6cf | 392 | { |
carlossell | 6:343ba87cc6cf | 393 | //valor_ledB = (40.0 - tp)/40.0; |
carlossell | 6:343ba87cc6cf | 394 | |
carlossell | 6:343ba87cc6cf | 395 | valor_ledB = valor_ledB + (valor_inicial - valor_final)/200; |
carlossell | 6:343ba87cc6cf | 396 | |
carlossell | 6:343ba87cc6cf | 397 | if(valor_ledB < 0.0) |
carlossell | 6:343ba87cc6cf | 398 | { |
carlossell | 6:343ba87cc6cf | 399 | valor_ledB = 0.0; |
carlossell | 6:343ba87cc6cf | 400 | } |
carlossell | 6:343ba87cc6cf | 401 | |
carlossell | 6:343ba87cc6cf | 402 | if(valor_ledB > 1.0) |
carlossell | 6:343ba87cc6cf | 403 | { |
carlossell | 6:343ba87cc6cf | 404 | valor_ledB = 1.0; |
carlossell | 6:343ba87cc6cf | 405 | } |
carlossell | 6:343ba87cc6cf | 406 | |
carlossell | 6:343ba87cc6cf | 407 | led1 = valor_ledB; //put new value on blue led |
carlossell | 6:343ba87cc6cf | 408 | led2 = valor_ledG = valor_ledB; //put new value on green led |
carlossell | 6:343ba87cc6cf | 409 | led3 = valor_ledR = valor_ledB; //put new value on red led |
carlossell | 6:343ba87cc6cf | 410 | } |
carlossell | 6:343ba87cc6cf | 411 | } |
carlossell | 6:343ba87cc6cf | 412 | |
carlossell | 6:343ba87cc6cf | 413 | //led1 = (tsi.readPercentage()==0)?(1-abs(acc.getAccX())):((tp>0.00 && tp <= 0.33)?(1-(tp-0.00)*3):1); |
carlossell | 6:343ba87cc6cf | 414 | //led2 = (tsi.readPercentage()==0)?(1-abs(acc.getAccY())):((tp>=0.34 && tp <= 0.66)?(1-(tp-0.33)*3):1); |
carlossell | 6:343ba87cc6cf | 415 | //led3 = (tsi.readPercentage()==0)?(1-abs(acc.getAccZ())):((tp>=0.67 && tp <= 0.99)?(1-(tp-0.66)*3):1); |
carlossell | 6:343ba87cc6cf | 416 | |
carlossell | 6:343ba87cc6cf | 417 | wait(0.1); |
emilmont | 0:0f00f07ebde0 | 418 | } |
chris | 1:51b1b688179a | 419 | } |