Arduino nano every のタイマ―割込み
Arduino Nano Every は以前のArduino UNO など Atmega328 で使えた、TimerOneやMsTimer2
が使えません。

探してみたらArduino Nano Everyで使いやすいタイマーありました。ライブラリマネージャーでmegaAVR_TimerInterrupt が検索すると出てきて、インストールして、TimerInterruptTest.ino を起動すると1秒間隔でLEDがON-OFFします。サンプルは長いです。

でも、timer1だけ抜き出すと簡単。
これでloop内のdelay(1000)で止まってるけど100ms毎にLEDを点滅。文字数制限のため変数名短縮、最初の2行はincludeの前にdefine入れとかないとエラーになります。


#define USE_TIMER_1 true // これをinclundeの前で定義しないとエラーになる
#define TIMER1_INTERVAL_MS 1000

#include "megaAVR_TimerInterrupt.h"

void TimerHandler1()
{
static bool toggle1 = false;
digitalWrite(LED_BUILTIN, toggle1);
toggle1 = !toggle1;
}

void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
ITimer1.init();
ITimer1.attachInterruptInterval(TIMER1_INTERVAL_MS , TimerHandler1);
}

void loop()
{
delay(10000);
}


連休中に設計
仕事なのか趣味なのかわからない感じで、設計してました。
連続回転サーボでケーブルを巻き取るクレーンのようなもの。

Arduino Nano Everyを使ったマイクロマウス、ハード完成
PCBGOGOで広告付き基板が無料で作れるというので勢いで作ったArduino Nano Everyのマイクロマウス基板にやっと部品を探して載せてハードは完成、ソフトはまだ。
基板を作ったのは2月だから3か月寝かしてた。







alt
ヘッダ付きArduino Nano Every マイクロコントローラ

- CafeLog -