//https://blog.goo.ne.jp/snagai4500/e/ca8bbfca4c6c7f1c772d129ea5ea4e65 const int PIN_PUSHBUTTON1 = 12; // the number of the pushbutton pin const int PIN_PUSHBUTTON2 = 13; // the number of the pushbutton pin #include const char *ap_ssid = "ESP8266"; const char *ap_password = "12345678"; #include ESP8266WebServer server(80); #define DEBOUNCEDELAY1 500 #define DEBOUNCEDELAY2 500 int iState_prev1 = LOW; unsigned long ulMillis_prev1 = 0; bool bLedState1 = false; int iState_prev2 = LOW; unsigned long ulMillis_prev2 = 0; bool bLedState2 = false; // HTML #define HTML_HEADER ""\ ""\ ""\ "" #define HTML_FOOTER "" int x; void setup() { pinMode(14,OUTPUT); // Enable → Arduinoの6番ピンへ // D5 pinMode(5,OUTPUT); // Step → Arduinoの5番ピンへ // SDA pinMode(4,OUTPUT); // Dir → Arduinoの4番ピンへ // SCL digitalWrite(14,LOW); // Set Enable low → Low状態でEnable //D5 Serial.begin( 115200 ); Serial.println(""); Serial.println("start"); // pinMode(PIN_PUSHBUTTON1, INPUT); // pinMode(PIN_LED1, OUTPUT); // pinMode(PIN_PUSHBUTTON2, INPUT); // pinMode(PIN_LED2, OUTPUT); pinMode(PIN_PUSHBUTTON1, INPUT_PULLUP); //第2引数が INPUT のままだとLOW状態で 戻らない pinMode(PIN_PUSHBUTTON2, INPUT_PULLUP); //第2引数が INPUT のままだとLOW状態で 戻らない // pinMode(2,OUTPUT); // Dir → Arduinoの4番ピンへ // digitalWrite(PIN_LED1, LOW ); // digitalWrite(PIN_LED2, LOW ); WiFi.mode(WIFI_AP); // モード設定 //WiFi.mode(WIFI_AP_STA); // モード設定 WiFi.softAP(ap_ssid, ap_password); // APのSSID・パスワード設定 IPAddress myIP = WiFi.softAPIP(); // APとしてのIPアドレスを取得。デフォルトは 192.168.4.1 ? Serial.println("AP IP address: "); Serial.println(myIP); server.on("/",onroot); server.on("/on/", LedOn); server.on("/on2/", LedOn2); server.on("/off/", LedOff); // server.on("/del/", ConfigFileDelete); // myServer.on("/", handleRoot); server.begin(); Serial.println("HTTP server started"); } int cnt_str = 0; int Kaiten = 0; void loop() { server.handleClient(); if(Kaiten == 1){ digitalWrite(5,HIGH); // 5番ピンをHigh状態へ delayMicroseconds(500); // 500ms待って digitalWrite(5,LOW); // 5番ピンをLow状態へ delayMicroseconds(500); // 500ms待って } /* digitalWrite(4,HIGH); // Set Dir High → 回転方向をセット for(x = 0; x < 200; x++) // 括弧内を200回実行 { digitalWrite(5,HIGH); // 5番ピンをHigh状態へ delayMicroseconds(500); // 500ms待って digitalWrite(5,LOW); // 5番ピンをLow状態へ delayMicroseconds(500); // 500ms待って } delay(1000); // 1秒待つ digitalWrite(4,LOW); // Set Dir Low → 回転方向を反対方向へセット for(x = 0; x < 200; x++) // 括弧内を200回実行 { digitalWrite(5,HIGH); // 5番ピンをHigh状態へ delayMicroseconds(500); // 500ms待って digitalWrite(5,LOW); // 5番ピンをLow状態へ delayMicroseconds(500); // 500ms待って } delay(1000); // 1秒待つ */ int iState1 = digitalRead(PIN_PUSHBUTTON1); // int iState2 = digitalRead(PIN_PUSHBUTTON2); //ao //Serial.print(iState1); //Serial.print(" : "); //Serial.print(iState2); //Serial.println(); //int status ; // status = digitalRead(buttonPin) ; //スイッチの状態を読む // if(status == HIGH){ // // Serial.print("####### HIGH \n"); // }else{ // Serial.print("####### LOW \n"); // } if(iState2 == 0 ){ if(cnt_str == 0){ Serial.println("逆回転方向をセット"); cnt_str = 1; digitalWrite(4,LOW); } digitalWrite(5,HIGH); // 5番ピンをHigh状態へ delayMicroseconds(150); // 500ms待って digitalWrite(5,LOW); // 5番ピンをLow状態へ delayMicroseconds(150); // 500ms待って Kaiten = 0; } if(iState1 == 0 ){ if(cnt_str == 1){ Serial.println("回転方向をセット"); cnt_str = 0; digitalWrite(4,HIGH); // Set Dir High → 回転方向をセット } digitalWrite(5,HIGH); // 5番ピンをHigh状態へ delayMicroseconds(150); // 500ms待って digitalWrite(5,LOW); // 5番ピンをLow状態へ delayMicroseconds(150); // 500ms待って Kaiten = 0; //Serial.println("緊急停止"); } /* if(iState2 ){ // if(cnt_str == 0){ Serial.println("逆回転方向をセット"); cnt_str = 1; digitalWrite(4,LOW); // Set Dir High → 回転方向をセット // } //for(x = 0; x < 200; x++) // Loop 200 times // { // digitalWrite(PIN_LED2, HIGH ); digitalWrite(5,HIGH); // 5番ピンをHigh状態へ delayMicroseconds(500); // 500ms待って digitalWrite(5,LOW); // 5番ピンをLow状態へ delayMicroseconds(500); // 500ms待って // } Serial.println("Pause x"); // delay(1000); // pause one second // Serial.println("$"); // digitalWrite(PIN_LED2, HIGH ); }else{ // digitalWrite(PIN_LED2, LOW ); cnt_str = 0; //} } */ delay(1); } void onPress1() { bLedState1 = !bLedState1; // digitalWrite(PIN_LED1, bLedState1 ? HIGH : LOW ); } void onPress2() { bLedState2 = !bLedState2; // digitalWrite(PIN_LED2, bLedState2 ? HIGH : LOW ); } void onroot() { String msg ; msg += "LED Button"; msg += ""; msg += ""; // msg += " SSID:
"; // msg += " PW:
"; msg += ""; msg += ""; msg += "
"; msg += "

"; msg += ""; server.send(200, "text/html", msg); } void LedOn(){ if(Kaiten == 0){ Serial.println(" on "); Kaiten = 1; digitalWrite(4,HIGH); // Set Dir High → 回転方向をセット } delay(1); } void LedOn2(){ if(Kaiten == 0){ Serial.println("recieve on "); Kaiten = 1; digitalWrite(4,LOW); // Set Dir High → 回転方向をセット } delay(1); } void LedOff(){ //if(Kaiten == 1){ //Kaiten = 2; // Serial.println(" 一時停止 "); //delay(5000); Serial.println(" off "); //} Kaiten = 0; delay(1); }