cheibi
@cheibi

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

setup()が実行されない

発生している問題・エラー

実行した際にsetup,loop内が実行されません

該当するソースコード

#include <LittleFS.h>
#include <Servo.h>
#include <WiFi.h>
#include <DNSServer.h>
#include <WebServer.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED 幅
#define SCREEN_HEIGHT 64 // OLED 高さ

const char* ssid = "hoge"; // アクセスポイントのSSID
const char* password = "hoge"; // アクセスポイントのパスワード

WebServer server(80); // Webサーバーをポート80でセットアップ
DNSServer dnsServer;

const byte DNS_PORT = 53;

// OLED の I2C アドレス
#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

const int PIN_SERVO = 15;
const int PIN_BUTTON = 4;

int Rotation_servo = 0;
// インスタンス生成
Servo myservo;

void setup() {
  // シリアルモニターを開始
  Serial.begin(115200);

  Serial.println("SetUp");

  // LittleFSを初期化
  if (!LittleFS.begin()) {
    Serial.println("LittleFS Mount Failed");
    return;
  }

  // サーボ初期設定(信号線を繋いだピンを指定する)
  myservo.attach(PIN_SERVO);

  pinMode(PIN_BUTTON,INPUT);

  // テキストファイルを作成
  File file = LittleFS.open("/point.txt", "w");
  if (!file) {
    Serial.println("Failed to open file for writing");
    return;
  }
  
  file.close();

  //ディスプレイ初期化
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }

  //初期画面表示

  
  // アクセスポイントの開始
  WiFi.softAP(ssid, password);

  // DNSサーバーのセットアップ
  dnsServer.start(DNS_PORT, "*", WiFi.softAPIP());

  // WebサーバーのルートURLの設定
  server.on("/", handleRoot);
  server.on("/login", handleLogin);
  
  // サーバーを開始
  server.begin();


}

ArduinoIDEとraspberry pi pico wを使用しています。
コンパイルも問題なく通っており、回路も組んでいるのですがプログラムが動きません
原因を教えていただきたいです。

0

2Answer

Comments

  1. @cheibi

    Questioner

    はいそうです

  2. 同じ環境でArduino IDEでファイル→スケッチ例→02:Digital→BlinkWithoutDelayなどを書き込んだら動いていますか?

USBシリアル変換を経由してPCと接続して、シリアルモニターで観察した結果でしょうか?

Raspberry Pi Pico W のマイクロUSBから直接PCに接続しているなら、COMポート番号をデバイスマネジャー等で確認しましたか?

1Like

Comments

  1. Lチカで試してみましたが、
    Raspberry Pi Pico W のマイクロUSBから直接PCに接続している場合は、"SetUp"はシリアルモニタに表示されませんね。"Loop"は表示されます。
    これは、Picoの起動の方が早く、シリアルモニタのオープン処理が間に合わないためです。
    表示しないだけで、動作は問題ないです(「setup()が実行されない」訳ではない)。
    USBシリアル変換経由でPCと接続すれば、"SetUp"も表示するはずです。

    void setup() {
      // initialize digital pin LED_BUILTIN as an output.
      pinMode(LED_BUILTIN, OUTPUT);
      Serial.begin(115200);
      Serial.println("SetUp");
    }
    
    // the loop function runs over and over again forever
    void loop() {
      Serial.println("Loop");
      digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
      delay(1000);                      // wait for a second
      digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
      delay(1000);                      // wait for a second
    }
    
  2. @cheibi

    Questioner

    Loopの動作確認できました ありがとうございます

  3. 解決でよろしければ、当Q&Aをクローズしてください。

Your answer might help someone💌