/* //2021年ライブラリ #include //2022年ライブラリ #include */ //#include #include //上記どちらかのライブラリを用いる #include "Arduino.h" #include "Wire.h" #include #include const int DIN_PIN = 7; const int LED_PIN = 17; int dipnum; int mode; int value1; int value2; int value3; // ディスプレイ変数の宣言 Adafruit_SSD1306 display(-1); // マイコンのセット時に1度だけ行われる処理 void setup(){ // pinMode( DIN_PIN, INPUT_PULLUP ); pinMode( 8, INPUT_PULLUP ); pinMode( 9, INPUT_PULLUP ); pinMode( 10, INPUT_PULLUP ); pinMode( 4, INPUT_PULLUP ); pinMode( 5, INPUT_PULLUP ); pinMode( 6, INPUT_PULLUP ); pinMode( 7, INPUT_PULLUP ); pinMode( 16, INPUT_PULLUP ); pinMode( 14, INPUT_PULLUP ); pinMode( 15, INPUT_PULLUP ); pinMode( LED_PIN, OUTPUT ); pinMode( 30, OUTPUT ); // ディスプレイの初期化 display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // ディスプレイをクリア display.clearDisplay(); // 出力する文字の大きさ display.setTextSize(2); // 出力する文字の色 display.setTextColor(WHITE); // 文字の一番端の位置 display.setCursor(0, 0); // 出力する文字列 display.println("Mamami-Con"); display.setTextSize(1); display.println("Setting up ..."); display.println("Wait a sec."); // ディスプレイへの表示 display.display(); // Switchがマイコンを認識するまでは信号を受け付けないため、適当な処理をさせておく //delay(2500); pushButton(Button::B, 500, 2); //delay(2500); get_dip(); } // ここに記述した内容がループされ続ける void loop(){ value3 = digitalRead( 10 );//button3 value2 = digitalRead( 9 );//button2 value1 = digitalRead( 8 );//button1 get_dip(); get_mode(); digitalWrite( 30, LOW ); digitalWrite( LED_PIN, LOW ); // ディスプレイをクリア display.clearDisplay(); // 出力する文字の大きさ display.setTextSize(1); // 出力する文字の色 display.setTextColor(WHITE); // 文字の一番端の位置 display.setCursor(0, 0); // 出力する文字列 display.print("Mode:"); display.println(mode); display.print("Value:"); display.println(dipnum); display.println("OK Mami-Con is ready."); display.println("Push the button!!"); // ディスプレイへの表示 display.display(); ////////////////////////////////////////////////////////// if(value1 == LOW){//1押されたとき digitalWrite( LED_PIN, HIGH ); digitalWrite( 30, HIGH ); if(dipnum == 0){ }else if(mode==0){//ファンクション1///// dispfunc(); }else if(mode==1){//ファンクション dispfunc(); }else if(mode==2){//ファンクション7///// dispfunc(); }else if(mode==3){//ファンクション10///// dispfunc(); } } ////////////////////////////////////////////////////////// if(value2 == LOW){//2押されたとき digitalWrite( LED_PIN, HIGH ); digitalWrite( 30, HIGH ); if(dipnum==0){// }else if(mode==0){//ファンクション2 dispfunc(); }else if(mode==1){//ファンクション5 dispfunc(); }else if(mode==2){//ファンクション8 dispfunc(); }else if(mode==3){//ファンクション11 dispfunc(); } } ////////////////////////////////////////////////////////// if(value3 == LOW){//3押されたとき digitalWrite( LED_PIN, HIGH ); digitalWrite( 30, HIGH ); if(dipnum == 0){ }else if(mode==0){//ファンクション3 dispfunc(); }else if(mode==1){//ファンクション6 dispfunc(); }else if(mode==2){//ファンクション9 dispfunc(); }else if(mode==3){//ファンクション12 dispfunc(); } } } ////////////////////////////////////////////////////////// //Valueディップスイッチを取得する void get_dip(){ dipnum = 0; if(digitalRead( 4 ) == LOW){ dipnum = dipnum + 1; } if(digitalRead( 5 ) == LOW){ dipnum = dipnum + 2; } if(digitalRead( 6 ) == LOW){ dipnum = dipnum + 4; } if(digitalRead( 7 ) == LOW){ dipnum = dipnum + 8; } if(digitalRead( 14 ) == LOW){ dipnum = dipnum + 16; } } //modeディップスイッチを取得する void get_mode(){ mode = 0; if(digitalRead( 15 ) == LOW){ mode = mode + 1; } if(digitalRead( 16 ) == LOW){ mode = mode + 2; } } //ファンクションディスプレイ void dispfunc(){ // ディスプレイをクリア display.clearDisplay(); // 出力する文字の大きさ display.setTextSize(1); // 出力する文字の色 display.setTextColor(WHITE); // 文字の一番端の位置 display.setCursor(0, 0); // 出力する文字列 display.print("Mode:"); display.println(mode); display.print("Value:"); display.println(dipnum); display.print("Func:"); // ディスプレイへの表示 display.display(); }