全般

toneをタイマー割り込みで制御する

Arduino Leonardo(CPUはATmega32U4)で、tone関数を使わずにBEEP音を出すプログラムを作ってみたいと思います。実験には株式会社CRETARIAが販売をしています二足歩行ロボットQumcumを利用することで、特...
全般

Arduino IDE 2.3.Xのインストールと動作確認

Arduinoを使ってプログラミングを行う際に使用するArduinoIDEは、どんどん進化をしています。特に、最近リリースされた2.3.2については、コンパイルやリンクなどの動きも過去のIDEと比べて、相当処理速度が向上されています。今日は...
全般

ATmega328PBとATmega328Pの違い・比較

2015に発表されたATmega328Pの後継モデルであるATmega328PBは、さらに多くの機能とより多くのピン配置オプションもっていてATmega328Pと完全互換です。特に、2つのSPIインターフェース、2つのI2Cインターフェース...
全般

サーボモーターでハンチングを回避するプログラムの実験

サーボモータを利用した場合、ある角度でモータを停止させると、モータを停止させているのにプルプルと震える現象をハンチングと呼びます。これは、様々な原因がありますが、プログラムによってもある程度回避できることがあります。今回はソフト的に回避する...
全般

ArduinoIDEでインラインアセンブラでLEDを点滅させてみる

プログラミング言語の中の、CPUに最も近い言語はアセンブラです。 アセンブラは低級言語と呼ばれますが、CPUに近いため低級とよばれるのですが、言語への知識テクニックはとても高級(高度)が必要です。 今日はこのアセンブラ言語を使ってLチカをさ...
全般

digitalWriteとpinModeを高速化しLチカを実験

Arduino標準関数で必ず使う pinMode() と digitalWrite()は、全ボードに共有な為、関数内でのオーバヘッドが大きくコンパイルサイズも大きくなります。また、処理速度もオーバーヘッド分遅いため簡単な実験レベルではいいの...