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 Subhrajit Mitra

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?

UserRevisionLine numberNew 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 }