PASのブログ

PASの中の人が書く雑記ブログです。

一旦スケッチが完成 アナマル.17

新製品のプログラマブルスイッチャー、Four Dimensions 3はおかげさまで多くのお問い合わせをいただいております。

www.tidemark.shop

今回の企画記事を書こうと思ったのは、Four Dimensions 3が完成し、前作、Sound Treaterも好調で、今後もどんどんデジタル、アナログにかからわず、お役に立つ製品を発表したいことと同時に、デジタル開発という敷居の高さを軽減して、自作を盛り上げたいという思いがあるためです。

www.tidemark.shop

…宣伝はこれくらいにしまして、スケッチが完成し、数日動作確認して、今のところバグもなくなった感じですので、公開します。

とりあえずスケッチ公開

スケッチはまるまるコピーして、コンパイルして書き込むだけで動作します。
回路図は過去記事を参照してください。

全体的にバグフィックスしてあるので過去のソースと細かい部分が違いますが、動作としては変更はありません。

デバッグのコツ

過去にもその時々で書いてますが最後ですのでまとめておきます。

全角が入っているとエラーになる。

検証(コンパイル)で通らない場合と、通ったのに期待通りに動かない場合があります。
このような時は全角が混ざりこんでいることがあります。
全角スペースなどは発見しにくいので、やり方としては
ctrl+Aで全選択
→ctrl+Cでコピー
→WORDなどに貼り付け
→すべて半角に変更
→ArduinoIDEに貼り付け
こうするとこの問題は解決します。

変数のスコープ

変数は適用する範囲があってそれをスコープといいます。 "{}"で囲んだ部分の中で宣言すればその"{}"の中が有効で、外側に書けば全体に有効です。

int a;

void loop()
{
int b;
    {
        int c;
    }
}

aは、全体に有効
bは、loop()内で有効
cは、"{}"の中でのみ有効です。
コンパイルするときに、スコープの範囲外で使っていたら、エラーが出ますのでわかりますが、例えばaとか、iなどの、一瞬だけ使うつもりで定義した変数のスコープが間違っていたら、意図しない動作をしますので、確認しましょう。

"{}"の数と場所。

"{"と"}"の数は一致していなければなりません。
一致していないときはエラーが出ます。
また、位置を間違うと、意図しない動作をします。

その段階での変数に格納されている数値を確認する。

過去記事で既に書いていますが、変数の「その段階での」数値を確認する方法があります。意図した数値になっているか確認しましょう。

おわりに

Arduinoにはたくさんの機能がありますが今回は

〇タイマー不使用
〇割り込み不使用
〇ADC不使用

など、かなり限られた環境でチャレンジしました。

ゆくゆくは、そういった機能についての記事を追加していきたいと思います。

近日、ハード編、スタートです。