bla

Dependencies:   FastPWM HCSR04 NeoStrip mbed

Fork of AdrianLysShow by Gert Lauritsen

Committer:
arno3456
Date:
Thu Jan 28 12:40:41 2016 +0000
Revision:
1:d6beb054bef4
Parent:
0:dcef095e5883
initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gert_lauritsen 0:dcef095e5883 1 #include "mbed.h"
gert_lauritsen 0:dcef095e5883 2 #include "HCSR04.h"
gert_lauritsen 0:dcef095e5883 3 #include "NeoStrip.h"
gert_lauritsen 0:dcef095e5883 4
gert_lauritsen 0:dcef095e5883 5 #define MinDist 150
gert_lauritsen 0:dcef095e5883 6 #define PeriodeTime 100
gert_lauritsen 0:dcef095e5883 7 #define Nsensor 6
gert_lauritsen 0:dcef095e5883 8
gert_lauritsen 0:dcef095e5883 9 HCSR04 *sensor1;
gert_lauritsen 0:dcef095e5883 10 HCSR04 *sensor2;
gert_lauritsen 0:dcef095e5883 11 HCSR04 *sensor3;
gert_lauritsen 0:dcef095e5883 12 HCSR04 *sensor4;
gert_lauritsen 0:dcef095e5883 13 HCSR04 *sensor5;
gert_lauritsen 0:dcef095e5883 14 HCSR04 *sensor6;
gert_lauritsen 0:dcef095e5883 15
gert_lauritsen 0:dcef095e5883 16 Timeout Delay;
gert_lauritsen 0:dcef095e5883 17
gert_lauritsen 0:dcef095e5883 18 Serial pc(USBTX, USBRX);
gert_lauritsen 0:dcef095e5883 19 //int SectionSize[8]={16,16,16,16,16,16,16,16};
gert_lauritsen 0:dcef095e5883 20 int SectionSize[8]= {500,343,285,270,395,443,16,16};
gert_lauritsen 0:dcef095e5883 21 int N=2268;
gert_lauritsen 0:dcef095e5883 22
arno3456 1:d6beb054bef4 23 int CombinedSectionSize[] = {121, 61, 36, 40+90, 152, 120, 122, 40+61, 169+36, 38+39, 37+39, 124, 37+35, 60, 91+94, 61, 89, 152+17, 122, 149}; // Sliser der hænger sammen er i samme section
arno3456 1:d6beb054bef4 24
gert_lauritsen 0:dcef095e5883 25 int TimeToNet=0;
gert_lauritsen 0:dcef095e5883 26 int CallAgain=0;
gert_lauritsen 0:dcef095e5883 27 bool ThereAreSomeThing=0;
gert_lauritsen 0:dcef095e5883 28 int ThereAreNothing=0;
gert_lauritsen 0:dcef095e5883 29
gert_lauritsen 0:dcef095e5883 30 //int N=128;
gert_lauritsen 0:dcef095e5883 31
gert_lauritsen 0:dcef095e5883 32 NeoStrip strip(p22, N);
gert_lauritsen 0:dcef095e5883 33
gert_lauritsen 0:dcef095e5883 34 double LED[8]; //power status
gert_lauritsen 0:dcef095e5883 35 int LedOnOff[8]; //Hvis 1 sættes skal den lave et loop
gert_lauritsen 0:dcef095e5883 36 bool InAktive;
gert_lauritsen 0:dcef095e5883 37 int color[3]= {255,255,255};
gert_lauritsen 0:dcef095e5883 38
gert_lauritsen 0:dcef095e5883 39 long DistArr[6];
gert_lauritsen 0:dcef095e5883 40 int SensorTOCall=0;
gert_lauritsen 0:dcef095e5883 41
gert_lauritsen 0:dcef095e5883 42 int hueToRGB(float h);
gert_lauritsen 0:dcef095e5883 43 void CallNewSensor();
gert_lauritsen 0:dcef095e5883 44 void pattern1();
gert_lauritsen 0:dcef095e5883 45 extern "C" void mbed_reset();
gert_lauritsen 0:dcef095e5883 46 // display a shifting rainbow, all colors have maximum
gert_lauritsen 0:dcef095e5883 47 // saturation and value, with evenly spaced hue
gert_lauritsen 0:dcef095e5883 48 void pattern1()
gert_lauritsen 0:dcef095e5883 49 {
gert_lauritsen 0:dcef095e5883 50 static float dh = 360.0 / N;
gert_lauritsen 0:dcef095e5883 51 static float x = 0;
gert_lauritsen 0:dcef095e5883 52
gert_lauritsen 0:dcef095e5883 53 for (int i = 0; i < N; i++)
gert_lauritsen 0:dcef095e5883 54 strip.setPixel(i, hueToRGB((dh * i) - x));
gert_lauritsen 0:dcef095e5883 55
gert_lauritsen 0:dcef095e5883 56 x += 1;
gert_lauritsen 0:dcef095e5883 57 if (x > 360)
gert_lauritsen 0:dcef095e5883 58 x = 0;
gert_lauritsen 0:dcef095e5883 59 }
gert_lauritsen 0:dcef095e5883 60
gert_lauritsen 0:dcef095e5883 61 // Converts HSV to RGB with the given hue, assuming
gert_lauritsen 0:dcef095e5883 62 // maximum saturation and value
gert_lauritsen 0:dcef095e5883 63 int hueToRGB(float h)
gert_lauritsen 0:dcef095e5883 64 {
gert_lauritsen 0:dcef095e5883 65 // lots of floating point magic from the internet and scratching my head
gert_lauritsen 0:dcef095e5883 66 float r, g, b;
gert_lauritsen 0:dcef095e5883 67 if (h > 360)
gert_lauritsen 0:dcef095e5883 68 h -= 360;
gert_lauritsen 0:dcef095e5883 69 if (h < 0)
gert_lauritsen 0:dcef095e5883 70 h += 360;
gert_lauritsen 0:dcef095e5883 71 int i = (int)(h / 60.0);
gert_lauritsen 0:dcef095e5883 72 float f = (h / 60.0) - i;
gert_lauritsen 0:dcef095e5883 73 float q = 1 - f;
gert_lauritsen 0:dcef095e5883 74
gert_lauritsen 0:dcef095e5883 75 switch (i % 6) {
gert_lauritsen 0:dcef095e5883 76 case 0:
gert_lauritsen 0:dcef095e5883 77 r = 1;
gert_lauritsen 0:dcef095e5883 78 g = f;
gert_lauritsen 0:dcef095e5883 79 b = 0;
gert_lauritsen 0:dcef095e5883 80 break;
gert_lauritsen 0:dcef095e5883 81 case 1:
gert_lauritsen 0:dcef095e5883 82 r = q;
gert_lauritsen 0:dcef095e5883 83 g = 1;
gert_lauritsen 0:dcef095e5883 84 b = 0;
gert_lauritsen 0:dcef095e5883 85 break;
gert_lauritsen 0:dcef095e5883 86 case 2:
gert_lauritsen 0:dcef095e5883 87 r = 0;
gert_lauritsen 0:dcef095e5883 88 g = 1;
gert_lauritsen 0:dcef095e5883 89 b = f;
gert_lauritsen 0:dcef095e5883 90 break;
gert_lauritsen 0:dcef095e5883 91 case 3:
gert_lauritsen 0:dcef095e5883 92 r = 0;
gert_lauritsen 0:dcef095e5883 93 g = q;
gert_lauritsen 0:dcef095e5883 94 b = 1;
gert_lauritsen 0:dcef095e5883 95 break;
gert_lauritsen 0:dcef095e5883 96 case 4:
gert_lauritsen 0:dcef095e5883 97 r = f;
gert_lauritsen 0:dcef095e5883 98 g = 0;
gert_lauritsen 0:dcef095e5883 99 b = 1;
gert_lauritsen 0:dcef095e5883 100 break;
gert_lauritsen 0:dcef095e5883 101 case 5:
gert_lauritsen 0:dcef095e5883 102 r = 1;
gert_lauritsen 0:dcef095e5883 103 g = 0;
gert_lauritsen 0:dcef095e5883 104 b = q;
gert_lauritsen 0:dcef095e5883 105 break;
gert_lauritsen 0:dcef095e5883 106 default:
gert_lauritsen 0:dcef095e5883 107 r = 0;
gert_lauritsen 0:dcef095e5883 108 g = 0;
gert_lauritsen 0:dcef095e5883 109 b = 0;
gert_lauritsen 0:dcef095e5883 110 break;
gert_lauritsen 0:dcef095e5883 111 }
gert_lauritsen 0:dcef095e5883 112
gert_lauritsen 0:dcef095e5883 113 // scale to integers and return the packed value
gert_lauritsen 0:dcef095e5883 114 uint8_t R = (uint8_t)(r * 255);
gert_lauritsen 0:dcef095e5883 115 uint8_t G = (uint8_t)(g * 255);
gert_lauritsen 0:dcef095e5883 116 uint8_t B = (uint8_t)(b * 255);
gert_lauritsen 0:dcef095e5883 117
gert_lauritsen 0:dcef095e5883 118 return (R << 16) | (G << 8) | B;
gert_lauritsen 0:dcef095e5883 119 }
gert_lauritsen 0:dcef095e5883 120
gert_lauritsen 0:dcef095e5883 121 void update()
gert_lauritsen 0:dcef095e5883 122 {
gert_lauritsen 0:dcef095e5883 123 int LEDNr=0;
gert_lauritsen 0:dcef095e5883 124 for (int j=0; j<Nsensor; j++) {
gert_lauritsen 0:dcef095e5883 125 for (int i=0; i<SectionSize[j]; i++) {
gert_lauritsen 0:dcef095e5883 126 strip.setPixel(LEDNr,LED[j]*color[0],LED[j]*color[1],LED[j]*color[2]);
gert_lauritsen 0:dcef095e5883 127 LEDNr++;
gert_lauritsen 0:dcef095e5883 128 }
gert_lauritsen 0:dcef095e5883 129 }
gert_lauritsen 0:dcef095e5883 130 strip.write();
gert_lauritsen 0:dcef095e5883 131 }
gert_lauritsen 0:dcef095e5883 132
arno3456 1:d6beb054bef4 133 /*void updateInactive()
arno3456 1:d6beb054bef4 134 {
arno3456 1:d6beb054bef4 135 int LEDNr=0;
arno3456 1:d6beb054bef4 136 for (int j=0; j<sizeof(CombinedSectionSize)/sizeof(*CombinedSectionSize); j++) {
arno3456 1:d6beb054bef4 137 for (int i=0; i<CombinedSectionSize[j]; i++) {
arno3456 1:d6beb054bef4 138 if (j == whichSectionToShow) {
arno3456 1:d6beb054bef4 139 strip.setPixel(LEDNr,color[0],color[1],color[2]);
arno3456 1:d6beb054bef4 140 } else {
arno3456 1:d6beb054bef4 141 strip.setPixel(LEDNr,0,0,0);
arno3456 1:d6beb054bef4 142 }
arno3456 1:d6beb054bef4 143 LEDNr++;
arno3456 1:d6beb054bef4 144 strip.setPixel(182,0,0,0);
arno3456 1:d6beb054bef4 145 strip.setPixel(1048,0,0,0);
arno3456 1:d6beb054bef4 146 }
arno3456 1:d6beb054bef4 147 }
arno3456 1:d6beb054bef4 148 strip.write();
arno3456 1:d6beb054bef4 149 }
arno3456 1:d6beb054bef4 150 void updateInactiveSection(int whichSectionToShow)
arno3456 1:d6beb054bef4 151 {
arno3456 1:d6beb054bef4 152 int offset = 0;
arno3456 1:d6beb054bef4 153 for (int i=0; i<whichSectionToShow; i++) {
arno3456 1:d6beb054bef4 154 offset += CombinedSectionSize[i];
arno3456 1:d6beb054bef4 155 }
arno3456 1:d6beb054bef4 156
arno3456 1:d6beb054bef4 157 int LEDNr=offset;
arno3456 1:d6beb054bef4 158
arno3456 1:d6beb054bef4 159 for (int i=0; i<CombinedSectionSize[whichSectionToShow]; i++) {
arno3456 1:d6beb054bef4 160 strip.setPixel(LEDNr,color[0],color[1],color[2]);
arno3456 1:d6beb054bef4 161 LEDNr++;
arno3456 1:d6beb054bef4 162 strip.setPixel(182,0,0,0);
arno3456 1:d6beb054bef4 163 strip.setPixel(1048,0,0,0);
arno3456 1:d6beb054bef4 164 }
arno3456 1:d6beb054bef4 165
arno3456 1:d6beb054bef4 166 strip.write();
arno3456 1:d6beb054bef4 167 }*/
arno3456 1:d6beb054bef4 168
arno3456 1:d6beb054bef4 169 void updateInactiveSections(int section1, int section2, int section3, int section4, int section5)
arno3456 1:d6beb054bef4 170 {
arno3456 1:d6beb054bef4 171 int LEDNr=0;
arno3456 1:d6beb054bef4 172 for (int j=0; j<sizeof(CombinedSectionSize)/sizeof(*CombinedSectionSize); j++) {
arno3456 1:d6beb054bef4 173 for (int i=0; i<CombinedSectionSize[j]; i++) {
arno3456 1:d6beb054bef4 174 if ((section1 > -1 && j == section1) || (section2 > -1 && j == section2) || (section3 > -1 && j == section3) || (section4 > -1 && j == section4) || (section5 > -1 && j == section5)) {
arno3456 1:d6beb054bef4 175 strip.setPixel(LEDNr,color[0],color[1],color[2]);
arno3456 1:d6beb054bef4 176 } else {
arno3456 1:d6beb054bef4 177 strip.setPixel(LEDNr,0,0,0);
arno3456 1:d6beb054bef4 178 }
arno3456 1:d6beb054bef4 179 LEDNr++;
arno3456 1:d6beb054bef4 180 strip.setPixel(182,0,0,0);
arno3456 1:d6beb054bef4 181 strip.setPixel(1048,0,0,0);
arno3456 1:d6beb054bef4 182 }
arno3456 1:d6beb054bef4 183 }
arno3456 1:d6beb054bef4 184 strip.write();
arno3456 1:d6beb054bef4 185 }
arno3456 1:d6beb054bef4 186
arno3456 1:d6beb054bef4 187 void updateSections(int section1, int section2, int section3)
arno3456 1:d6beb054bef4 188 {
arno3456 1:d6beb054bef4 189 int LEDNr=0;
arno3456 1:d6beb054bef4 190 for (int j=0; j<sizeof(SectionSize)/sizeof(*SectionSize); j++) {
arno3456 1:d6beb054bef4 191 for (int i=0; i<SectionSize[j]; i++) {
arno3456 1:d6beb054bef4 192 if ((section1 > -1 && j == section1) || (section2 > -1 && j == section2) || (section3 > -1 && j == section3)) {
arno3456 1:d6beb054bef4 193 strip.setPixel(LEDNr,color[0],color[1],color[2]);
arno3456 1:d6beb054bef4 194 } else {
arno3456 1:d6beb054bef4 195 strip.setPixel(LEDNr,0,0,0);
arno3456 1:d6beb054bef4 196 }
arno3456 1:d6beb054bef4 197 LEDNr++;
arno3456 1:d6beb054bef4 198 strip.setPixel(182,0,0,0);
arno3456 1:d6beb054bef4 199 strip.setPixel(1048,0,0,0);
arno3456 1:d6beb054bef4 200 }
arno3456 1:d6beb054bef4 201 }
arno3456 1:d6beb054bef4 202 strip.write();
arno3456 1:d6beb054bef4 203 }
arno3456 1:d6beb054bef4 204
gert_lauritsen 0:dcef095e5883 205 void ReadColorFactor()
gert_lauritsen 0:dcef095e5883 206 {
gert_lauritsen 0:dcef095e5883 207 LocalFileSystem local("local"); // Create the local filesystem under the name "local"
gert_lauritsen 0:dcef095e5883 208 char str[10];
gert_lauritsen 0:dcef095e5883 209
gert_lauritsen 0:dcef095e5883 210 FILE *fp = fopen("/local/color.txt", "r"); // Open "out.txt" on the local file system for writing
gert_lauritsen 0:dcef095e5883 211 if (fp) {
gert_lauritsen 0:dcef095e5883 212 //fscanf(fp,"%[^\n]",str);
gert_lauritsen 0:dcef095e5883 213 printf("Reading color.txt \r\n");
gert_lauritsen 0:dcef095e5883 214 fgets(str, 10, fp);
gert_lauritsen 0:dcef095e5883 215 printf("%s\r\n",str);
gert_lauritsen 0:dcef095e5883 216 color[0]=atoi(str);
gert_lauritsen 0:dcef095e5883 217 fgets(str, 10, fp);
gert_lauritsen 0:dcef095e5883 218 printf("%s\r\n",str);
gert_lauritsen 0:dcef095e5883 219 color[1]=atoi(str);
gert_lauritsen 0:dcef095e5883 220 fgets(str, 10, fp);
gert_lauritsen 0:dcef095e5883 221 printf("%s\r\n",str);
gert_lauritsen 0:dcef095e5883 222 color[2]=atoi(str);
gert_lauritsen 0:dcef095e5883 223 fclose(fp);
gert_lauritsen 0:dcef095e5883 224 } else
gert_lauritsen 0:dcef095e5883 225 printf("Cant open file\r\n");
gert_lauritsen 0:dcef095e5883 226 }
gert_lauritsen 0:dcef095e5883 227
gert_lauritsen 0:dcef095e5883 228 void CalcNew()
gert_lauritsen 0:dcef095e5883 229 {
gert_lauritsen 0:dcef095e5883 230 for (int i=0; i<Nsensor; i++) {
gert_lauritsen 0:dcef095e5883 231 if ((LedOnOff[i]==2) && (LED[i]>=0)) LED[i]-=0.1; //falder
gert_lauritsen 0:dcef095e5883 232 if (LedOnOff[i]==1) {
gert_lauritsen 0:dcef095e5883 233 LED[i]+=0.1;
gert_lauritsen 0:dcef095e5883 234 //InAktive=0; //stiger
gert_lauritsen 0:dcef095e5883 235 }
gert_lauritsen 0:dcef095e5883 236 if (LED[i]>1) { //Skift til at gå ned igen
gert_lauritsen 0:dcef095e5883 237 LedOnOff[i]=2;
gert_lauritsen 0:dcef095e5883 238 LED[i]=1;
gert_lauritsen 0:dcef095e5883 239 }
gert_lauritsen 0:dcef095e5883 240 if ((LedOnOff[i]==2) && (LED[i]<=0.02)) { //SLuk
gert_lauritsen 0:dcef095e5883 241 LED[i]=0;
gert_lauritsen 0:dcef095e5883 242 LedOnOff[i]=0;
gert_lauritsen 0:dcef095e5883 243 }
gert_lauritsen 0:dcef095e5883 244 }
gert_lauritsen 0:dcef095e5883 245 update();
gert_lauritsen 0:dcef095e5883 246 }
gert_lauritsen 0:dcef095e5883 247
gert_lauritsen 0:dcef095e5883 248
gert_lauritsen 0:dcef095e5883 249 void SetAll(float p)
gert_lauritsen 0:dcef095e5883 250 {
gert_lauritsen 0:dcef095e5883 251 for (int i=0; i<N; i++) {
gert_lauritsen 0:dcef095e5883 252 strip.setPixel(i,p*255,p*255,p*255);
gert_lauritsen 0:dcef095e5883 253 }
gert_lauritsen 0:dcef095e5883 254 strip.write();
gert_lauritsen 0:dcef095e5883 255 }
gert_lauritsen 0:dcef095e5883 256
gert_lauritsen 0:dcef095e5883 257 void SetAllOn()
gert_lauritsen 0:dcef095e5883 258 {
gert_lauritsen 0:dcef095e5883 259 for (int i=0; i<N; i++) {
gert_lauritsen 0:dcef095e5883 260 strip.setPixel(i,color[0],color[1],color[2]);
gert_lauritsen 0:dcef095e5883 261 }
gert_lauritsen 0:dcef095e5883 262 strip.write();
gert_lauritsen 0:dcef095e5883 263 }
gert_lauritsen 0:dcef095e5883 264
gert_lauritsen 0:dcef095e5883 265
gert_lauritsen 0:dcef095e5883 266 void distance6(long Duration)
gert_lauritsen 0:dcef095e5883 267 {
gert_lauritsen 0:dcef095e5883 268 //printf("Distance2: %d %.2f \n\r",Duration, LED[1]);
gert_lauritsen 0:dcef095e5883 269 DistArr[5]=Duration;
gert_lauritsen 0:dcef095e5883 270 if (Duration<MinDist) {
gert_lauritsen 0:dcef095e5883 271 if (CallAgain) {
gert_lauritsen 0:dcef095e5883 272 LedOnOff[5]=1;
gert_lauritsen 0:dcef095e5883 273 CallAgain=0;
gert_lauritsen 0:dcef095e5883 274 ThereAreSomeThing=1;
gert_lauritsen 0:dcef095e5883 275 } else {
gert_lauritsen 0:dcef095e5883 276 CallAgain++;
gert_lauritsen 0:dcef095e5883 277 SensorTOCall=6; //kalder sig selv igen
gert_lauritsen 0:dcef095e5883 278 }
gert_lauritsen 0:dcef095e5883 279 } else {
gert_lauritsen 0:dcef095e5883 280 LedOnOff[5]=2;
gert_lauritsen 0:dcef095e5883 281 CallAgain=0;
gert_lauritsen 0:dcef095e5883 282 }
gert_lauritsen 0:dcef095e5883 283 }
gert_lauritsen 0:dcef095e5883 284
gert_lauritsen 0:dcef095e5883 285
gert_lauritsen 0:dcef095e5883 286 void distance5(long Duration)
gert_lauritsen 0:dcef095e5883 287 {
gert_lauritsen 0:dcef095e5883 288 //printf("Distance1: %d %.2f \n\r",Duration, LED[0]);
gert_lauritsen 0:dcef095e5883 289 DistArr[4]=Duration;
gert_lauritsen 0:dcef095e5883 290 if (Duration<MinDist) {
gert_lauritsen 0:dcef095e5883 291 if (CallAgain) {
gert_lauritsen 0:dcef095e5883 292 LedOnOff[4]=1;
gert_lauritsen 0:dcef095e5883 293 CallAgain=0;
gert_lauritsen 0:dcef095e5883 294 ThereAreSomeThing=1;
gert_lauritsen 0:dcef095e5883 295 } else {
gert_lauritsen 0:dcef095e5883 296 CallAgain++;
gert_lauritsen 0:dcef095e5883 297 SensorTOCall=5; //kalder sig selv igen
gert_lauritsen 0:dcef095e5883 298 }
gert_lauritsen 0:dcef095e5883 299 } else {
gert_lauritsen 0:dcef095e5883 300 LedOnOff[4]=2;
gert_lauritsen 0:dcef095e5883 301 CallAgain=0;
gert_lauritsen 0:dcef095e5883 302 SensorTOCall=6;
gert_lauritsen 0:dcef095e5883 303 }
gert_lauritsen 0:dcef095e5883 304 Delay.attach(&CallNewSensor,0.005); //5ms mellem sensor
gert_lauritsen 0:dcef095e5883 305
gert_lauritsen 0:dcef095e5883 306 // sensor6->Trigger();
gert_lauritsen 0:dcef095e5883 307 }
gert_lauritsen 0:dcef095e5883 308
gert_lauritsen 0:dcef095e5883 309 void distance4(long Duration)
gert_lauritsen 0:dcef095e5883 310 {
gert_lauritsen 0:dcef095e5883 311 //printf("Distance4: %d %.2f \n\r",Duration, LED[3]);
gert_lauritsen 0:dcef095e5883 312 DistArr[3]=Duration;
gert_lauritsen 0:dcef095e5883 313 if (Duration<MinDist) {
gert_lauritsen 0:dcef095e5883 314 if (CallAgain) {
gert_lauritsen 0:dcef095e5883 315 LedOnOff[3]=1;
gert_lauritsen 0:dcef095e5883 316 CallAgain=0;
gert_lauritsen 0:dcef095e5883 317 ThereAreSomeThing=1;
gert_lauritsen 0:dcef095e5883 318 } else {
gert_lauritsen 0:dcef095e5883 319 CallAgain++;
gert_lauritsen 0:dcef095e5883 320 SensorTOCall=4; //kalder sig selv igen
gert_lauritsen 0:dcef095e5883 321 }
gert_lauritsen 0:dcef095e5883 322 } else {
gert_lauritsen 0:dcef095e5883 323 LedOnOff[3]=2;
gert_lauritsen 0:dcef095e5883 324 CallAgain=0;
gert_lauritsen 0:dcef095e5883 325 SensorTOCall=5;
gert_lauritsen 0:dcef095e5883 326 }
gert_lauritsen 0:dcef095e5883 327 Delay.attach(&CallNewSensor,0.005); //5ms mellem sensor
gert_lauritsen 0:dcef095e5883 328
gert_lauritsen 0:dcef095e5883 329 // sensor5->Trigger();
gert_lauritsen 0:dcef095e5883 330 }
gert_lauritsen 0:dcef095e5883 331
gert_lauritsen 0:dcef095e5883 332 void distance3(long Duration)
gert_lauritsen 0:dcef095e5883 333 {
gert_lauritsen 0:dcef095e5883 334 //printf("Distance3: %d %.2f \n\r",Duration, LED[2]);
gert_lauritsen 0:dcef095e5883 335 DistArr[2]=Duration;
gert_lauritsen 0:dcef095e5883 336 if (Duration<MinDist) {
gert_lauritsen 0:dcef095e5883 337 if (CallAgain) {
gert_lauritsen 0:dcef095e5883 338 LedOnOff[2]=1;
gert_lauritsen 0:dcef095e5883 339 CallAgain=0;
gert_lauritsen 0:dcef095e5883 340 ThereAreSomeThing=1;
gert_lauritsen 0:dcef095e5883 341 } else {
gert_lauritsen 0:dcef095e5883 342 CallAgain++;
gert_lauritsen 0:dcef095e5883 343 SensorTOCall=3; //kalder sig selv igen
gert_lauritsen 0:dcef095e5883 344 }
gert_lauritsen 0:dcef095e5883 345 } else {
gert_lauritsen 0:dcef095e5883 346 LedOnOff[2]=2;
gert_lauritsen 0:dcef095e5883 347 CallAgain=0;
gert_lauritsen 0:dcef095e5883 348 SensorTOCall=4;
gert_lauritsen 0:dcef095e5883 349 }
gert_lauritsen 0:dcef095e5883 350 Delay.attach(&CallNewSensor,0.005); //5ms mellem sensor
gert_lauritsen 0:dcef095e5883 351
gert_lauritsen 0:dcef095e5883 352 //sensor4->Trigger();
gert_lauritsen 0:dcef095e5883 353 }
gert_lauritsen 0:dcef095e5883 354
gert_lauritsen 0:dcef095e5883 355 void distance2(long Duration)
gert_lauritsen 0:dcef095e5883 356 {
gert_lauritsen 0:dcef095e5883 357 //printf("Distance2: %d %.2f \n\r",Duration, LED[1]);
gert_lauritsen 0:dcef095e5883 358 DistArr[1]=Duration;
gert_lauritsen 0:dcef095e5883 359 if (Duration<MinDist) {
gert_lauritsen 0:dcef095e5883 360 if (CallAgain) {
gert_lauritsen 0:dcef095e5883 361 LedOnOff[1]=1;
gert_lauritsen 0:dcef095e5883 362 CallAgain=0;
gert_lauritsen 0:dcef095e5883 363 ThereAreSomeThing=1;
gert_lauritsen 0:dcef095e5883 364 } else {
gert_lauritsen 0:dcef095e5883 365 CallAgain++;
gert_lauritsen 0:dcef095e5883 366 SensorTOCall=2; //kalder sig selv igen
gert_lauritsen 0:dcef095e5883 367 }
gert_lauritsen 0:dcef095e5883 368 } else {
gert_lauritsen 0:dcef095e5883 369 LedOnOff[1]=2;
gert_lauritsen 0:dcef095e5883 370 CallAgain=0;
gert_lauritsen 0:dcef095e5883 371 SensorTOCall=3;
gert_lauritsen 0:dcef095e5883 372 }
gert_lauritsen 0:dcef095e5883 373 Delay.attach(&CallNewSensor,0.005); //5ms mellem sensor
gert_lauritsen 0:dcef095e5883 374 }
gert_lauritsen 0:dcef095e5883 375
gert_lauritsen 0:dcef095e5883 376
gert_lauritsen 0:dcef095e5883 377 void distance1(long Duration)
gert_lauritsen 0:dcef095e5883 378 {
gert_lauritsen 0:dcef095e5883 379
gert_lauritsen 0:dcef095e5883 380 DistArr[0]=Duration;
gert_lauritsen 0:dcef095e5883 381 if (Duration<MinDist) {
gert_lauritsen 0:dcef095e5883 382 if (CallAgain) {
gert_lauritsen 0:dcef095e5883 383 LedOnOff[0]=1;
gert_lauritsen 0:dcef095e5883 384 CallAgain=0;
gert_lauritsen 0:dcef095e5883 385 ThereAreSomeThing=1;
gert_lauritsen 0:dcef095e5883 386 } else {
gert_lauritsen 0:dcef095e5883 387 CallAgain++;
gert_lauritsen 0:dcef095e5883 388 SensorTOCall=1; //kalder sig selv igen
gert_lauritsen 0:dcef095e5883 389 }
gert_lauritsen 0:dcef095e5883 390 } else {
gert_lauritsen 0:dcef095e5883 391 LedOnOff[0]=2;
gert_lauritsen 0:dcef095e5883 392 CallAgain=0;
gert_lauritsen 0:dcef095e5883 393 SensorTOCall=2;
gert_lauritsen 0:dcef095e5883 394 }
gert_lauritsen 0:dcef095e5883 395 Delay.attach(&CallNewSensor,0.005); //5ms mellem sensor
gert_lauritsen 0:dcef095e5883 396 }
gert_lauritsen 0:dcef095e5883 397
gert_lauritsen 0:dcef095e5883 398 void CallNewSensor()
gert_lauritsen 0:dcef095e5883 399 {
gert_lauritsen 0:dcef095e5883 400 switch (SensorTOCall) {
gert_lauritsen 0:dcef095e5883 401 case 1:
gert_lauritsen 0:dcef095e5883 402 sensor1->Trigger();
gert_lauritsen 0:dcef095e5883 403 break;
gert_lauritsen 0:dcef095e5883 404 case 2:
gert_lauritsen 0:dcef095e5883 405 sensor2->Trigger();
gert_lauritsen 0:dcef095e5883 406 break;
gert_lauritsen 0:dcef095e5883 407 case 3:
gert_lauritsen 0:dcef095e5883 408 sensor3->Trigger();
gert_lauritsen 0:dcef095e5883 409 break;
gert_lauritsen 0:dcef095e5883 410 case 4:
gert_lauritsen 0:dcef095e5883 411 sensor4->Trigger();
gert_lauritsen 0:dcef095e5883 412 break;
gert_lauritsen 0:dcef095e5883 413 case 5:
gert_lauritsen 0:dcef095e5883 414 sensor5->Trigger();
gert_lauritsen 0:dcef095e5883 415 break;
gert_lauritsen 0:dcef095e5883 416 case 6:
gert_lauritsen 0:dcef095e5883 417 sensor6->Trigger();
gert_lauritsen 0:dcef095e5883 418 break;
gert_lauritsen 0:dcef095e5883 419 }
gert_lauritsen 0:dcef095e5883 420 }
gert_lauritsen 0:dcef095e5883 421
arno3456 1:d6beb054bef4 422 bool AreSame(float a, float b)
arno3456 1:d6beb054bef4 423 {
arno3456 1:d6beb054bef4 424 return fabs(a - b) < 0.04f;
arno3456 1:d6beb054bef4 425 }
arno3456 1:d6beb054bef4 426
arno3456 1:d6beb054bef4 427 void setGroup(int i) {
arno3456 1:d6beb054bef4 428 switch (i) {
arno3456 1:d6beb054bef4 429 case 0:
arno3456 1:d6beb054bef4 430 updateInactiveSections(0, 17, 14, 2, 5);
arno3456 1:d6beb054bef4 431 break;
arno3456 1:d6beb054bef4 432 case 1:
arno3456 1:d6beb054bef4 433 updateInactiveSections(4, 13, 19, 18, 0);
arno3456 1:d6beb054bef4 434 break;
arno3456 1:d6beb054bef4 435 case 2:
arno3456 1:d6beb054bef4 436 updateInactiveSections(16, 7, 1, 10, 3);
arno3456 1:d6beb054bef4 437 break;
arno3456 1:d6beb054bef4 438 case 3:
arno3456 1:d6beb054bef4 439 updateInactiveSections(3, 9, 18, 8, 11);
arno3456 1:d6beb054bef4 440 break;
arno3456 1:d6beb054bef4 441 case 4:
arno3456 1:d6beb054bef4 442 updateInactiveSections(8, 11, 15, 6, 0);
arno3456 1:d6beb054bef4 443 break;
arno3456 1:d6beb054bef4 444 case 5:
arno3456 1:d6beb054bef4 445 updateInactiveSections(12, 3, 11, 16, 5);
arno3456 1:d6beb054bef4 446 break;
arno3456 1:d6beb054bef4 447 case 6:
arno3456 1:d6beb054bef4 448 updateInactiveSections(5, 6, 16, 15, 7);
arno3456 1:d6beb054bef4 449 break;
arno3456 1:d6beb054bef4 450 case 7:
arno3456 1:d6beb054bef4 451 updateInactiveSections(15, 10, 14, 2, 19);
arno3456 1:d6beb054bef4 452 break;
arno3456 1:d6beb054bef4 453 case 8:
arno3456 1:d6beb054bef4 454 updateInactiveSections(19, 1, 11, 13, 4);
arno3456 1:d6beb054bef4 455 break;
arno3456 1:d6beb054bef4 456 case 9:
arno3456 1:d6beb054bef4 457 updateInactiveSections(3, 12, 0, 8, 9);
arno3456 1:d6beb054bef4 458 break;
arno3456 1:d6beb054bef4 459 case 10:
arno3456 1:d6beb054bef4 460 strip.setBrightness(0.85f);
arno3456 1:d6beb054bef4 461 for (int j=0; j<sizeof(CombinedSectionSize)/sizeof(*CombinedSectionSize); j++) {
arno3456 1:d6beb054bef4 462 updateInactiveSections(j, -1, -1, -1, -1);
arno3456 1:d6beb054bef4 463 wait_ms(300);
arno3456 1:d6beb054bef4 464 }
arno3456 1:d6beb054bef4 465 break;
arno3456 1:d6beb054bef4 466 case 11:
arno3456 1:d6beb054bef4 467 strip.setBrightness(0.7f);
arno3456 1:d6beb054bef4 468 for (int i=0; i<4; i++) {
arno3456 1:d6beb054bef4 469 for (int j=0; j<6; j++) {
arno3456 1:d6beb054bef4 470 if (j == 4) { // brightness for section 4 (old sections) only.
arno3456 1:d6beb054bef4 471 strip.setBrightness(0.5f);
arno3456 1:d6beb054bef4 472 }
arno3456 1:d6beb054bef4 473 if (j == 5) { // sets to normal again immediatly after section 4
arno3456 1:d6beb054bef4 474 strip.setBrightness(0.7f);
arno3456 1:d6beb054bef4 475 }
arno3456 1:d6beb054bef4 476
arno3456 1:d6beb054bef4 477 updateSections(j, -1, -1);
arno3456 1:d6beb054bef4 478 wait_ms(500);
arno3456 1:d6beb054bef4 479 }
arno3456 1:d6beb054bef4 480 }
arno3456 1:d6beb054bef4 481 break;
arno3456 1:d6beb054bef4 482 case 12:
arno3456 1:d6beb054bef4 483 SetAllOn();
arno3456 1:d6beb054bef4 484 break;
arno3456 1:d6beb054bef4 485 }
arno3456 1:d6beb054bef4 486 }
arno3456 1:d6beb054bef4 487
gert_lauritsen 0:dcef095e5883 488 int main()
gert_lauritsen 0:dcef095e5883 489 {
gert_lauritsen 0:dcef095e5883 490 pc.baud(115200);
gert_lauritsen 0:dcef095e5883 491 printf("Test af sensor\r\n");
gert_lauritsen 0:dcef095e5883 492 sensor1= new HCSR04(p5,p6,distance1);
gert_lauritsen 0:dcef095e5883 493 sensor2= new HCSR04(p7,p8,distance2);
gert_lauritsen 0:dcef095e5883 494 sensor3= new HCSR04(p9,p10,distance3);
gert_lauritsen 0:dcef095e5883 495 sensor4= new HCSR04(p11,p12,distance4);
gert_lauritsen 0:dcef095e5883 496 sensor5= new HCSR04(p13,p14,distance5);
gert_lauritsen 0:dcef095e5883 497 sensor6= new HCSR04(p15,p16,distance6);
gert_lauritsen 0:dcef095e5883 498 ReadColorFactor();
gert_lauritsen 0:dcef095e5883 499 N=0;
gert_lauritsen 0:dcef095e5883 500 for (int a=0; a<8; a++) N+=SectionSize[a];
gert_lauritsen 0:dcef095e5883 501 printf("Numbers of LED %d\r\n",N);
gert_lauritsen 0:dcef095e5883 502
gert_lauritsen 0:dcef095e5883 503 float bright = 0.2; // 20% is plenty for indoor use
gert_lauritsen 0:dcef095e5883 504 strip.setBrightness(bright); // set default brightness
gert_lauritsen 0:dcef095e5883 505
gert_lauritsen 0:dcef095e5883 506 SetAll(0);
arno3456 1:d6beb054bef4 507
arno3456 1:d6beb054bef4 508 float brightness = 0.0f;
arno3456 1:d6beb054bef4 509 strip.setBrightness(brightness);
arno3456 1:d6beb054bef4 510 bool fadein = true;
arno3456 1:d6beb054bef4 511
arno3456 1:d6beb054bef4 512 bool hold = false;
arno3456 1:d6beb054bef4 513 float holdTime = 0.0f;
arno3456 1:d6beb054bef4 514
arno3456 1:d6beb054bef4 515 int groupSelected = 0;
arno3456 1:d6beb054bef4 516
arno3456 1:d6beb054bef4 517 bool lysshow = true;
gert_lauritsen 0:dcef095e5883 518
gert_lauritsen 0:dcef095e5883 519 while(1) {
arno3456 1:d6beb054bef4 520
gert_lauritsen 0:dcef095e5883 521 ThereAreSomeThing=0;
gert_lauritsen 0:dcef095e5883 522 sensor1->Trigger();
gert_lauritsen 0:dcef095e5883 523 wait(0.05);
arno3456 1:d6beb054bef4 524
arno3456 1:d6beb054bef4 525 if (ThereAreSomeThing) {
arno3456 1:d6beb054bef4 526 ThereAreNothing=0;
arno3456 1:d6beb054bef4 527 }
arno3456 1:d6beb054bef4 528 else {
arno3456 1:d6beb054bef4 529 ThereAreNothing++;
arno3456 1:d6beb054bef4 530 }
arno3456 1:d6beb054bef4 531
arno3456 1:d6beb054bef4 532 if (ThereAreNothing>0) { //5 minutter ingenting før var den 6000. 100 = 5 sekunder
arno3456 1:d6beb054bef4 533 InAktive= true; //Inaktiv på den måde at denskal lave noget
gert_lauritsen 0:dcef095e5883 534 }
arno3456 1:d6beb054bef4 535 /*if ((ThereAreSomeThing==0) && (InAktive)) {
arno3456 1:d6beb054bef4 536 InAktive=false; //gå tilbage til almindeligt mode
arno3456 1:d6beb054bef4 537 printf("Something\n");
arno3456 1:d6beb054bef4 538 }*/
arno3456 1:d6beb054bef4 539 if (ThereAreSomeThing && InAktive) {
arno3456 1:d6beb054bef4 540 /*InAktive=false; //gå tilbage til almindeligt mode
arno3456 1:d6beb054bef4 541 fadein = true;
arno3456 1:d6beb054bef4 542 hold = false;
arno3456 1:d6beb054bef4 543 holdTime = 0.0f;
arno3456 1:d6beb054bef4 544 brightness = 0.0f;
arno3456 1:d6beb054bef4 545 strip.setBrightness(brightness);
arno3456 1:d6beb054bef4 546 SetAll(0.0f);
arno3456 1:d6beb054bef4 547 printf("Something\n");*/
arno3456 1:d6beb054bef4 548 }
arno3456 1:d6beb054bef4 549 //if (InAktive) {
arno3456 1:d6beb054bef4 550 // printf("Inaktive");
arno3456 1:d6beb054bef4 551 if (lysshow) {
arno3456 1:d6beb054bef4 552 /*if (TimeToNet) TimeToNet--;
arno3456 1:d6beb054bef4 553
gert_lauritsen 0:dcef095e5883 554 if ((InAktive==2) && (TimeToNet==0)) { //gør noget
gert_lauritsen 0:dcef095e5883 555 LED[rand() % 6]=1; //Tænder for en tilfældig
gert_lauritsen 0:dcef095e5883 556 //Der skal gå et stykke tid
gert_lauritsen 0:dcef095e5883 557 TimeToNet=60; //3 sek
gert_lauritsen 0:dcef095e5883 558 CalcNew();
arno3456 1:d6beb054bef4 559 }*/
arno3456 1:d6beb054bef4 560 //SetAllOn();
arno3456 1:d6beb054bef4 561 //updateInactive();
arno3456 1:d6beb054bef4 562 //strip.setBrightness(0.35f);
arno3456 1:d6beb054bef4 563
arno3456 1:d6beb054bef4 564 if ((groupSelected == 10) || (groupSelected == 11) || AreSame(holdTime, 0.35f) ) { //Reset if hold time is reached or after whirl effect
arno3456 1:d6beb054bef4 565 fadein = true;
arno3456 1:d6beb054bef4 566 hold = false;
arno3456 1:d6beb054bef4 567 holdTime = 0.0f;
arno3456 1:d6beb054bef4 568 brightness = 0.0f;
arno3456 1:d6beb054bef4 569 strip.setBrightness(brightness);
arno3456 1:d6beb054bef4 570
arno3456 1:d6beb054bef4 571 int groupSelectedNew = rand() % 12; // normal is 15
arno3456 1:d6beb054bef4 572 while(groupSelectedNew == groupSelected) { //set new
arno3456 1:d6beb054bef4 573 groupSelectedNew = rand() % 12; // normal is 15
arno3456 1:d6beb054bef4 574 }
arno3456 1:d6beb054bef4 575 if ((groupSelectedNew == 13) && (groupSelectedNew == 14)) groupSelectedNew = 12; //Same effect with tri probability
arno3456 1:d6beb054bef4 576 groupSelected = groupSelectedNew;
arno3456 1:d6beb054bef4 577 printf("Case %d\r\n", groupSelected);
arno3456 1:d6beb054bef4 578
arno3456 1:d6beb054bef4 579 SetAll(0.0f);
arno3456 1:d6beb054bef4 580 }
arno3456 1:d6beb054bef4 581
arno3456 1:d6beb054bef4 582 setGroup(groupSelected);
arno3456 1:d6beb054bef4 583
arno3456 1:d6beb054bef4 584 if ((groupSelected == 12 && AreSame(brightness, 0.19f)) || //|| AreSame(brightness, 0.6f)) { //normal på 0.8
arno3456 1:d6beb054bef4 585 (groupSelected == 0 && AreSame(brightness, 0.28f)) ||
arno3456 1:d6beb054bef4 586 (groupSelected == 1 && AreSame(brightness, 0.20f)) ||
arno3456 1:d6beb054bef4 587 (groupSelected == 2 && AreSame(brightness, 0.30f)) ||
arno3456 1:d6beb054bef4 588 (groupSelected == 3 && AreSame(brightness, 0.25f)) ||
arno3456 1:d6beb054bef4 589 (groupSelected == 4 && AreSame(brightness, 0.30f)) ||
arno3456 1:d6beb054bef4 590 (groupSelected == 5 && AreSame(brightness, 0.20f)) ||
arno3456 1:d6beb054bef4 591 (groupSelected == 6 && AreSame(brightness, 0.33f)) ||
arno3456 1:d6beb054bef4 592 (groupSelected == 7 && AreSame(brightness, 0.22f)) ||
arno3456 1:d6beb054bef4 593 (groupSelected == 8 && AreSame(brightness, 0.20f)) ||
arno3456 1:d6beb054bef4 594 (groupSelected == 9 && AreSame(brightness, 0.30f))) { //Individual group brightness
arno3456 1:d6beb054bef4 595 fadein = false;
arno3456 1:d6beb054bef4 596 hold = true;
arno3456 1:d6beb054bef4 597 }
arno3456 1:d6beb054bef4 598 if (fadein) {
arno3456 1:d6beb054bef4 599 //brightness += 0.013f;
arno3456 1:d6beb054bef4 600 brightness += 0.037f;
arno3456 1:d6beb054bef4 601 }
arno3456 1:d6beb054bef4 602
arno3456 1:d6beb054bef4 603
arno3456 1:d6beb054bef4 604 if (!fadein && hold && (groupSelected == 12)) {
arno3456 1:d6beb054bef4 605 holdTime += 0.01f;
arno3456 1:d6beb054bef4 606 } else if (!fadein && hold) {
arno3456 1:d6beb054bef4 607 holdTime += 0.05f;
arno3456 1:d6beb054bef4 608 }
arno3456 1:d6beb054bef4 609
arno3456 1:d6beb054bef4 610 //printf("%f\n", brightness);
arno3456 1:d6beb054bef4 611
arno3456 1:d6beb054bef4 612 strip.setBrightness(brightness);
gert_lauritsen 0:dcef095e5883 613 }
arno3456 1:d6beb054bef4 614 if (!InAktive) {
gert_lauritsen 0:dcef095e5883 615 CalcNew();
gert_lauritsen 0:dcef095e5883 616 LedOnOff[0]=2;
gert_lauritsen 0:dcef095e5883 617 LedOnOff[1]=2;
gert_lauritsen 0:dcef095e5883 618 LedOnOff[2]=2;
gert_lauritsen 0:dcef095e5883 619 LedOnOff[3]=2;
gert_lauritsen 0:dcef095e5883 620 LedOnOff[4]=2;
gert_lauritsen 0:dcef095e5883 621 LedOnOff[5]=2;
gert_lauritsen 0:dcef095e5883 622 LedOnOff[6]=2;
gert_lauritsen 0:dcef095e5883 623 LedOnOff[7]=2;
gert_lauritsen 0:dcef095e5883 624 printf("Sensor %d %d %d %d %d %d \r",DistArr[0],DistArr[1],DistArr[2],DistArr[3],DistArr[4],DistArr[5]);
gert_lauritsen 0:dcef095e5883 625 }
gert_lauritsen 0:dcef095e5883 626 if (pc.readable()) {
gert_lauritsen 0:dcef095e5883 627 switch(pc.getc()) {
gert_lauritsen 0:dcef095e5883 628 case '1':
gert_lauritsen 0:dcef095e5883 629 LedOnOff[0]=1;
gert_lauritsen 0:dcef095e5883 630 break;
gert_lauritsen 0:dcef095e5883 631 case '2':
gert_lauritsen 0:dcef095e5883 632 LedOnOff[1]=1;
gert_lauritsen 0:dcef095e5883 633 break;
gert_lauritsen 0:dcef095e5883 634 case '3':
gert_lauritsen 0:dcef095e5883 635 LedOnOff[2]=1;
gert_lauritsen 0:dcef095e5883 636 break;
gert_lauritsen 0:dcef095e5883 637 case '4':
gert_lauritsen 0:dcef095e5883 638 LedOnOff[3]=1;
gert_lauritsen 0:dcef095e5883 639 break;
gert_lauritsen 0:dcef095e5883 640 case '5':
gert_lauritsen 0:dcef095e5883 641 LedOnOff[4]=1;
gert_lauritsen 0:dcef095e5883 642 break;
gert_lauritsen 0:dcef095e5883 643 case '6':
gert_lauritsen 0:dcef095e5883 644 LedOnOff[5]=1;
gert_lauritsen 0:dcef095e5883 645 break;
gert_lauritsen 0:dcef095e5883 646 //case 'a': InAktive=1; break;
gert_lauritsen 0:dcef095e5883 647 case 'k': {
arno3456 1:d6beb054bef4 648 if (lysshow) {
arno3456 1:d6beb054bef4 649 lysshow = false;
arno3456 1:d6beb054bef4 650 InAktive=1;
arno3456 1:d6beb054bef4 651 strip.setBrightness(1.0);
arno3456 1:d6beb054bef4 652 SetAllOn();
arno3456 1:d6beb054bef4 653 printf("All On 100% birghtness!!!!\r\n");
arno3456 1:d6beb054bef4 654 } else {
arno3456 1:d6beb054bef4 655 lysshow = true;
arno3456 1:d6beb054bef4 656 InAktive=0;
arno3456 1:d6beb054bef4 657 strip.setBrightness(0.2);
arno3456 1:d6beb054bef4 658 printf("Continuing normal lightshow!!!!\r\n");
arno3456 1:d6beb054bef4 659 }
gert_lauritsen 0:dcef095e5883 660 }
gert_lauritsen 0:dcef095e5883 661 break;
gert_lauritsen 0:dcef095e5883 662 case 'K':
gert_lauritsen 0:dcef095e5883 663 InAktive=0;
gert_lauritsen 0:dcef095e5883 664 break;
gert_lauritsen 0:dcef095e5883 665
gert_lauritsen 0:dcef095e5883 666 case 'c':
gert_lauritsen 0:dcef095e5883 667 printf("Color R %d G %d B %d\r\n",color[0],color[1],color[2]);
gert_lauritsen 0:dcef095e5883 668 break;
gert_lauritsen 0:dcef095e5883 669 case 'r':
gert_lauritsen 0:dcef095e5883 670 mbed_reset();
gert_lauritsen 0:dcef095e5883 671 break;
gert_lauritsen 0:dcef095e5883 672 case 'b': {
gert_lauritsen 0:dcef095e5883 673 bright+=0.1;
gert_lauritsen 0:dcef095e5883 674 if (bright>1.01) bright=0;
gert_lauritsen 0:dcef095e5883 675 strip.setBrightness(bright); // set default brightness
gert_lauritsen 0:dcef095e5883 676 printf("brigth %.2f\r\n",bright);
gert_lauritsen 0:dcef095e5883 677 }
gert_lauritsen 0:dcef095e5883 678 break;
gert_lauritsen 0:dcef095e5883 679 }
gert_lauritsen 0:dcef095e5883 680 }
gert_lauritsen 0:dcef095e5883 681 }
gert_lauritsen 0:dcef095e5883 682 }