{"id":95,"date":"2019-10-16T19:34:26","date_gmt":"2019-10-16T10:34:26","guid":{"rendered":"https:\/\/pwm.sigris-rabo.work\/?page_id=95"},"modified":"2021-05-10T20:55:57","modified_gmt":"2021-05-10T11:55:57","slug":"%e8%a6%8b%e3%82%84%e3%81%99%e3%81%84%e3%82%bd%e3%83%bc%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%89","status":"publish","type":"page","link":"https:\/\/pwm.sigris-rabo.work\/?page_id=95","title":{"rendered":"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff08V1.10\uff09"},"content":{"rendered":"<h4>\u203b\u3053\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u6700\u65b0\u7248\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/h4>\n<p>&nbsp;<\/p>\n<p>\u30d4\u30f3\u30a2\u30b5\u30a4\u30f3\u306f\u79cb\u6708\u96fb\u5b50\u306eArduino Pro mini\u4e92\u63db\u57fa\u677f\uff08<a href=\"http:\/\/akizukidenshi.com\/catalog\/g\/gK-10347\/\">http:\/\/akizukidenshi.com\/catalog\/g\/gK-10347\/<\/a>\uff09<\/p>\n<p>\u306b\u5408\u308f\u305b\u3066\u5909\u66f4\u3057\u3066\u304a\u308a\u307e\u3059\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u307f\u66f4\u65b0\u3059\u308b\u5834\u5408\u306f\u30d4\u30f3\u30a2\u30b5\u30a4\u30f3\u3092\u4ee5\u524d\u306e\u30b3\u30fc\u30c9\u304b\u3089\u30b3\u30d4\u30da\u3057\u3066\u66f8\u304d\u63db\u3048\u3066\u4e0b\u3055\u3044\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u203b2019\/10\/16 \u8ffd\u8a18<\/p>\n<p>V1.00\u3088\u308a\u30b3\u30fc\u30c9\u3092\u4e00\u90e8\u5909\u66f4\u3057\u3001\u97f3\u30c7\u30fc\u30bf\u306e\u80a5\u5927\u5316\u306b\u3088\u308a\u30e1\u30e2\u30ea\u304c\u4e0d\u8db3\u3059\u308b\u554f\u984c\u3092\u89e3\u6d88\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u4eca\u56de\u306e\u5909\u66f4\u306b\u3088\u308a\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6c17\u306b\u3059\u308b\u4e8b\u7121\u304f\u97f3\u30c7\u30fc\u30bf\u3092\u4f5c\u308a\u3053\u3080\u3053\u3068\u304c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">\/\/ ***************************************************************************************\r\n\/\/  WhiteBear Controller Next Generation\r\n\/\/ ***************************************************************************************\r\n\/\/  \u30fbPWM\u5236\u5fa1\u306b\u3088\u308b\u9244\u9053\u6a21\u578b\u7528\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3002\r\n\/\/  \u30fb12\u6bb5\u968e\u306e\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u3092\u7528\u3044\u3001\u30ef\u30f3\u30cf\u30f3\u30c9\u30eb\u30de\u30b9\u30b3\u30f3\u3092\u6a21\u64ec\u3059\u308b\u3002\r\n\/\/  \u30fb\u30de\u30b9\u30b3\u30f3\u306fP5-B5 + EB \u306e12\u6bb5\u3002\r\n\/\/  \u30fb\u5404\u7a2e\u72b6\u6cc1\u306f\u30ad\u30e3\u30e9\u30af\u30bfLCD(16\u6587\u5b57x2\u6bb5)\u3067\u8868\u793a\u3002\r\n\/\/  \u30fb\u529b\u884c\u5404\u6bb5\u306e\u6700\u9ad8\u901f\u5ea6\u3092\u8a2d\u5b9a\u53ef\u80fd\u3002\u8a2d\u5b9a\u306f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u5185\u3067\u3042\u3089\u304b\u3058\u3081\u8a2d\u5b9a\u3002\r\n\/\/  \u30fb\u30ce\u30c3\u30c1\u306b\u3088\u308b\u52a0\u901f\u5ea6\u306e\u9055\u3044\u3082\u3064\u3044\u3067\u306b\u518d\u73fe\u3002\r\n\/\/  \u30fbPWM\u5468\u6ce2\u6570\u306e\u5909\u8abf\u306b\u3088\u308a\u3001VVVF\u306a\u3069\u5236\u5fa1\u6a5f\u5668\u306e\u97f3\u3092\u518d\u73fe\u3002\r\n\/\/  \u30fb\u5909\u8abf\u97f3\u306f\u6700\u592712\u7a2e\u985e\u307e\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u53ef\u80fd\u3002\r\n\/\/  \u30fb\u52a0\u901f\u6642\u3068\u6e1b\u901f\u6642\u3067\u7570\u306a\u308b\u5909\u8abf\u97f3\u3092\u8a2d\u5b9a\u53ef\u80fd\u3002\r\n\/\/  \u30fb\u30de\u30b9\u30b3\u30f3P5\u3067\u96fb\u6e90\u6295\u5165\u3059\u308b\u3068\u3001\u958b\u767a\u30e2\u30fc\u30c9\u3002\r\n\/\/  \u30fb\u958b\u767a\u30e2\u30fc\u30c9(isDev=True)\u306e\u6642\u3001\u73fe\u5728\uff0f\u76ee\u6a19\u30b9\u30d4\u30fc\u30c9\u5024\u3068\u52a0\u901f\u7387\uff0f\u5e38\u70b9\u706f\u30c0\u30a4\u30e4\u30eb\u306e\u5024\u3082\u8868\u793a\u3002\r\n\/\/ ***************************************************************************************\r\n\/\/\u66f4\u65b0\u5c65\u6b74\r\n\/\/2019\/07\/30 V1.00 \u521d\u671f\u7248\u3002\r\n\/\/2019\/10\/11 V1.10 \u97f3\u30c7\u30fc\u30bf\u3092\u30d5\u30e9\u30c3\u30b7\u30e5\u30e1\u30e2\u30ea\u683c\u7d0d\u306b\u5909\u66f4\u3057\u3001RAM\u4e0d\u8db3\u3092\u89e3\u6d88\u3002\r\n\/\/ ***************************************************************************************\r\n#include &amp;lt;avr\/io.h&amp;gt; \/\/ ATmega328P\u7528\u306e\u30d8\u30c3\u30c0\u30d5\u30a1\u30a4\u30eb\r\n#include &amp;lt;avr\/pgmspace.h&amp;gt;\r\n#include &amp;lt;LiquidCrystal.h&amp;gt; \/\/ \u30ad\u30e3\u30e9\u30af\u30bf\u6db2\u6676\u30c7\u30a3\u30b9\u30d7\u30ec\u30a4\u5236\u5fa1\u7528\u306e\u30d8\u30c3\u30c0\u30d5\u30a1\u30a4\u30eb\r\n\/\/ ***********************************************\r\n\/\/ \u5b9a\u6570\u30fb\u5909\u6570\u5b9a\u7fa9 \u3053\u3053\u304b\u3089\r\n\/\/ ***********************************************\r\n\r\nconst char *MOJI1 = \" WCNG Controller\";  \/\/ Welcome\u30e1\u30c3\u30bb\u30fc\u30b8\u3002LCD1\u6bb5\u76ee\u300216\u6841\u306b\u3059\u308b\u3053\u3068\u3002\r\nconst char *MOJI2 = \"Program Ver 1.10\";  \/\/ Welcome\u30e1\u30c3\u30bb\u30fc\u30b8\u3002LCD2\u6bb5\u76ee\u300216\u6841\u306b\u3059\u308b\u3053\u3068\u3002\r\n\r\nconst int P_MASCON     = 3; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Analog) \u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1 = A3\r\nconst int P_LIGHT_DIAL = 4; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Analog) \u5e38\u70b9\u706f\u8abf\u7bc0\u30c0\u30a4\u30a2\u30eb = A4\r\nconst int P_ACCEL_DIAL = 5; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Analog) \u52a0\u901f\u7387\u8abf\u7bc0\u30c0\u30a4\u30a2\u30eb = A5\r\n\r\nconst int P_PWM2B      = 3; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) OCR2B\u51fa\u529b to Rail = D3\r\nconst int P_LCD_RS     = 4; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) LCD-REGISTER      = D4\r\nconst int P_LCD_EN     = 5; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) LCD-ENABLE        = D5\r\nconst int P_LCD_D4     = 6; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) LCD-D4            = D6\r\nconst int P_LCD_D5     = 7; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) LCD-D5            = D7\r\nconst int P_LCD_D6     = 8; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) LCD-D6            = D8\r\nconst int P_LCD_D7     = 9; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) LCD-D7            = D9\r\nconst int P_PWM1B     = 10; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) OCR1B\u51fa\u529b to Rail = D10\r\nconst int P_PWM2A     = 11; \/\/ Arduino\u63a5\u7d9a\u30d4\u30f3\u756a\u53f7\uff1a(Digital) OCR2A\u51fa\u529b to Rail = MOSI\r\n\r\n\/\/ \u30ad\u30e3\u30e9\u30af\u30bf\u6db2\u6676\r\nLiquidCrystal lcd(P_LCD_RS, P_LCD_EN, P_LCD_D4, P_LCD_D5, P_LCD_D6, P_LCD_D7);\r\n\r\nconst int DECISION_TIME = 5;   \/\/ setup\u6642\u306b\u8d70\u884c\u30d1\u30bf\u30fc\u30f3\u3092\u6c7a\u3081\u308b\u969b\u306e\u3001\u78ba\u5b9a\u307e\u3067\u306e\u6642\u9593\u3002\u79d2\u3002\r\nconst int ACCEL_RATIO = 20;    \/\/ (\u52a0\u901f\u7387\u8abf\u6574\u5c0f\u578b\u30dc\u30ea\u30e5\u30fc\u30e0\u304b\u3089\u306e\u5165\u529b\u5024) \u00d7 ACCEL_RATIO \u21d2 \u52a0\u901f\u7387\r\nconst int BRAKE_RATIO = 6;    \/\/ (\u52a0\u901f\u7387\u8abf\u6574\u5c0f\u578b\u30dc\u30ea\u30e5\u30fc\u30e0\u304b\u3089\u306e\u5165\u529b\u5024) \u00d7 BRAKE_RATIO \u00d7 \u30de\u30b9\u30b3\u30f3\u30d6\u30ec\u30fc\u30ad\u5024(1\uff5e5) \u21d2 \u6e1b\u901f\u7387\r\nconst int UNTI_CHAT_RATE = 40; \/\/ \u30c1\u30e3\u30bf\u30ea\u30f3\u30b0\u9632\u6b62\u30eb\u30fc\u30d7\u306e\u5024\u3002\u5927\u304d\u304f\u3057\u904e\u304e\u308b\u3068\u30ce\u30c3\u30c1\u5207\u66ff\u6642\u306e\u53cd\u5fdc\u304c\u60aa\u304f\u306a\u308b\u3002\r\n\r\nconst int MC_EB  = 1; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u975e\u5e38\r\nconst int MC_B5  = 2; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u5236\u52d55\r\nconst int MC_B4  = 3; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u5236\u52d54\r\nconst int MC_B3  = 4; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u5236\u52d53\r\nconst int MC_B2  = 5; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u5236\u52d52\r\nconst int MC_B1  = 6; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u5236\u52d51\r\nconst int MC_N   = 7; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u60f0\u884c\r\nconst int MC_P1  = 8; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u529b\u884c1\r\nconst int MC_P2  = 9; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u529b\u884c2\r\nconst int MC_P3 = 10; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u529b\u884c3\r\nconst int MC_P4 = 11; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u529b\u884c4\r\nconst int MC_P5 = 12; \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e \u529b\u884c5\r\n\r\n\/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u540d\u79f0\u3092\u4fdd\u6301\u3059\u308b\u914d\u5217\r\nchar* masconPosName[] = {\"EB\", \"B5\", \"B4\", \"B3\", \"B2\", \"B1\", \"N \", \"P1\", \"P2\", \"P3\", \"P4\", \"P5\"}; \r\n\r\nconst int MD_STOP  = 1; \/\/ \u30e2\u30fc\u30c9 \u505c\u6b62\r\nconst int MD_BRAKE = 2; \/\/ \u30e2\u30fc\u30c9 \u6e1b\u901f\r\nconst int MD_NTRL  = 3; \/\/ \u30e2\u30fc\u30c9 \u60f0\u884c\r\nconst int MD_ACCEL = 4; \/\/ \u30e2\u30fc\u30c9 \u52a0\u901f\r\n\r\n\/\/boolean isDev;      \/\/ \u958b\u767a\u30e2\u30fc\u30c9\u306e\u3068\u304dTrue\u3002\r\nint vvvfPtn;        \/\/ \u8d70\u884c\u97f3\u30d1\u30bf\u30fc\u30f3\u30020\uff5e11\u3068\u306a\u308b\u3002\r\nint masconPos;      \/\/ \u30de\u30b9\u30b3\u30f3\u306e\u4f4d\u7f6e\u3092\u4fdd\u6301\u30021\uff5e12\u3068\u306a\u308b\u3002\r\nint inputMascon;    \/\/ \u8aad\u307f\u53d6\u3063\u305f\u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u3092\u4e00\u6642\u7684\u306b\u4fdd\u6301\r\nint compareMascon;  \/\/ \u30de\u30b9\u30b3\u30f3\u306e\u4f4d\u7f6e\u524d\u56de\u3068\u6bd4\u8f03\u3059\u308b\u305f\u3081\u4e00\u6642\u7684\u306b\u4fdd\u6301\r\nint lightVol;       \/\/ \u5e38\u70b9\u706f\u30c0\u30a4\u30a2\u30eb\u304b\u3089\u62fe\u3063\u305f\u5024\u30920\uff5e127\u306b\u5909\u63db\u3057\u3066\u4fdd\u6301\u3059\u308b\u3002\u5909\u63db\u51e6\u7406\u306floop()\u5185\u306b\u3066\u3002\r\nint accelVol;       \/\/ \u52a0\u901f\u7387\u30c0\u30a4\u30a2\u30eb\u304b\u3089\u62fe\u3063\u305f\u5024\u30921\uff5e8\u306b\u5909\u63db\u3057\u3066\u4fdd\u6301\u3059\u308b\u3002\u5909\u63db\u51e6\u7406\u306floop()\u5185\u306b\u3066\u3002\r\nint kasoku;         \/\/ \u8d70\u884c\u7528\u51fa\u529b\u3059\u308b\u52a0\u6e1b\u901f\u7387\r\nint mode;           \/\/ \u8d70\u884c\u72b6\u614b\u30021=\u505c\u6b62, 2=\u6e1b\u901f, 3=\u60f0\u884c, 4=\u52a0\u901f\r\nlong notch1;        \/\/ \u30ce\u30c3\u30c11\u3067\u306e\u6700\u9ad8\u901f\u5ea6\r\nlong notch2;        \/\/ \u30ce\u30c3\u30c12\u3067\u306e\u6700\u9ad8\u901f\u5ea6\r\nlong notch3;        \/\/ \u30ce\u30c3\u30c13\u3067\u306e\u6700\u9ad8\u901f\u5ea6\r\nlong notch4;        \/\/ \u30ce\u30c3\u30c14\u3067\u306e\u6700\u9ad8\u901f\u5ea6\r\nlong notch5;        \/\/ \u30ce\u30c3\u30c15\u3067\u306e\u6700\u9ad8\u901f\u5ea6\r\nlong stopSpd;       \/\/ \u8d70\u884c\u7528\u51fa\u529b\u3092\u30ab\u30c3\u30c8\u3059\u308b\u901f\u5ea6\r\n\r\nlong AsttFrq;   \/\/ \u958b\u59cb\u5468\u6ce2\u6570\r\nlong AendFrq;   \/\/ \u7d42\u4e86\u5468\u6ce2\u6570\r\nlong Afrq;      \/\/ \u5468\u6ce2\u6570\r\nlong AsttSpd;   \/\/ \u958b\u59cb\u30b9\u30d4\u30fc\u30c9\r\nlong AendSpd;   \/\/ \u7d42\u4e86\u30b9\u30d4\u30fc\u30c9\r\nlong BsttFrq;   \/\/ \u958b\u59cb\u5468\u6ce2\u6570\r\nlong BendFrq;   \/\/ \u7d42\u4e86\u5468\u6ce2\u6570\r\nlong Bfrq;      \/\/ \u5468\u6ce2\u6570\r\nlong BsttSpd;   \/\/ \u958b\u59cb\u30b9\u30d4\u30fc\u30c9\r\nlong BendSpd;   \/\/ \u7d42\u4e86\u30b9\u30d4\u30fc\u30c9\r\nlong spd;      \/\/ \u5185\u90e8\u30b9\u30d4\u30fc\u30c9 0\uff5e3,000,000\uff08\u901f\u5ea6\u00d710,000\uff09\r\nlong orderSpd; \/\/ \u6307\u793a\u30b9\u30d4\u30fc\u30c9\r\n\r\nint i; \/\/ \u30eb\u30fc\u30d7\u30ab\u30a6\u30f3\u30bf\u30fc\r\nint k; \/\/ \u30eb\u30fc\u30d7\u30ab\u30a6\u30f3\u30bf\u30fc\r\n\r\nint dispSpd = 0;      \/\/ LCD\u8868\u793a\u7528\u30b9\u30d4\u30fc\u30c9\u5024\r\n\/\/long dispOrderSpd = 0; \/\/ LCD\u8868\u793a\u7528\u30b9\u30d4\u30fc\u30c9\u76ee\u6a19\u5024\r\n\r\n\/\/ \u8d70\u884c\u97f3\u540d\u79f0\r\nchar* soundName[12] = {\r\n  \"   201          \",\r\n  \" 209,70-000,etc \",\r\n  \" E231-0,500,etc \",\r\n  \"   E231-1000    \",\r\n  \"   E233, etc    \",\r\n  \"KQ 2100 (SI-GTO)\",\r\n  \" N1000 (SI-GTO) \",\r\n  \" MITSUBISHI-GTO \",\r\n  \"   Toyo-GTO     \",\r\n  \"   Toyo-IGBT    \",\r\n  \"Toei 5300(Akuma)\",\r\n  \"TOSHIBA 3LevIGBT\"\r\n};\r\n\r\n\/\/ \u5404\u30d1\u30bf\u30fc\u30f3\u306e\u5404\u30ce\u30c3\u30c1\u4f4d\u7f6e\u3067\u306e\u6700\u9ad8\u901f\u5ea6\u5024\u3092\u914d\u5217\u3067\u4fdd\u6301\u3002\r\n\/\/ \u5de6\u304b\u3089\u9806\u306b 1\u30ce\u30c3\u30c1, 2\u30ce\u30c3\u30c1, 3\u30ce\u30c3\u30c1, 4\u30ce\u30c3\u30c1, 5\u30ce\u30c3\u30c1\u3002\r\n\/\/ 5\u00d712\u30d1\u30bf\u30fc\u30f3\uff1d60\u500b\u306e\u5024\u3092\u6301\u3064\u3002\r\nint maxSpdData[] = {\r\n  21, 41, 71, 91, 101,   \/\/\u30d1\u30bf\u30fc\u30f3 1 201 \r\n  31, 51, 81, 101, 111,  \/\/\u30d1\u30bf\u30fc\u30f3 2 209,70-000,etc\r\n  31, 51, 91, 111, 121,  \/\/\u30d1\u30bf\u30fc\u30f3 3 E231-0,500,etc\r\n  31, 51, 91, 111, 121,  \/\/\u30d1\u30bf\u30fc\u30f3 4 E231-1000\r\n  31, 51, 91, 111, 121,  \/\/\u30d1\u30bf\u30fc\u30f3 5 E233, etc\r\n  41, 71, 111, 121, 131, \/\/\u30d1\u30bf\u30fc\u30f3 6 KQ 2100 (SI-GTO)\r\n  41, 71, 111, 121, 131, \/\/\u30d1\u30bf\u30fc\u30f3 7 N1000 (SI-GTO)\r\n  41, 71, 111, 121, 131, \/\/\u30d1\u30bf\u30fc\u30f3 8 MITSUBISHI-GTO\r\n  41, 71, 111, 121, 131, \/\/\u30d1\u30bf\u30fc\u30f3 9 Toyo-GTO\r\n  41, 71, 111, 121, 131, \/\/\u30d1\u30bf\u30fc\u30f310 Toyo-IGBT\r\n  31, 61, 101, 111, 111, \/\/\u30d1\u30bf\u30fc\u30f311 Toei 5300(Akuma)\r\n  31, 61, 91, 101, 111,  \/\/\u30d1\u30bf\u30fc\u30f312 TOSHIBA 3LevIGBT\r\n};\r\n\r\n\/\/ \u8d70\u884c\u7528\u306e\u51fa\u529b\u3092\u6b62\u3081\u308b\u901f\u5ea6\u5024\u3092\u914d\u5217\u3067\u4fdd\u6301\u3002\u30d4\u30bf\u30c3\u3068\u6b62\u3081\u308b\u305f\u3081\u306e\u5024\u3002\r\n\/\/ \u74b0\u5883\u306b\u5408\u308f\u305b\u3066\u9069\u5b9c\u8abf\u6574\u3057\u3066\u4e0b\u3055\u3044\u3002\r\n\/\/ 12\u30d1\u30bf\u30fc\u30f3\u5206\u306e\u5024\u3092\u6301\u3064\u3002\r\nint stopSpdData[] = {19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19};\r\n\r\n\/\/ \u97f3\u30c7\u30fc\u30bf\u3002\r\n\/\/ \u8a2d\u5b9a\u53ef\u80fd\u5468\u6ce2\u6570 123Hz\uff5e8000kHz\r\n\/\/ DUTY\u6bd4\u306e\u5206\u89e3\u80fd\u78ba\u4fdd\u306e\u305f\u308130kHz\u3050\u3089\u3044\u3092\u4e0a\u9650\u3002\u6574\u6570\u306b\u9650\u308b\u3002\r\n\/\/ \uff5e\uff5e\uff5e(\u4f8b) \u30d1\u30bf\u30fc\u30f33\u306e\u5834\u5408\uff5e\uff5e\uff5e\r\n\/\/ 1\u884c\u76ee \u901f\u5ea60\uff5e 3\u306e\u9593\uff1a380Hz\u3067\u97f3\u7a0b\u5909\u5316\u306a\u3057\r\n\/\/ 2\u884c\u76ee \u901f\u5ea64\uff5e11\u306e\u9593\uff1a380Hz\u304b\u3089980Hz\u307e\u3067\u5909\u5316\u3059\u308b\r\n\r\n\/\/\u52a0\u901f\u6642\u7528\u306e\u97f3\u30c7\u30fc\u30bf\u3002\r\nconst int AsoundDataBase[] PROGMEM = {\r\n  \/\/\u30d1\u30bf\u30fc\u30f31 201\r\n  580, 580, 66,  \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  550, 980, 101, \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,            \/\/ 3 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f32 209,70-000,etc\r\n  230, 230, 3,     \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  90, 90, 4,       \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  230, 950, 11,    \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  600, 1150, 21,   \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  750, 1150, 31,   \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  600, 950, 46,    \/\/ 6 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  470, 1150, 91,   \/\/ 7 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1150, 1150, 111, \/\/ 8 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 9 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f33 E231-0,500,etc\r\n  380, 380, 3,     \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  380, 980, 11,    \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  560, 780, 26,    \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  480, 1150, 101,  \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1150, 1150, 121, \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f34 E231-1000\r\n  1050, 1050, 11,  \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1050, 700, 27,   \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  700, 6000, 35,   \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  480, 1150, 101,  \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1150, 1150, 121, \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f35 E233, etc\r\n  750, 750, 30,    \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  350, 1150, 101,  \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1150, 1150, 121, \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 4 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f36 KQ 2100 (SI-GTO)\r\n  350, 350, 3,   \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  390, 390, 4,   \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  440, 440, 5,   \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  490, 490, 6,   \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  530, 530, 7,   \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 580, 8,   \/\/ 6 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  650, 650, 9,   \/\/ 7 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  700, 700, 10,  \/\/ 8 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 780, 22,  \/\/ 9 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  510, 980, 111, \/\/10 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 580, 131, \/\/11 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,            \/\/12 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f37 N1000 (SI-GTO)\r\n  350, 350, 3,   \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  390, 390, 4,   \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  440, 440, 5,   \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  490, 490, 6,   \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  530, 530, 7,   \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 580, 8,   \/\/ 6 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  650, 650, 9,   \/\/ 7 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  700, 700, 10,  \/\/ 8 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 780, 16,  \/\/ 9 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  950, 970, 18,  \/\/10 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  850, 970, 20,  \/\/11 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  800, 970, 22,  \/\/12 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  510, 980, 111, \/\/13 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 580, 131, \/\/14 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,            \/\/15 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f38 MITSUBISHI GTO\r\n  490, 710, 16,    \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  710, 710, 25,    \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  600, 780, 31,    \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  420, 1250, 110,  \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1250, 1250, 131, \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n  \r\n  \/\/\u30d1\u30bf\u30fc\u30f39 Toyo-GTO\r\n  490, 780, 18,    \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  490, 780, 30,    \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  420, 1250, 110,  \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1250, 1250, 131, \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 5 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f310 Toyo-IGBT\r\n  1050, 1050, 25,  \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  630, 1300, 40,   \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  650, 1150, 111,  \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1150, 1150, 131, \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 5 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f311 Toei 5300(Akuma)\r\n  780, 780, 11,\r\n  450, 450, 16,\r\n  500, 780, 22,\r\n  430, 580, 25,\r\n  400, 1150, 105,\r\n  1150, 1150, 111,\r\n  -1,            \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f312 TOSHIBA 3LevIGBT\r\n  730, 730, 11,\r\n  510, 730, 16,\r\n  600, 1150, 101,\r\n  1150, 1150, 111,\r\n  -1,            \/\/ 7 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n};\r\n\r\n\/\/RAM\u6d88\u8cbb\u3092\u6291\u3048\u308b\u70ba\u306e\u914d\u5217\u3002\r\n\/\/[]\u5185\u306e\u6570\u5b57\u30923n(n=\u4e0a\u8a18\u30d1\u30bf\u30fc\u30f3\u306e\u4e2d\u3067\u6700\u3082\u884c\u6570\u304c\u9577\u3044\u30d1\u30bf\u30fc\u30f3\u306e\u884c\u6570)\u4ee5\u4e0a\u306b\u8a2d\u5b9a\u3057\u3066\u4e0b\u3055\u3044\u3002\r\n\/\/\u3042\u307e\u308a\u6570\u5b57\u3092\u5927\u304d\u304f\u3057\u904e\u304e\u308b\u3068\u30e1\u30e2\u30ea\u4e0d\u8db3\u306b\u306a\u308b\u305f\u3081\u3001\u3080\u3084\u307f\u306b\u5927\u304d\u304f\u3057\u306a\u3044\u3088\u3046\u306b\u3002\r\n\/\/\u521d\u671f\u5024\u306f45\u3002\r\nint AsoundData[45];\r\n\r\n\/\/ \u8d70\u884c\u97f3\u30d1\u30bf\u30fc\u30f312\u7a2esoundData\u306e\u5404\u30d1\u30bf\u30fc\u30f3\u30c7\u30fc\u30bf\u958b\u59cb\u4f4d\u7f6e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4fdd\u6301\u3002\r\n\/\/ \u5b9f\u969b\u306e\u5024\u8a2d\u5b9a\u306f\u3001setup\u51e6\u7406\u5185\u306b\u3066\u7d42\u4e86\u30b3\u30fc\u30c9(-1)\u3092\u691c\u51fa\u3057\u52d5\u7684\u306b\u8a2d\u5b9a\u3059\u308b\u3002\r\nint AdataNum[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};\r\n\r\n\/\/\u6e1b\u901f\u6642\u7528\u306e\u97f3\u30c7\u30fc\u30bf\u3002\r\nconst int BsoundDataBase[] PROGMEM = {\r\n  \/\/\u30d1\u30bf\u30fc\u30f31 201\r\n  580, 580, 61,  \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 650, 76,  \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  550, 980, 101, \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,            \/\/ 4 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f32 209,70-000,etc\r\n  120, 120, 3,     \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  120, 1180, 26,   \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  600, 900, 36,    \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  550, 1800, 96,   \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1150, 1150, 111, \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f33 E231-0,500,etc\r\n  350, 350, 6,     \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  350, 980, 31,    \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 900, 86,    \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  530, 1150, 101,  \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1150, 1150, 121, \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f34 E231-1000\r\n  1050, 1050, 16,  \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1050, 700, 41,   \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  700, 2900, 44,   \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 880, 46,    \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 900, 86,    \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  530, 1150, 101,  \/\/ 6 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1150, 1150, 121, \/\/ 7 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 8 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f35 E233, etc\r\n  750, 750, 31,    \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  300, 1000, 106,  \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1000, 1000, 121, \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 4 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f36 KQ 2100 (SI-GTO)\r\n  780, 780, 22,  \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 1150, 35, \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 970, 45,  \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  600, 980, 111, \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 580, 131, \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,            \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f37 N1000 (SI-GTO)\r\n  780, 780, 16,  \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 970, 19,  \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 820, 22,  \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 1150, 35, \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  780, 970, 45,  \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  600, 980, 111, \/\/ 6 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 580, 131, \/\/ 7 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,            \/\/ 8 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f38 MITSUBISHI GTO\r\n  580, 720, 16,    \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  720, 720, 26,    \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  460, 650, 36,    \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  450, 1250, 110,  \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1250, 1250, 131, \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n  \r\n  \/\/\u30d1\u30bf\u30fc\u30f39 Toyo-GTO\r\n  580, 580, 7,     \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 750, 20,    \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  380, 650, 31,    \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  450, 1250, 110,  \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  1250, 1250, 131, \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,              \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f310 Toyo-IGBT\r\n  1050, 1050, 26, \/\/ 1 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  600, 930, 41,   \/\/ 2 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  600, 950, 95,   \/\/ 3 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  950, 950, 111,  \/\/ 4 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  580, 580, 131,  \/\/ 5 \u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\r\n  -1,             \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f311 Toei 5300(Akuma)\r\n  780, 780, 18,\r\n  440, 460, 22,\r\n  460, 570, 36,\r\n  500, 1150, 105,\r\n  1150, 1150, 111,\r\n  -1,            \/\/ 6 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n  \/\/\u30d1\u30bf\u30fc\u30f312 TOSHIBA 3LevIGBT\r\n  730, 730, 11,\r\n  510, 1150, 101,\r\n  1150, 1150, 111,\r\n  -1,            \/\/ 7 \u7d42\u4e86\u30b3\u30fc\u30c9\r\n\r\n};\r\n\r\n\/\/RAM\u6d88\u8cbb\u3092\u6291\u3048\u308b\u70ba\u306e\u914d\u5217\u3002\r\n\/\/[]\u5185\u306e\u6570\u5b57\u30923n(n=\u4e0a\u8a18\u30d1\u30bf\u30fc\u30f3\u306e\u4e2d\u3067\u6700\u3082\u884c\u6570\u304c\u9577\u3044\u30d1\u30bf\u30fc\u30f3\u306e\u884c\u6570)\u4ee5\u4e0a\u306b\u8a2d\u5b9a\u3057\u3066\u4e0b\u3055\u3044\u3002\r\n\/\/\u3042\u307e\u308a\u6570\u5b57\u3092\u5927\u304d\u304f\u3057\u904e\u304e\u308b\u3068\u30e1\u30e2\u30ea\u4e0d\u8db3\u306b\u306a\u308b\u305f\u3081\u3001\u3080\u3084\u307f\u306b\u5927\u304d\u304f\u3057\u306a\u3044\u3088\u3046\u306b\u3002\r\n\/\/\u521d\u671f\u5024\u306f45\u3002\r\nint BsoundData[45];\r\n\r\n\/\/ \u8d70\u884c\u97f3\u30d1\u30bf\u30fc\u30f312\u7a2esoundData\u306e\u5404\u30d1\u30bf\u30fc\u30f3\u30c7\u30fc\u30bf\u958b\u59cb\u4f4d\u7f6e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4fdd\u6301\u3002\r\n\/\/ \u5b9f\u969b\u306e\u5024\u8a2d\u5b9a\u306f\u3001setup\u51e6\u7406\u5185\u306b\u3066\u7d42\u4e86\u30b3\u30fc\u30c9(-1)\u3092\u691c\u51fa\u3057\u52d5\u7684\u306b\u8a2d\u5b9a\u3059\u308b\u3002\r\nint BdataNum[13] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};\r\n\r\n\/\/ ***********************************************\r\n\/\/ \u5b9a\u6570\u30fb\u5909\u6570\u5b9a\u7fa9 \u3053\u3053\u307e\u3067\r\n\/\/ ***********************************************\r\n\r\n\r\n\/\/ **********************************************************************************************\r\n\/\/ \u95a2\u6570\u5b9a\u7fa9 \u3053\u3053\u304b\u3089\r\n\/\/ **********************************************************************************************\r\n\r\n\/\/ ***********************************************\r\n\/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u3092\u691c\u51fa\u3059\u308b\u3002\r\n\/\/ \u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u304b\u3089\u306e\u30dc\u30ea\u30e5\u30fc\u30e0\u5024\u3092\u62fe\u3044\u3001\r\n\/\/ \u9069\u5ea6\u306a\u5024\u306b\u5909\u63db\u3059\u308b\u51e6\u7406\u3002\r\n\/\/ \r\n\/\/ \u5f15\u6570\uff1a \u30a2\u30ca\u30ed\u30b0\u30d4\u30f3\u304b\u3089\u53d6\u5f97\u3057\u305f\u5024(Max:1023)\r\n\/\/ \u623b\u5024\uff1a 1(=EB)\uff5e12(=P5) \r\n\/\/ ***********************************************\r\n\/\/ \u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u304c12\u6bb5\u968e\u5207\u66ff\u306a\u306e\u3067\u3001\r\n\/\/ \u5165\u529b\u309212\u6bb5\u968e\u306b\u5206\u3051\u308b\u3002\r\n\/\/ 3\u756a\u30d4\u30f3\u304b\u3089\u306eanalogRead\u5024\u306f\u30fb\u30fb\u30fb(\u5b9f\u6e2c\u5024)\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 1\u306e\u6642\uff1a11k\u03a9 \u21d2   83\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 2\u306e\u6642\uff1a10k\u03a9 \u21d2  169\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 3\u306e\u6642\uff1a 9k\u03a9 \u21d2  254\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 4\u306e\u6642\uff1a 8k\u03a9 \u21d2  340\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 4\u306e\u6642\uff1a 7k\u03a9 \u21d2  425\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 4\u306e\u6642\uff1a 6k\u03a9 \u21d2  511\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 4\u306e\u6642\uff1a 5k\u03a9 \u21d2  596\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 4\u306e\u6642\uff1a 4k\u03a9 \u21d2  682\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 4\u306e\u6642\uff1a 3k\u03a9 \u21d2  767\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c 4\u306e\u6642\uff1a 2k\u03a9 \u21d2  853\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c11\u306e\u6642\uff1a 1k\u03a9 \u21d2  938\r\n\/\/ \u30fb\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u306e\u4f4d\u7f6e\u304c12\u306e\u6642\uff1a 0k\u03a9 \u21d2 1023\r\nint getMasconVol(int vol) {\r\n  int ans = 0;\r\n  \/\/ \u30de\u30b9\u30b3\u30f3\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u304b\u3089\u8aad\u307f\u53d6\u3063\u305f\u5024\u3092\u3001\u5c0f\u6570\u70b9\u3082\u6271\u3048\u308b\u5f62\u3067\r\n  \/\/ 0\uff5e1023\u306b\u53ce\u307e\u308b\u3088\u3046\u306b\u3059\u308b\u300212\u63a5\u70b9\u306a\u306e\u306712\u7b49\u5206\u3002\r\n  \/\/ \u56db\u6368\u4e94\u5165\u76f8\u5f53\u306e\u51e6\u7406\u3092\u3059\u308b\u21d2\u5024\u306b+0.5\u3057\u305f\u4e0a\u3067\u3001\u5c0f\u6570\u70b9\u4ee5\u4e0b\u3092\u5207\u308a\u6368\u3066\u308b\u305f\u3081int\u578b\u306b\u5909\u63db\u3002\r\n  ans = (int)(((double) analogRead(P_MASCON)) \/ (1024 \/ 12) + 0.5);\r\n  return ans;\r\n}\r\n\r\n\/\/ ***********************************************\r\n\/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u3092\u8868\u793a\u3002LCD\u306e\u53f3\u4e0b2\u6841\u3078\u3002\r\n\/\/ \u3064\u3044\u3067\u306b\u30b9\u30d4\u30fc\u30c9\u5024\u3082\u8868\u793a\u3002\u306a\u3093\u3068\u306a\u304fKATO103\u7cfb\u306e\r\n\/\/ \u52d5\u529b\u30e6\u30cb\u30c3\u30c8\u3067\u30b9\u30b1\u30fc\u30eb\u30b9\u30d4\u30fc\u30c9(\uff1f)\r\n\/\/ \u52d5\u529b\u30e6\u30cb\u30c3\u30c8\u306b\u3088\u3063\u3066\u540c\u3058\u96fb\u5727\u3067\u3082\u5b9f\u901f\u5ea6\u304c\u7570\u306a\u308b\r\n\/\/ \u306e\u3067\u3001\u3042\u304f\u307e\u3067\u3082\u76ee\u5b89\u5024\u3002\r\n\/\/ -----------------------------------------------\r\n\/\/ \u958b\u767a\u30e2\u30fc\u30c9(isDev=True)\u306e\u6642\u306f\u3001\u76ee\u6a19\u30b9\u30d4\u30fc\u30c9\u5024\u3068\r\n\/\/ \u52a0\u901f\u7387\u30c0\u30a4\u30e4\u30eb\u3001\u5e38\u70b9\u706f\u30c0\u30a4\u30e4\u30eb\u306e\u5024\u3082\u8868\u793a\u3059\u308b\u3002\r\n\/\/ ***********************************************\r\nvoid dispMasPos(int masPos) {\r\n  lcd.setCursor(14, 1);\r\n  lcd.print(masconPosName[masPos - 1]);\r\n\r\n  \/\/ spd\u3082\u8868\u793a\r\n  dispSpd = spd \/ 10000;\r\n  lcd.setCursor(4, 1);\r\n  if (dispSpd \/ 100 &amp;gt; 0) {\r\n    \/\/ 3digits.\r\n  } else {\r\n    if (dispSpd \/ 10 &amp;gt; 0) {\r\n      \/\/ 2digits.\r\n      lcd.print(\" \");\r\n    } else {\r\n      \/\/ 1digit.\r\n      lcd.print(\"  \");\r\n    }\r\n  } \r\n  lcd.print(dispSpd);\r\n\r\n\/*\r\n  if (isDev) {\r\n    \/\/                         \"0123456789012345\"\r\n    \/\/ \u3064\u3044\u3067\u306borderSpd\u3082\u8868\u793a\u3002\"SPD:nnn&amp;gt;nnn   XX\"\r\n    dispOrderSpd = orderSpd \/ 10000;\r\n    lcd.setCursor(8, 1);\r\n    if (dispOrderSpd \/ 100 &amp;gt; 0) {\r\n      \/\/ 3digits.\r\n    } else {\r\n      if (dispOrderSpd \/10 &amp;gt; 0) {\r\n        \/\/ 2digits.\r\n        lcd.print(\" \");\r\n      } else {\r\n        \/\/ 1digit.\r\n        lcd.print(\"  \");\r\n      }\r\n    } \r\n    lcd.print(dispOrderSpd);\r\n\r\n    \/\/ ----------------------  \"0123456789012LLL\"  \u203bLLL=\u5e38\u70b9\u706f\u30c0\u30a4\u30e4\u30eb\u5024\r\n    \/\/ \u3064\u3044\u3067\u306borderSpd\u3082\u8868\u793a\u3002\"Spd:nnn&amp;gt;nnn A XX\"  \u203bA=\u52a0\u901f\u7387\u30c0\u30a4\u30e4\u30eb\u5024 XX=\u30de\u30b9\u30b3\u30f3\u5024\r\n    lcd.setCursor(12, 0);\r\n    lcd.print(\" \");\r\n    if (lightVol &amp;lt; 100 &amp;amp;&amp;amp; lightVol &amp;gt;= 10) {\r\n      lcd.print(\" \");\r\n    } else if (lightVol &amp;lt; 10) {\r\n      lcd.print(\"  \");\r\n    }\r\n    lcd.print(lightVol);\r\n    lcd.setCursor(12, 1);\r\n    lcd.print(accelVol);\r\n  }\r\n*\/\r\n\r\n}\r\n\r\n\/\/ ***********************************************\r\n\/\/ setup\u95a2\u6570\u3002\u6700\u521d\u306b1\u5ea6\u3060\u3051\u5b9f\u884c\u3002\r\n\/\/ ***********************************************\r\nvoid setup() {\r\n  \/\/ PWM PIN\u8a2d\u5b9a\r\n  pinMode(P_PWM2A, OUTPUT); \/\/ \u5e38\u70b9\u706f\u7528PWM\u51fa\u529b\r\n  pinMode(P_PWM2B, OUTPUT); \/\/ \u8d70\u884c\u7528PWM\u51fa\u529b\r\n  pinMode(P_PWM1B, OUTPUT); \/\/ \u4f55\u7528\uff1f\r\n\r\n  \/\/ WELCOME\u30e1\u30c3\u30bb\u30fc\u30b8\u8868\u793a\r\n  lcd.begin(16, 2);  \/\/ 16\u6841\u30012\u884c\u30bf\u30a4\u30d7\u3068\u5ba3\u8a00\u3002\r\n  lcd.clear();\r\n  lcd.setCursor(0, 0);\r\n  lcd.print(MOJI1);\r\n  delay(2000);\r\n  lcd.setCursor(0, 1);\r\n  lcd.print(MOJI2);\r\n  delay(2000);\r\n\r\n\/\/  isDev = (MC_P5 == getMasconVol(analogRead(P_MASCON)));  \/\/ \u30de\u30b9\u30b3\u30f3\u304cP5\u306e\u6642\u3060\u3051\u958b\u767a\u30e2\u30fc\u30c9\u3002\r\n\r\n  lcd.clear();\r\n\r\n  \/\/ \u8d70\u884c\u97f3\u30d1\u30bf\u30fc\u30f3\u5404\u958b\u59cb\u4f4d\u7f6e\u53d6\u5f97\u51e6\u7406\u3002\r\n  \/\/ soundData\u914d\u5217\u306e\u3046\u3061\u3001\u5404\u30d1\u30bf\u30fc\u30f3\u306e\u6700\u521d\u306e\u5024\u3068\u306a\u308b\u914d\u5217\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092dataNum\u3067\u4fdd\u6301\u3059\u308b\u3002\r\n  \/\/ \u30d1\u30bf\u30fc\u30f31\u306f\u5e38\u306b\u5148\u982d(=\u30a4\u30f3\u30c7\u30c3\u30af\u30b90)\u306a\u306e\u3067\u3001dataNum\u306b\u30bb\u30c3\u30c8\u3059\u308b\u306e\u306f\u7701\u7565\u3002\r\n  \r\n  int idx = 0;\r\n \r\n  for (i=1; i&amp;lt;13; i++) {\r\n    while (pgm_read_word_near(&amp;amp;AsoundDataBase[idx]) != -1) {\r\n      idx++;\r\n    }\r\n    idx++;\r\n    AdataNum[i] = idx;\r\n  }\r\n\r\n  idx = 0;\r\n  \r\n  for (i=1; i&amp;lt;13; i++) {\r\n    while (pgm_read_word_near(&amp;amp;BsoundDataBase[idx]) != -1) {\r\n      idx++;\r\n    }\r\n    idx++;\r\n    BdataNum[i] = idx;\r\n  }\r\n\r\n  \/\/ \u8d70\u884c\u97f3\u30d1\u30bf\u30fc\u30f3\u53d6\u5f97\r\n  lcd.home();  \/\/ 1\u6587\u5b57\u76ee\u30011\u884c\u76ee\r\n  for (i=0; i&amp;lt;2; i++) {\r\n    lcd.clear();\r\n    delay(180);\r\n    lcd.print(\"Select SoundPtn.\");\r\n    delay(480);\r\n  }\r\n  delay(240);\r\n  lcd.clear();\r\n  lcd.print(\"SoundPtn.\");\r\n  lcd.setCursor(0, 1);\r\n  lcd.print(\" Revolve MasCon.\");\r\n  \/\/delay(2000);\r\n  \r\n  \/\/ \u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u309210\u79d2\u52d5\u304b\u3055\u306a\u3044\u3068\u6c7a\u5b9a\u3002\r\n  \/\/ \u305f\u3060\u3057\u3001\u4f55\u3082\u52d5\u304b\u3057\u3066\u306a\u3044\u3068\u304d\u306f\u305a\u3063\u3068\u5f85\u3061\u7d9a\u3051\u308b\u3002\r\n  unsigned long sttTime = 0;\r\n  unsigned long progress = 0;\r\n  boolean isMoved = false; \/\/ \u30de\u30b9\u30b3\u30f3\u3092\u52d5\u304b\u3057\u305f\u3089True\u306b\u3059\u308b\r\n  masconPos = getMasconVol(analogRead(P_MASCON)); \/\/ \u521d\u671f\u5024\r\n\r\n  while (!isMoved) {\r\n    inputMascon = getMasconVol(analogRead(P_MASCON)); \/\/ \u73fe\u5728\u5024\r\n    \/\/ \u8aad\u307f\u53d6\u3063\u305f\u6700\u65b0\u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u304c\u3001\u4ee5\u524d\u306b\u899a\u3048\u3066\u3044\u305f\u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u3068\u7570\u306a\u308b\u5834\u5408\r\n    \/\/ \uff1d\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u3092\u52d5\u304b\u3057\u305f\u3068\u5224\u65ad\u3002\r\n    isMoved = (masconPos != inputMascon);\r\n  }\r\n  sttTime = millis();  \/\/ \u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u3092\u3044\u3058\u3063\u305f\u306e\u3067\u3001\u521d\u671f\u5316\u3002\r\n  do {\r\n    while (true) {\r\n      inputMascon = getMasconVol(analogRead(P_MASCON)); \/\/ \u73fe\u5728\u5024\r\n      if (masconPos != inputMascon) {\r\n        \/\/ \u8aad\u307f\u53d6\u3063\u305f\u6700\u65b0\u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u304c\u3001\u4ee5\u524d\u306b\u899a\u3048\u3066\u3044\u305f\u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u3068\r\n        \/\/ \u7570\u306a\u308b\u5834\u5408\uff1d\u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u3092\u52d5\u304b\u3057\u305f\u3068\u5224\u65ad\u3002\r\n        masconPos = inputMascon;\/\/ \u65b0\u305f\u306a\u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u3092\u899a\u3048\u3066\u304a\u304f\u3002\r\n        sttTime = millis();  \/\/ \u30ed\u30fc\u30bf\u30ea\u30fc\u30b9\u30a4\u30c3\u30c1\u3092\u3044\u3058\u3063\u305f\u306e\u3067\u3001\u521d\u671f\u5316\u3002\r\n        lcd.setCursor(0, 1);  \/\/ 1\u6587\u5b57\u76ee\u30012\u884c\u76ee\r\n        lcd.print(soundName[masconPos - 1]); \/\/ LCD\u306b\u8d70\u884c\u97f3\u540d\u79f0\u3092\u8868\u793a\u3055\u305b\u308b\u3002\r\n      } else {\r\n        if ((millis() - sttTime) &amp;gt; DECISION_TIME * 1000) {\r\n          \/\/ \u9078\u3093\u3067\u304b\u3089\u6240\u5b9a\u6642\u9593\u304c\u904e\u304e\u305f\u3002\r\n          break; \/\/ \u30eb\u30fc\u30d7\u3092\u629c\u3051\u308b\u3002\r\n        } \r\n      }\r\n      progress = millis() - sttTime;\r\n      if (progress &amp;gt; 0) {\r\n        lcd.setCursor(15, 0);\r\n        lcd.print((String) (DECISION_TIME - (progress \/ 1000)));\r\n      }\r\n      delay(1);\r\n    }\r\n  } while (masconPos &amp;lt; MC_EB || masconPos &amp;gt; MC_P5); \/\/ 12\u7a2e\u985e\u304b\u3089\u9078\u629e\u3055\u308c\u305f\u3089\u30eb\u30fc\u30d7\u3092\u629c\u3051\u6b21\u306e\u51e6\u7406\u3078\u3002\r\n\r\n  \/\/ \u8d70\u884c\u97f3\u30d1\u30bf\u30fc\u30f3\u307b\u304b\u9078\u629e\u3057\u305f\u30d1\u30bf\u30fc\u30f3\u306b\u5408\u308f\u305b\u3066\u8a2d\u5b9a\r\n  vvvfPtn = masconPos - 1;\r\n  notch1  = (long) maxSpdData[vvvfPtn * 5    ] * 10000 - 1;\r\n  notch2  = (long) maxSpdData[vvvfPtn * 5 + 1] * 10000 - 1;\r\n  notch3  = (long) maxSpdData[vvvfPtn * 5 + 2] * 10000 - 1;\r\n  notch4  = (long) maxSpdData[vvvfPtn * 5 + 3] * 10000 - 1;\r\n  notch5  = (long) maxSpdData[vvvfPtn * 5 + 4] * 10000 - 1;\r\n  stopSpd = (long) stopSpdData[vvvfPtn]        *  1000 - 1;\r\n\r\n  k = 0;\r\n  \r\n  for (i = AdataNum[vvvfPtn]; i&amp;lt;AdataNum[vvvfPtn+1]; i++)\r\n  {\r\n  AsoundData[k] = pgm_read_word_near(&amp;amp;AsoundDataBase[i]);\r\n  k++;\r\n  }\r\n\r\n  k = 0;\r\n \r\n  for (i = BdataNum[vvvfPtn]; i&amp;lt;BdataNum[vvvfPtn+1]; i++)\r\n  {\r\n  BsoundData[k] = pgm_read_word_near(&amp;amp;BsoundDataBase[i]);\r\n  k++;\r\n  }\r\n  \r\n  \/\/ \u6c7a\u5b9a\u3057\u305f\u30d1\u30bf\u30fc\u30f3\u3092\u70b9\u6ec5\u8868\u793a\r\n  for (i=0; i&amp;lt;3; i++) {\r\n    lcd.clear();\r\n    delay(180);\r\n    lcd.print(\"Sound Pattern is\");\r\n    lcd.setCursor(0, 1);  \/\/ 1\u6587\u5b57\u76ee\u30012\u884c\u76ee\r\n    lcd.print(soundName[vvvfPtn]);\r\n    delay(480);\r\n  }\r\n  delay(240);\r\n  \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u3092\u60f0\u884c\u304b\u5236\u52d5\u306b\u3057\u3066\u3082\u3089\u3046\u6ce8\u610f\u559a\u8d77\u3002\u6025\u306b\u8d70\u308a\u51fa\u3055\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3002\r\n  \/\/ \u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u304c1\uff5e6\u3001\u3064\u307e\u308a \u975e\u5e38 \u304b \u5236\u52d55\uff5e1 \u306b\u8a2d\u5b9a\u3057\u306a\u3044\u3068\r\n  \/\/ \u6ce8\u610f\u559a\u8d77\u3055\u308c\u7d9a\u3051\u3001\u6b21\u306e\u51e6\u7406\u3078\u9032\u3081\u306a\u3044\u3002\r\n  masconPos = getMasconVol(analogRead(P_MASCON));\r\n  while (masconPos &amp;lt; MC_EB || masconPos &amp;gt; MC_B1) {\r\n    lcd.clear();\r\n    lcd.print(\"Caution!\");\r\n    lcd.setCursor(0, 1);\r\n    lcd.print(\"Apply Brake.\");\r\n    delay(240);\r\n    masconPos = getMasconVol(analogRead(P_MASCON));\r\n  }\r\n  \r\n  lcd.clear();\r\n  lcd.print(\"Ready.\");\r\n  delay(720);\r\n  lcd.clear();\r\n  lcd.print(soundName[vvvfPtn]);\r\n  lcd.setCursor(0, 1);\r\n  lcd.print(\"Spd:\");\r\n  lcd.setCursor(7, 1);\r\n\/\/  if (isDev) lcd.write(0x7E); \/\/ \u53f3\u5411\u304d\u77e2\u5370\r\n}\r\n\r\n\/\/ ***********************************************\r\n\/\/ ***********************************************\r\n\/\/ loop\u95a2\u6570\r\n\/\/ ***********************************************\r\n\/\/ ***********************************************\r\nvoid loop() {\r\n  \/\/\u52d5\u4f5c\u901f\u5ea6\u78ba\u4fdd\u306e\u305f\u3081\u3001\u97f3\u30c7\u30fc\u30bf\u3092\u30e1\u30e2\u30ea\u306b\u683c\u7d0d\u3002\r\n\r\n  accelVol = analogRead(P_ACCEL_DIAL) \/ 128 + 1; \/\/ analogRead 0\uff5e1023 \u2192 1\uff5e8\r\n  lightVol = analogRead(P_LIGHT_DIAL) \/ 8;       \/\/ analogRead 0\uff5e1023 \u2192 0\uff5e127\r\n\r\n  inputMascon = getMasconVol(analogRead(P_MASCON));\r\n  if (inputMascon &amp;gt;= MC_EB &amp;amp;&amp;amp; inputMascon &amp;lt;= MC_P5) {\r\n    \/\/ \u9078\u629e\u3057\u5f97\u308b12\u6bb5\u968e\u306e\u30de\u30b9\u30b3\u30f3\u4f4d\u7f6e\u3067\u3042\u308b\u3068\u5224\u65ad\u3002\r\n    if (compareMascon == inputMascon) {\r\n      masconPos = inputMascon;\r\n    } else if (compareMascon &amp;gt; inputMascon) {\r\n      compareMascon--;\r\n    } else if (compareMascon &amp;lt; inputMascon) {\r\n      compareMascon++;\r\n    }\r\n  }\r\n\r\n  switch (masconPos) {\r\n  case 1:\r\n    \/\/ \u975e\u5e38\r\n    orderSpd = 0;\r\n    spd = 0;\r\n    mode = MD_STOP;\r\n    break;\r\n  case 2:\r\n    \/\/ \u5236\u52d55\r\n    orderSpd = 0;\r\n    kasoku = accelVol * BRAKE_RATIO * 5;\r\n    mode = MD_BRAKE;\r\n    break;\r\n  case 3:\r\n    \/\/ \u5236\u52d54\r\n    orderSpd = 0;\r\n    kasoku = accelVol * BRAKE_RATIO * 4;\r\n    mode = MD_BRAKE;\r\n    break;\r\n  case 4:\r\n    \/\/ \u5236\u52d53\r\n    orderSpd = 0;\r\n    kasoku = accelVol * BRAKE_RATIO * 3;\r\n    mode = MD_BRAKE;\r\n    break;\r\n  case 5:\r\n    \/\/ \u5236\u52d52\r\n    orderSpd = 0;\r\n    kasoku = accelVol * BRAKE_RATIO * 2;\r\n    mode = MD_BRAKE;\r\n    break;\r\n  case 6:\r\n    \/\/ \u5236\u52d51\r\n    orderSpd = 0;\r\n    kasoku = accelVol * BRAKE_RATIO * 1;\r\n    mode = MD_BRAKE;\r\n    break;\r\n  case 7:\r\n    \/\/ \u60f0\u884c\r\n    orderSpd = 0;\r\n    kasoku = accelVol * BRAKE_RATIO * 2;\r\n    mode = MD_NTRL;\r\n    break;\r\n  case 8:\r\n    \/\/ \u529b\u884c1\r\n    orderSpd = notch1;\r\n    kasoku = accelVol * ACCEL_RATIO * 0.5;\r\n    mode = MD_ACCEL;\r\n    break;\r\n  case 9:\r\n    \/\/ \u529b\u884c2\r\n    orderSpd = notch2;\r\n    kasoku = accelVol * ACCEL_RATIO * 0.6;\r\n    mode = MD_ACCEL;\r\n    break;\r\n  case 10:\r\n    \/\/ \u529b\u884c3\r\n    orderSpd = notch3;\r\n    kasoku = accelVol * ACCEL_RATIO * 0.7;\r\n    mode = MD_ACCEL;\r\n    break;\r\n  case 11:\r\n    \/\/ \u529b\u884c4\r\n    orderSpd = notch4;\r\n    kasoku = accelVol * ACCEL_RATIO * 0.9;\r\n    mode = MD_ACCEL;\r\n    break;\r\n  case 12:\r\n    \/\/ \u529b\u884c5\r\n    orderSpd = notch5;\r\n    kasoku = accelVol * ACCEL_RATIO;\r\n    mode = MD_ACCEL;\r\n    break;\r\n  }\r\n\r\n  for ( k = 0; k &amp;lt; UNTI_CHAT_RATE; k++ ) { \/\/ \u30c1\u30e3\u30bf\u30ea\u30f3\u30b0\u9632\u6b62\u30eb\u30fc\u30d7\r\n    dispMasPos(masconPos);\r\n    if (spd &amp;lt; orderSpd) {\r\n      if (orderSpd - spd &amp;lt;= kasoku) {\r\n        spd = orderSpd;\r\n      } else {\r\n        spd = spd + kasoku;\r\n      }\r\n    }\r\n\r\n    if ( spd &amp;gt; orderSpd ) {\r\n      if ( masconPos &amp;gt;= MC_N ) {\r\n        \/\/ \u60f0\u884cor\u529b\u884c\r\n        if ( spd - orderSpd &amp;lt;= kasoku \/ BRAKE_RATIO ) {\r\n          spd = orderSpd;\r\n        } else {\r\n          spd = spd - kasoku \/ BRAKE_RATIO;\r\n        }\r\n      } else {\r\n        \/\/ \u5236\u52d5\r\n        if ( spd - orderSpd &amp;lt;= kasoku ) {\r\n          spd = orderSpd;\r\n        } else {\r\n          spd = spd - kasoku;\r\n        }\r\n      }\r\n    }\r\n\r\n    if ( spd &amp;lt; stopSpd &amp;amp;&amp;amp; masconPos &amp;lt; MC_P1 ) {\r\n      \/\/ \u60f0\u884cor\u5236\u52d5\u30ce\u30c3\u30c1\u306e\u3068\u304d\u3001\u30d4\u30bf\u505c\u6b62\u901f\u5ea6\u5024\u3088\u308a\u3082\u73fe\u884c\u901f\u5ea6\u304c\u4e0b\u56de\u3063\u305f\u3089\u30d4\u30bf\u30c3\u3068\u505c\u6b62\u3055\u305b\u308b\u3002\r\n      spd = 0;\r\n      mode = MD_STOP;\r\n    }\r\n\r\n    \/\/ \u8d70\u884c\u6642\u306e\u5e38\u70b9\u706fPWM DUTY\u6bd4\r\n    \/\/ \u5468\u6ce2\u6570\u306f31.2kHz = CPU\u5468\u6ce2\u6570(16MHz) \/ 2 \/ \u5206\u5468256\r\n    \/\/ OCR2A\u306f\u3053\u306e\u6570\u5024\u304b\u3089TOP255\u304cDUTY\u6bd4\r\n    OCR2A = 255 - lightVol;\r\n\r\n    \/\/ \u8d70\u884c\u7528\u51fa\u529b\u3002\r\n    \/\/ SPD \/ 128 \/ 4 \/ 10 \/ DUTY\u6bd4 ( 1.5 + speed \/ 390)\r\n    OCR2B = (int) (spd \/ ( 7680 + spd \/ 390 ));\r\n\r\n    \/\/ soundData\u306f\u958b\u59cb\u5468\u6ce2\u6570 \u7d42\u4e86\u5468\u6ce2\u6570 \u5207\u66ff\u30b9\u30d4\u30fc\u30c9\u306e3\u3064\u306e\u5024\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\u306e\u3067+3\u305a\u3064\u30ab\u30a6\u30f3\u30c8\u30a2\u30c3\u30d7\u3002\r\n    \/\/ soundData\u306e\u5b9a\u7fa9\u6570\u306f\u7121\u5236\u9650(-1\u3092\u7d42\u4e86\u30b3\u30fc\u30c9\u3068\u3057\u3066\u3044\u308b)\r\n\r\n    \/\/int j; \/\/ \u30eb\u30fc\u30d7\u30ab\u30a6\u30f3\u30bf\u30fc\r\n    \r\n    if (mode == MD_ACCEL) {\r\n    \r\n      for (i = 0; ;i = i + 3) {\r\n          AsttFrq = AsoundData[i];\r\n          AendFrq = AsoundData[i + 1];\r\n            if (i == 0) {\r\n            AsttSpd = 0;\r\n            AendSpd = AsoundData[i + 2];\r\n            }\r\n            else { \r\n            AsttSpd = AsoundData[i - 1];\r\n            AendSpd = AsoundData[i + 2];\r\n            }\r\n  \r\n        if (i == 0 &amp;amp;&amp;amp; BsttFrq == -1) { \/\/ \u8d70\u884c\u97f3\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306e\u51e6\u7406\r\n          OCR1A = 421; \/\/ TOP\u5024 = CPU\u306e\u52d5\u4f5c\u5468\u6ce2\u6570 \/ 2 \/ \u5206\u5468 \/ \u5e0c\u671b\u5468\u6ce2\u6570 = 16,000,000 \/ 2 \/ 1 \/ frq 19000 = 421\r\n          OCR1B = 421 - 421 * (word)lightVol \/ 245 ; \/\/ \u97f3\u3092\u51fa\u3059PWM\u306eDUTY\u6bd4 \r\n          TCCR1B = B00010001;\r\n          TCCR1A = B00110001;\r\n          TCCR2B = B00000001;\r\n          TCCR2A = B00100001;\r\n          break;\r\n        }\r\n\r\n        if (mode == MD_BRAKE) { \/\/ \u5909\u8abf\u30e2\u30fc\u30c9\u5207\u66ff\r\n        break; \r\n        }\r\n        \r\n        if (mode == MD_STOP) { \/\/ \u5909\u8abf\u30e2\u30fc\u30c9\u5207\u66ff\r\n        break; \r\n        }\r\n\r\n        if (mode == MD_NTRL) { \/\/ \u5909\u8abf\u30e2\u30fc\u30c9\u5207\u66ff\r\n        break; \r\n        }\r\n  \r\n        if (AsttFrq == -1) { \/\/ \u9ad8\u901f\u6642 VVVF\u97f3\u505c\u6b62\r\n          Afrq = 31500;\r\n          OCR1A = (word)(8000000 \/ Afrq); \/\/ TOP\u5024 = CPU\u306e\u52d5\u4f5c\u5468\u6ce2\u6570 \/ 2 \/ \u5206\u5468 \/ \u5e0c\u671b\u5468\u6ce2\u6570 = 16,000,000 \/ 2 \/ 1 \/ frq\r\n          OCR1B = (word)(8000000 \/ Afrq - 8000000 \/ Afrq \/ 99); \/\/ \u97f3\u3092\u51fa\u3059PWM\u306eDUTY\u6bd4 100\/99 = 1%\r\n          TCCR1B = B00010001;\r\n          TCCR1A = B00110001;\r\n          TCCR2B = B00000001; \/\/ PWM 2A\/2B \u5206\u54681\r\n          TCCR2A = B11100001; \/\/ PWM 2A\/2B \u51fa\u529b\r\n          break;\r\n        }\r\n  \r\n        \/\/ VVVF\u97f3\r\n        if ((spd &amp;gt;= AsttSpd * 10000) &amp;amp;&amp;amp; (spd &amp;lt; AendSpd * 10000)) {\r\n          Afrq = ( AendFrq * 10 - AsttFrq * 10 ) \/ ( AendSpd - AsttSpd ) * ( spd - AsttSpd * 10000 ) \/ 100000 + AsttFrq;\r\n          if ( Afrq &amp;lt; 123 )        Afrq = 123;\r\n          else if ( Afrq &amp;gt; 31500 ) Afrq = 31500;\r\n          if (mode == MD_NTRL) Afrq = 123; \/\/ \u60f0\u884c\u306e\u3068\u304d\u3002\r\n          OCR1A = (word)(8000000 \/ Afrq); \/\/ TOP\u5024 = CPU\u306e\u52d5\u4f5c\u5468\u6ce2\u6570 \/ 2 \/ \u5206\u5468 \/ \u5e0c\u671b\u5468\u6ce2\u6570 = 16,000,000 \/ 2 \/ 1 \/ frq\r\n          OCR1B = (word)(8000000 \/ Afrq - 8000000 \/ Afrq \/ 15); \/\/ \u97f3\u3092\u51fa\u3059PWM\u306eDUTY\u6bd4 100\/15 = 6.6%\r\n          TCCR1B = B00010001;\r\n          TCCR1A = B00110001;\r\n          TCCR2B = B00000001; \/\/ PWM 2A\/2B \u5206\u54681\r\n          TCCR2A = B11100001; \/\/ PWM 2A\/2B \u51fa\u529b\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    else if (mode == MD_BRAKE) {\r\n      for (i = 0; ;i = i + 3) {\r\n          BsttFrq = BsoundData[i];\r\n          BendFrq = BsoundData[i + 1];\r\n            if (i == 0) {\r\n            BsttSpd = 0;\r\n            BendSpd = BsoundData[i + 2];\r\n            }\r\n            else { \r\n            BsttSpd = BsoundData[i - 1];\r\n            BendSpd = BsoundData[i + 2];\r\n            }\r\n  \r\n        if (i == 0 &amp;amp;&amp;amp; BsttFrq == -1) { \/\/ \u8d70\u884c\u97f3\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306e\u51e6\u7406\r\n          OCR1A = 421; \/\/ TOP\u5024 = CPU\u306e\u52d5\u4f5c\u5468\u6ce2\u6570 \/ 2 \/ \u5206\u5468 \/ \u5e0c\u671b\u5468\u6ce2\u6570 = 16,000,000 \/ 2 \/ 1 \/ frq 19000 = 421\r\n          OCR1B = 421 - 421 * (word)lightVol \/ 245 ; \/\/ \u97f3\u3092\u51fa\u3059PWM\u306eDUTY\u6bd4 \r\n          TCCR1B = B00010001;\r\n          TCCR1A = B00110001;\r\n          TCCR2B = B00000001;\r\n          TCCR2A = B00100001;\r\n          break;\r\n        }\r\n\r\n        if (mode == MD_ACCEL) { \/\/ \u5909\u8abf\u30e2\u30fc\u30c9\u5207\u66ff\r\n        break; \r\n        }\r\n        \r\n        if (mode == MD_STOP) { \/\/ \u5909\u8abf\u30e2\u30fc\u30c9\u5207\u66ff\r\n        break; \r\n        }\r\n       \r\n        if (mode == MD_NTRL) { \/\/ \u5909\u8abf\u30e2\u30fc\u30c9\u5207\u66ff\r\n        break; \r\n        }\r\n         \r\n        if (BsttFrq == -1) { \/\/ \u9ad8\u901f\u6642 VVVF\u97f3\u505c\u6b62\r\n          Bfrq = 31500;\r\n          OCR1A = (word)(8000000 \/ Bfrq); \/\/ TOP\u5024 = CPU\u306e\u52d5\u4f5c\u5468\u6ce2\u6570 \/ 2 \/ \u5206\u5468 \/ \u5e0c\u671b\u5468\u6ce2\u6570 = 16,000,000 \/ 2 \/ 1 \/ frq\r\n          OCR1B = (word)(8000000 \/ Bfrq - 8000000 \/ Bfrq \/ 99); \/\/ \u97f3\u3092\u51fa\u3059PWM\u306eDUTY\u6bd4 100\/99 = 1%\r\n          TCCR1B = B00010001;\r\n          TCCR1A = B00110001;\r\n          TCCR2B = B00000001; \/\/ PWM 2A\/2B \u5206\u54681\r\n          TCCR2A = B11100001; \/\/ PWM 2A\/2B \u51fa\u529b\r\n          break;\r\n        }\r\n  \r\n        \/\/ VVVF\u97f3\r\n        if ((spd &amp;gt;= BsttSpd * 10000) &amp;amp;&amp;amp; (spd &amp;lt; BendSpd * 10000)) {\r\n          Bfrq = ( BendFrq * 10 - BsttFrq * 10 ) \/ ( BendSpd - BsttSpd ) * ( spd - BsttSpd * 10000 ) \/ 100000 + BsttFrq;\r\n          if ( Bfrq &amp;lt; 123 )        Bfrq = 123;\r\n          else if ( Bfrq &amp;gt; 31500 ) Bfrq = 31500;\r\n          if (mode == MD_NTRL) Bfrq = 123; \/\/ \u60f0\u884c\u306e\u3068\u304d\u3002\r\n          OCR1A = (word)(8000000 \/ Bfrq); \/\/ TOP\u5024 = CPU\u306e\u52d5\u4f5c\u5468\u6ce2\u6570 \/ 2 \/ \u5206\u5468 \/ \u5e0c\u671b\u5468\u6ce2\u6570 = 16,000,000 \/ 2 \/ 1 \/ frq\r\n          OCR1B = (word)(8000000 \/ Bfrq - 8000000 \/ Bfrq \/ 15); \/\/ \u97f3\u3092\u51fa\u3059PWM\u306eDUTY\u6bd4 100\/15 = 6.6%\r\n          TCCR1B = B00010001;\r\n          TCCR1A = B00110001;\r\n          TCCR2B = B00000001; \/\/ PWM 2A\/2B \u5206\u54681\r\n          TCCR2A = B11100001; \/\/ PWM 2A\/2B \u51fa\u529b\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    else if (mode == MD_NTRL) { \/\/ \u60f0\u884c VVVF\u97f3\u505c\u6b62\r\n          OCR1A = 421; \/\/ TOP\u5024 = CPU\u306e\u52d5\u4f5c\u5468\u6ce2\u6570 \/ 2 \/ \u5206\u5468 \/ \u5e0c\u671b\u5468\u6ce2\u6570 = 16,000,000 \/ 2 \/ 1 \/ frq 19000 = 421\r\n          OCR1B = 421 - 421 * (word)lightVol \/ 245 ; \/\/ \u97f3\u3092\u51fa\u3059PWM\u306eDUTY\u6bd4 \r\n          TCCR1B = B00010001;\r\n          TCCR1A = B00110001;\r\n          TCCR2B = B00000001;\r\n          TCCR2A = B00100001; \/\/ PWM 2A\u505c\u6b62\uff08\u5e38\u70b9\u706f\u90e8\u5206 \u4ee3\u308f\u308a\u306b1B\u3067\u5e38\u70b9\u706f\u51fa\u529b\uff09 2B\u51fa\u529b\r\n    }\r\n\r\n    else { \/\/ \u505c\u6b62\u6642 \u97f3\u505c\u6b62\r\n          OCR1A = 421; \/\/ TOP\u5024 = CPU\u306e\u52d5\u4f5c\u5468\u6ce2\u6570 \/ 2 \/ \u5206\u5468 \/ \u5e0c\u671b\u5468\u6ce2\u6570 = 16,000,000 \/ 2 \/ 1 \/ frq 19000 = 421\r\n          OCR1B = 421 - 421 * (word)lightVol \/ 255 ; \/\/ \u97f3\u3092\u51fa\u3059PWM\u306eDUTY\u6bd4 \r\n          TCCR1B = B00010001;\r\n          TCCR1A = B00110001;\r\n          TCCR2B = B00000001;\r\n          TCCR2A = B00000001; \/\/ PWM 2A\uff08\u5e38\u70b9\u706f\u90e8\u5206 \u4ee3\u308f\u308a\u306b1B\u3067\u5e38\u70b9\u706f\u51fa\u529b 19kHz\u3067\u51fa\u529b\u3057\u305f\u3044\u304b\u3089\uff09\u30682B\u505c\u6b62\r\n          break;\r\n    }\r\n  }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"veu_socialSet veu_socialSet-position-after veu_contentAddSection\"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src=\"https:\/\/platform.twitter.com\/widgets.js\";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,\"script\",\"twitter-wjs\"));<\/script><ul><li class=\"sb_facebook sb_icon\"><a href=\"\/\/www.facebook.com\/sharer.php?src=bm&u=https%3A%2F%2Fpwm.sigris-rabo.work%2F%3Fpage_id%3D95&amp;t=%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%EF%BC%88V1.10%EF%BC%89+%7C+sig-ris%E5%B7%A5%E6%88%BF+%E5%88%B6%E5%BE%A1%E8%A3%85%E7%BD%AE%E9%83%A8\" target=\"_blank\" onclick=\"window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;\"><span class=\"vk_icon_w_r_sns_fb icon_sns\"><\/span><span class=\"sns_txt\">Facebook<\/span><span class=\"veu_count_sns_fb\"><\/span><\/a><\/li><li class=\"sb_twitter sb_icon\"><a href=\"\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fpwm.sigris-rabo.work%2F%3Fpage_id%3D95&amp;text=%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%EF%BC%88V1.10%EF%BC%89+%7C+sig-ris%E5%B7%A5%E6%88%BF+%E5%88%B6%E5%BE%A1%E8%A3%85%E7%BD%AE%E9%83%A8\" target=\"_blank\" ><span class=\"vk_icon_w_r_sns_twitter icon_sns\"><\/span><span class=\"sns_txt\">twitter<\/span><\/a><\/li><li class=\"sb_hatena sb_icon\"><a href=\"\/\/b.hatena.ne.jp\/add?mode=confirm&url=https%3A%2F%2Fpwm.sigris-rabo.work%2F%3Fpage_id%3D95&amp;title=%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%EF%BC%88V1.10%EF%BC%89+%7C+sig-ris%E5%B7%A5%E6%88%BF+%E5%88%B6%E5%BE%A1%E8%A3%85%E7%BD%AE%E9%83%A8\" target=\"_blank\"  onclick=\"window.open(this.href,'Hatenawindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;\"><span class=\"vk_icon_w_r_sns_hatena icon_sns\"><\/span><span class=\"sns_txt\">Hatena<\/span><span class=\"veu_count_sns_hb\"><\/span><\/a><\/li><li class=\"sb_pocket sb_icon\"><a href=\"\/\/getpocket.com\/edit?url=https%3A%2F%2Fpwm.sigris-rabo.work%2F%3Fpage_id%3D95&title=%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%EF%BC%88V1.10%EF%BC%89+%7C+sig-ris%E5%B7%A5%E6%88%BF+%E5%88%B6%E5%BE%A1%E8%A3%85%E7%BD%AE%E9%83%A8\" target=\"_blank\"  onclick=\"window.open(this.href,'Pokcetwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;\"><span class=\"vk_icon_w_r_sns_pocket icon_sns\"><\/span><span class=\"sns_txt\">Pocket<\/span><span class=\"veu_count_sns_pocket\"><\/span><\/a><\/li><\/ul><\/div><!-- [ \/.socialSet ] -->","protected":false},"excerpt":{"rendered":"<p>\u203b\u3053\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u6700\u65b0\u7248\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 &nbsp; \u30d4\u30f3\u30a2\u30b5\u30a4\u30f3\u306f\u79cb\u6708\u96fb\u5b50\u306eArduino Pro mini\u4e92\u63db\u57fa\u677f\uff08http:\/\/akizukidenshi.com\/catalog\/g\/gK-10347\/\uff09 \u306b\u5408\u308f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/pwm.sigris-rabo.work\/index.php?rest_route=\/wp\/v2\/pages\/95"}],"collection":[{"href":"https:\/\/pwm.sigris-rabo.work\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pwm.sigris-rabo.work\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pwm.sigris-rabo.work\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pwm.sigris-rabo.work\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=95"}],"version-history":[{"count":9,"href":"https:\/\/pwm.sigris-rabo.work\/index.php?rest_route=\/wp\/v2\/pages\/95\/revisions"}],"predecessor-version":[{"id":265,"href":"https:\/\/pwm.sigris-rabo.work\/index.php?rest_route=\/wp\/v2\/pages\/95\/revisions\/265"}],"wp:attachment":[{"href":"https:\/\/pwm.sigris-rabo.work\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}