Serial_LED(f303k8)
Dependencies: mbed PololuLedStrip
main.cpp
- Committer:
- hamaken1018
- Date:
- 2021-01-25
- Revision:
- 0:e4b3c79f95c0
File content as of revision 0:e4b3c79f95c0:
#include "mbed.h" #include "PololuLedStrip.h" PololuLedStrip ledStrip1(PB_1); PololuLedStrip ledStrip2(PB_0); PololuLedStrip ledStrip3(PA_11); PololuLedStrip ledStrip4(PA_7); #define LED_COUNT 37 //LEDの数 rgb_color colors[LED_COUNT]; rgb_color colors2[LED_COUNT]; rgb_color colors3[LED_COUNT]; rgb_color colors4[LED_COUNT]; Serial Xbee(PA_9,PA_10,19200); //TX,RX,クロックレート Serial pc(SERIAL_TX,SERIAL_RX); //pc(USBTX,USBRX) unsigned char RX_data; DigitalOut LED(PA_3); AnalogIn FT(PA_4); Ticker flipper; //タイマー //RS-555 rpm == 3610 //rad/s == 378.0383159819718 //ギア比は1:2だから上の2倍のはず //フォトリフレクタ double fot; int h = 0; int b = 0; //↓LED色 int R = 1; int G = 2; int B = 3; int Y = 4; int L = 5; int P = 6; int W = 7; int O = 8; int LED_CON = 1; int con = 0; int FT_con = 0; void Xbee_RX(){ RX_data = Xbee.getc(); //Xbeeから送られてきた文字Zに代入 pc.putc(RX_data); //値をpcに表示 } rgb_color COLOR(float H,int n){ float r = 0, g = 0, b = 0; H = 100; //光の強さ switch (n){ case 1:r = H; g = 0; b = 0; break; //赤 case 2:r = 0; g = H; b = 0; break; //緑 case 3:r = 0; g = 0; b = H; break; //青 case 4:r = H; g = H; b = 0; break; //黄色 case 5:r = 0; g = H; b = H; break; //水色 case 6:r = H; g = 0; b = H; break; //紫 case 7:r = H; g = H; b = H; break; //白 case 8:r = H; g = H * 0.5; b = 0; break; //オレンジ } return (rgb_color){r,g,b}; } //タイマー処理 void LED_not(){ for(h = 0; h < LED_COUNT; h++){ uint8_t phase =(h << 1); colors[h] = COLOR(phase, 0); ledStrip1.write(colors, LED_COUNT); } } int main(){ Xbee.attach(&Xbee_RX, Serial::RxIrq); //割り込み pc.baud(115200); //pcクロックレート while(1){ // if(RX_data == 'A'){ if(FT < 0.8){ FT_con++; //Xbee.printf("%f",FT); while(FT < 0.8){ //Xbee.printf("%f",FT); } } // if(RX_data == 'A' && con == 0){ // con = 1; // } if(con == 0){ if(10 <= FT_con && FT_con < 20){ for(h = 0; h < LED_COUNT; h++){ uint8_t phase =(h << 1); colors[1] = COLOR(phase, B); ledStrip1.write(colors, LED_COUNT); } LED_not(); } } } }