read IR sensor and blink when somethings too close

Dependencies:   NeoStrip mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "NeoStrip.h"
00003 
00004 DigitalOut myled(LED1);
00005 AnalogIn ir(p20);
00006 Serial pc(USBTX, USBRX);
00007 
00008 #define N 59
00009 
00010 NeoStrip strip(p18, N);
00011 
00012 void blinkOn();
00013 void blinkOff();
00014 
00015 
00016 void blinkOn()
00017 {
00018     for (int i = 0; i < N; i++)
00019     {
00020         if (i % 2)
00021             strip.setPixel(i, 0xff, 0, 0);   
00022         else
00023             strip.setPixel(i, 0, 0, 0);  
00024     }
00025     wait_ms(50);
00026    strip.write();
00027 }
00028 
00029 void blinkOff()
00030 {
00031     for (int i = 0; i < N; i++)
00032     {
00033         strip.setPixel(i, 0, 0, 0);   
00034     }
00035     wait_ms(60);
00036    strip.write();
00037 }
00038 
00039 int main() {
00040     
00041     float buffer [10];
00042     
00043     while(1)
00044     {
00045         for (int i = 0; i < 10; i++)
00046         {
00047             float val;
00048             val = 21/ir;
00049             buffer[i] = val;
00050             float sum = 0;
00051             for (int j = 0; j < 10; j++)
00052             {
00053                 sum += buffer[j];
00054             }
00055             float avg = sum/10;
00056             pc.printf("%f\r\n", avg);
00057             
00058             if (avg < 70)
00059             {
00060                 blinkOn();
00061                 wait_ms(100);
00062                 blinkOff();
00063                 wait_ms(100);            
00064                 blinkOn();
00065                 wait_ms(100);
00066                 blinkOff();
00067                 wait_ms(100);              
00068                 blinkOn();
00069                 wait_ms(100);
00070                 blinkOff();
00071                 wait_ms(100); 
00072                 
00073             }
00074         }
00075     }
00076     
00077 }