工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino用の8ビットIOポートライブラリ

コンポーネントと消耗品

>
Arduino UNO
× 1
5 mm LED:赤
× 1
シングルターンポテンショメータ-10kオーム
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

8ビットIOポート用のArduinolibrary

<図> <図> <図>

誰もが知っていることですが、arduinoは「 digitalWrite()」を使用してデジタル出力を提供します 」関数を使用し、「 digitalRead()」を介してデジタル入力を取得します " 関数。ただし、これら2つの機能を使用すると、任意の1つのピンに出力または入力を取得できます。つまり、一度に1つのピンにのみ出力または入力を取得できます。 7セグメントディスプレイ、DIPスイッチまたはDAC(デジタルからアナログへのコンバーター)などの8ビットIOデバイスをarduinoとインターフェイスさせたい場合、デバイスに直接8ビットデジタル出力を提供することはできませんが、代わりに8つの異なるピンに出力を提供する必要があります。データバイト(8ビット)パターンは1と0の形式で異なるピンに送信されます。たとえば、データバイトが37h(0011 0111)の場合、digitalWrite()関数を使用してこれらの0 n1パターンを8つの異なるピンに送信する必要があります。 。

そこで、ここでこの状況を克服するために、arduino用の8ビットIOポート(入出力ポート)ライブラリを紹介します。このライブラリを使用すると、結合された8ビットポートとして構成されたanyarduinoボードピンに直接8ビットデータを送信したり、これらの構成されたピンから8ビット入力を取得したりできます。このライブラリは、8ビットのIOポートとして機能するようにarduinoの任意の8ピンを一緒にクラブします。 8ビットポートとして組み合わせる8つのarduinoピンを選択するだけで、データ方向を入力または出力として構成する必要があります。データの方向は、出力の場合は文字「O」、入力の場合は「I」で設定されます。

ライブラリには5つの機能しかありません。ポートオブジェクトを作成するコンストラクターは2つあり、1つは8ビットデジタル出力をポートピンに送信する関数、1つはポートピンから8ビットデジタル入力を取得する関数、もう1つはポートのIO方向を変更/設定する関数です。ここでは、5つの機能すべてを簡単に説明し、その後、いくつかの例を説明とともに示します。

1. IO_Port_8bit(int pin1、intpin2、int pin3、int pin4、int pin5、int pin6、int pin7、int pin8、char dir)

これはコンストラクターです。このクラスのオブジェクトを作成するため、個別のarduinoピンを組み合わせて1つまたは複数の8ビットポートを作成します。入力または出力としてのデータ方向とともに、ポートとして組み合わせる8つの異なるarduinoピンを指定する必要があります。これは、入力または出力としてのポートワークを意味します。このコンストラクターの最後の引数dirは、portを入力または出力として機能します。 dir ='O'がポートが出力として機能することを意味し、ifdir ='I'の場合、ポートは入力として機能します。同じポートを入力と出力の両方として同時に、または交互に機能させることはできません。また、データ方向が選択されていない場合はエラーを示します

2. IO_Port_8bit(int pin1、intpin2、int pin3、int pin4、int pin5、int pin6、int pin7、int pin8)

これは別のコンストラクターです。また、このクラスのオブジェクトを作成するため、個別のarduinoピンを組み合わせて1つまたは複数の8ビットポートを作成します。ポートとして組み合わせる8つの異なるarduinoピンを指定する必要があります。ただし、データの方向を入力または出力として指定していません。このコンストラクターを使用してポートオブジェクトを作成した後、 set_IO_direction を使用してポートの方向を設定する必要があります。 関数。したがって、このコンストラクターを使用すると、プログラマーはこのコンストラクターを使用して実行時にポートデータの方向を変更できます。同じポートを入力または出力として(同時にではなく)代替的に機能させることができます。

3. set_IO_direction(char dir)

この関数は、ポートの入出力方向を指定します。これには、入力としてのポートの場合は「I」、出力としてのポートの場合は「O」の1つの特性引数があります。 datadirectionが選択されていない場合、arduinoのシリアルモニターにエラーが表示されます

4. send_8bit_data(int byt)

この関数は、指定されたピンに8ビットデータを送信します。 8つの異なるピンに直接与えられる引数としてintデータ(<255でなければなりません)を与えるだけです。データが> 255の場合、arduinoのシリアルモニターにエラーが表示されます。

