ARDUINOには20個のI / Oピンがあるので、入力または出力として使用されるUNOの20ピンをプログラムできます。ATMEGA328PコントローラーにはUNOよりも多くのピンがありますが、これはボードの設計時に一部のピンがデフォルトになっているためです。
5x5x5 LED CUBEを設計する場合など、一部のアプリケーションでは30を超えるピンが必要になるため、このためには5x5 + 5 = 30ピンが必要です。このような場合、シリアルからパラレルへのコンバータチップまたはシフトレジスタを使用します。シフトレジスタチップは、UNOボードからデータをシリアルに取得し、8ビットのパラレル構成で出力します。
必要なコンポーネント
ハードウェア: Arduino unoボード、接続ピン、220Ω抵抗、LED(8個)、74HC595 IC、ブレッドボード。
ソフトウェア: Arduino毎晩
回路図と動作説明
ここでは、シフトレジスタに単一のチャネルを介して8ビットサイズのデータを送信します。シフトレジスタはデータをシリアルに取得し、そのデータをメモリに格納します。コントローラからデータが送信されたら、シフトレジスタにコマンドを送信して出力にデータを表示します。このコマンドを使用して、シフトレジスタはデータを並列に出力します。
この出力は、出力に接続された8つのLEDによって示されます。
以下のためのArduino UNOにシフトレジスタを接続し、我々は2つのことを行う必要があります。
|
まず、UNOの任意の3つのピンを出力として設定する必要があります。次に、デジタルピン、クロックピン、ラッチピンをこれらの3つの出力ピンに接続する必要があります。その後、チップのどのピンがUNOボードピンに接続されているかをUNOに通知する必要があります。これは、コマンド「
shiftOut(dataPin, clockPin, data);
」を書き込むだけで実行できます。ここでのデータは、2進数、10進数、または16進数にすることができます。送信する必要のある8ビット情報は「データ」の代わりに書き込まれます。
送信されるデータは次のように行われます。
ラッチを無効にします。これにより、チップは今のところ出力を表示しないように指示されます。
8回、クロック付きのデータをシリアルに送信するため、クロック高低データクロック低などになります。
ラッチを有効にします。これにより、チップに8ビットデータを表示するように指示します。
SHIFT REGISTERを使用したARDUINOの動作は、以下のCコードで段階的に説明されています。