万事、塞翁が馬

人生の幸・不幸は予測しがたい。最後に立っていたやつが勝ちさ。京都で酒造ベンチャーをやっているよ。

pwmとタイマー割込みについての続き

PWMを使ってみた

arduinoのPWMとタイマー割込みの関係がまだよくわかってない。

とりあえず昨日調べたときの疑問点の「タイマーとPWMが同時に使えないのはわかったが、同じタイマーの2つのPWMを同時に使うことは可能か?」というの実験した結果だ「大丈夫」だった。タイマーとPWMの同時利用はできないが、PWMの同時利用はできるという理由はわからないが、やってればそのうちわかるだろう、きっと。

とりあえず「PWMのピンが足りないかもしれない」という問題は解決したので、設計は見直さずarduino megaで行こうと思う(センサーも含めてI2Cで制御した方がよさそうだけど、I2Cよくわかんないからいいや)。

インターフェイスを作るかも検討課題ではあるが、わざわざボタン何個かくらいのコントローラを作るのも面倒だし、PS4のコントローラを付けれるようにするにはUSBシールドが必要でピン配置を考えないといけないし、スマホから操作するやつを使うにはwifiが必要なので、やっぱり面倒だ。 とりあえず開発用のノートを横に置いてシリアル通信で動かそうと思う。後にラズパイとコントローラまたはテンキーに置き換える予定。

MsTimer2を使ってみた。

サンプルスケッチを試してみた

void flash() {
  static boolean output = HIGH;

  digitalWrite(LED_BUILTIN, output);//LEDを13から変更
  output = !output;
}

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);

  MsTimer2::set(500, flash); // 500msごとにオンオフ
  MsTimer2::start();
}

void loop() {
  // loopは空
}

loopが空っぽなのにチカチカ繰り返すから不思議だ。割込み処理はメインのプログラムとは別でMsTimer2::start();からMsTimer2::stop();でとめるまで繰り返す。割込みでやらせたい処理はflash()のように関数にしておかないといけない。やった事ないことばっかりだ。