ece4180final
/
NeoPixel_Proximity
read IR sensor and blink when somethings too close
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Sat Jul 16 2022 19:31:45 by 1.7.2