UNO-ATmega328

ArduinoUNO ATmega328PのINT0について

ATmega328PマイクロコントローラにおけるINT0ピンは、外部割り込み機能に関連する非常に重要なピンです。Arduino Unoでいうとデジタルピン2に相当し、外部からの割り込み信号を受け取ることができます。この機能は、即時的に特定の...
全般

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

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

digitalPinToPort:Arduinoのピン番号からCPUのポートを取得

Arduinoの標準関数であるdigitalWrite()などをAVRレベルで使用する際、ピン番号ではなくCPUのポート番号で制御する必要があります。その時に利用する関数がdigitalPinToPort()関数です。この関数を使うことでA...
UNO-ATmega328

ATmega328PB-AUの機能:ATmega328pとの比較

ATmega328PBは、Atmel(現在はMicrochip Technologyによって買収)によって開発されたマイクロコントローラで、Arduino Unoなどの人気開発ボードに使われているATmega328Pの後継モデルです。このチ...
UNO-ATmega328

Arduinoサーボモーターでハンチングを防止するプログラミングのコツ

サーボモータを利用した場合、ある角度でモータを停止させるとプルプルと震える現象がよく起こります。これをハンチングと呼びます。ここでは、ArduinoのServeoクラスを利用したサーボモータのコントロールとハンチングの処理について実験してみ...
UNO-ATmega328

Arduino高速操作テクニック: 標準関数を使わずにタイマー割込みとレジスタで音階を制御

Arduinoの標準的なライブラリ関数を使わずに、タイマー割込みと直接的なレジスタ操作を通じて、音の生成とタイミングの正確な管理を行いドレミファソラシドを1秒ごとに演奏するプログラムを作ってみます。 標準関数 tone()を使ったプログラム...
UNO-ATmega328

Arduinoの割り込み処理の関数をアセンブラ化する実験

Arduinoでのinterrupts()とnoInterrupts()関数は、割り込みの制御を行うために使用されます。これらの関数は特にタイミングが重要なタスクを処理する際に重宝します。 この関数をアセンブラで実装した場合のプログラムサイ...
特別ライブラリー

portOutputRegister:Arduinoのピン設定を高速化する高度な関数

Arduinoでデジタル新語の出力を行う標準関数として、digitalWriteが用意されていますが、この関数よりもっと直接的で高速な可能とする関数portOutputRegisterです。 portOutputRegister()の使い方...
特別ライブラリー

portInputRegister:Arduinoのピン設定を高速化する高度な関数

Arduinoでデジタル信号の入力を行う標準関数として、digitalReadが用意されていますが、この関数よりもっと直接的で高速な動きをする関数がportInputRegisterです。この 関数は、Arduino環境におけるマクロで、特...
標準ライブラリー

LED_BUILTIN

LED_BUILTIN LED_BUILTINはArduino環境における定数で、ほとんどのArduinoボードに内蔵されているLEDに接続されているピンの番号を表します。この内蔵LEDは、多くの場合、Arduinoボード上のデジタルピン1...