5. get_8bit_data(void)

この関数は、指定されたピンから8ビットのデータを取得します。 8つの異なるピンのステータスを読み取ることにより、8ビットのintデータを返します

例1:1Hzの速度で8つのLEDを交互に点滅させる

#include

IO_Port_8bitmyport(2、3、4、5、6、7、8、9、 ’O’); //出力ポートを作成

void setup()//セットアップには何も必要ありません

{

}

void loop()

{

myport.send_8bit_data(85); //データを送信してすべての奇数のLEDを点滅させる

delay(500);

myport.send_8bit_data(170);データを送信してすべてのLEDを点滅させる

delay(500);

}

例2:0からFまでのLEDにバイナリカウントパターンを表示する

#include

IO_Port_8bitmy8bitport(2、3、4、5、6、7、8、9); //ポートオブジェクトを作成

void setup()

{

my8bitport.set_IO_direction( 'O'); //ポート方向を設定

}

void loop()

{

int i;

for(i =0; i <16; i ++)//表示するデータ0〜15を送信

{//バイナリパターン

myport.send_8bit_data(i);

delay(200);

}

}

例3:8ビットLED棒グラフ表示でアナログ入力電圧レベルを示す

#include

IO_Port_8bitmyport(2、3、4、5、6、7、8、9、 ’O’); //出力ポートオブジェクトを作成します

void setup()

{

myport.send_8bit_data(255); //棒グラフのすべてのLEDを1回点滅

delay(500);

myport.send_8bit_data(0);

}

void loop()

{

intレベル;

レベル=analogRead(A0); //アナログ入力電圧を読み取ります

level =map(level、0、1023、0、80); //電圧を0から80に制限

//入力ごとに棒グラフレベルを増減します

if((level <80)&&(level> 70))myport.send_8bit_data(255);

elseif((level <=70)&&(level> 60))myport.send_8bit_data(127);

elseif((level <=60)&&(level> 50))myport.send_8bit_data(63);

elseif((level <=50)&&(level> 40))myport.send_8bit_data(31);

elseif((level <=40)&&(level> 30))myport.send_8bit_data(15);

elseif((level <=30)&&(level> 20))myport.send_8bit_data(7);

elseif((level <=20)&&(level> 10))myport.send_8bit_data(3);

elseif((level <=10)&&(level> 0))myport.send_8bit_data(1);

elseif(level ==0)myport.send_8bit_data(0);

}

例4:DIPスイッチから8ビットのデジタル入力を取得し、シリアルモニターに値を表示する

#include

IO_Port_8bitmyport(2、3、4、5、6、7、8、9); //ポートオブジェクトを作成

void setup()

{

Serial.begin(9600); //シリアル通信を初期化します。

myport.set_IO_direction( ‘I’); //ポートの方向を設定します

Serial.println( "8ビット入力ポートテスト");

}

void loop()

{

int input_byt;

input_byt =myport.get_8bit_data(); // DIPスイッチのステータスを読み取ります

Serial.print( "受信した入力="); //および

Serial.println(input_byt); //その値を表示します

delay(1000);

}

コード

  • 8ビットIOポート用のArduinoライブラリ
8ビットIOポート用のArduinoライブラリ C / C ++
ライブラリはarduinoピンから8ビットIOポートを作成し、8ビットデジタル出力/入力を送信/取得します
プレビューなし(ダウンロードのみ)。

回路図

IOポートは、異なるピンから直接8ビットデータを送信または取得します

製造プロセス

  1. フライトシミュレータ用のArduinoを備えたLCDパネル
  2. FS2020用のArduinoを備えたスイッチ/ LEDパネル
  3. 学校向けのSMART温度監視
  4. Arduino用の64キープロトタイピングキーボードマトリックス
  5. ArduinoでAndroid / iOS / Win10デバイスのセーフゾーンを作成する
  6. ArduinoNano用TFTシールド-開始
  7. Arduinoでゴキブリを30ドル未満でコントロール
  8. Arduino用の絶縁アナログ入力
  9. 安価なArduinoブレスコントローラー(USB-MIDI)
  10. DCモーターを制御するための秘訣
  11. 超クールな屋内ナビゲーション用ロボット