Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Perpustakaan Port IO 8-Bit untuk Arduino

Komponen dan persediaan

Arduino UNO
× 1
LED 5 mm:Merah
× 1
Potensiometer Putaran Tunggal- 10k ohm
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Arduinolibrary untuk port IO 8-bit

Kita semua tahu bahwa, arduino memberikan output digital menggunakan “digitalWrite() ”berfungsi dan mendapatkan input digital melalui “digitalRead() " fungsi. Namun dengan menggunakan kedua fungsi tersebut dapat memberikan output atau mendapatkan input dari salah satu pin - artinya pada suatu saat dapat memberikan output atau menerima input dari satu pin saja. Jika ada yang ingin menghubungkan perangkat IO 8-bit seperti tampilan 7-segmen, sakelar DIP atau DAC (Digital to Analog converter) dengan arduino, ia tidak dapat memberikan output digital 8-bit langsung ke perangkat tetapi sebaliknya harus memberikan output ke 8 pin yang berbeda .Pola byte data (8-bit) dikirim ke pin yang berbeda dalam bentuk 1 dan 0. Misalnya jika byte data 37h (0011 0111) kita harus mengirim pola 0 n 1 ini ke 8 pin berbeda menggunakan fungsi digitalWrite() .

Maka untuk mengatasi keadaan tersebut disini saya hadirkan library 8-bit IO Port (input-output port) untuk arduino. Dengan menggunakan perpustakaan ini, seseorang dapat mengirim data 8 bit langsung ke pin board arduino yang dikonfigurasi sebagai port 8-bit gabungan atau bisa mendapatkan input 8-bit dari pin yang dikonfigurasi ini. Library ini menyatukan 8 pin arduino untuk bekerja sebagai port IO 8-bit. Hanya satu harus memilih 8 pin arduino untuk digabungkan sebagai port 8-bit dan harus mengkonfigurasi arah datanya sebagai input atau output. Arah data diatur oleh karakter 'O' untuk output atau 'I' untuk input.

Perpustakaan hanya memiliki 5 fungsi. Ada dua konstruktor yang akan membuat objek port, satu fungsi untuk mengirim output digital 8-bit ke pin port, satu fungsi untuk mendapatkan input digital 8-bit dari pin port dan satu fungsi tambahan untuk mengubah/mengatur arah IO port. Berikut 5 fungsi dijelaskan secara singkat dan setelah beberapa contoh diberikan dengan penjelasan.

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

Ini adalah konstruktor. Ini akan membuat objek dari kelas ini dan dengan demikian akan membuat satu atau banyak port 8-bit dengan menggabungkan pin arduino yang berbeda. Seseorang harus menentukan 8 pin arduino yang berbeda untuk digabungkan sebagai port bersama dengan arah data sebagai input atau output - berarti portwork sebagai input atau output. Dir argumen terakhir dalam konstruktor ini mendefinisikanport berfungsi sebagai input atau output. Jika dir='O' berarti port berfungsi sebagai output dan ifdir='I', port berfungsi sebagai input. Port yang sama tidak dapat berfungsi sebagai input dan output baik secara bersamaan atau bahkan alternatif. Juga menunjukkan kesalahan jika arah data tidak dipilih

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

Ini adalah konstruktor lain. Itu juga akan membuat objek dari kelas ini dan dengan demikian akan membuat satu atau banyak port 8-bit dengan menggabungkan pin arduino yang berbeda. Seseorang harus menentukan 8 pin arduino yang berbeda untuk digabungkan sebagai port. Tetapi tidak menentukan arah data sebagai input atau output. Setelah membuat objek port menggunakan konstruktor ini, seseorang harus mengatur arah port menggunakan set_IO_direction fungsi. Jadi konstruktor ini memungkinkan programmer untuk mengubah arah data port waktu inrun menggunakan konstruktor ini, port yang sama dapat bekerja sebagai input atau output sebagai alternatif (tetapi tidak secara bersamaan)

3. set_IO_direction(char dir)

Fungsi ini menentukan arah input/output port. Ini memiliki satu argumen karakter yang dapat berupa 'I' untuk port sebagai input atau 'O' untuk port sebagai output. Jika datadirection tidak dipilih, ini akan menampilkan kesalahan pada monitor serial arduino

4. send_8bit_data(int byt)

Fungsi ini mengirimkan data 8 bit ke pin yang ditentukan. Berikan saja data int (harus <255) sebagai argumen yang langsung diberikan ke 8 pin berbeda. Jika data>255 maka akan muncul error pada serial monitor arduino.

5. get_8bit_data(void)

Fungsi ini mendapatkan data 8 bit dari pin yang ditentukan. Ini mengembalikan data int 8-bit dengan membaca status 8 pin berbeda

Contoh1:berkedip 8 led secara bergantian pada kecepatan 1 Hz

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //buat port keluaran

void setup() // tidak diperlukan dalam setup

}

void loop()

myport.send_8bit_data(85);// send data toblink semua LED aneh

delay(500);

myport.send_8bit_data(170); kirim data untuk mengedipkan semua LED secara merata

delay(500);

}

Contoh2:menampilkan pola penghitungan biner pada LED dari 0 hingga F

#include

IO_Port_8bitmy8bitport(2, 3, 4, 5, 6, 7, 8, 9);//membuat objek port

batalkan pengaturan()

my8bitport.set_IO_direction('O');// setel portdirection

}

void loop()

int saya;

for(i=0;i<16;i++) //kirim data 0 sampai 15 untuk ditampilkan

{ // pola biner

myport.send_8bit_data(i);

delay(200);

}

}

Contoh3:tunjukkan level tegangan input analog pada tampilan grafik batang LED 8-bit

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //membuat objek port keluaran

batalkan pengaturan()

myport.send_8bit_data(255); //mengedipkan semua LED grafik batang sekali

delay(500);

myport.send_8bit_data(0);

}

void loop()

int tingkat;

level =analogRead(A0); //membaca tegangan input analog

level =peta(level, 0, 1023, 0, 80);// batasi tegangan dari 0 hingga 80

//menambah atau mengurangi level grafik batang sesuai input

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);

}

Contoh4:dapatkan input digital 8-bit dari sakelar DIP dan nilai tampilan pada monitor serial

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9); //buat objek port

batalkan pengaturan()

Serial.begin(9600); // inisialisasi komunikasi serial.

myport.set_IO_direction('Saya'); // setel arah port

Serial.println("8-bit input porttest");

}

void loop()

int input_byt;

input_byt =myport.get_8bit_data(); // membaca status sakelar DIP

Serial.print("masukan yang diterima ="); // dan

Serial.println(input_byt); // tampilkan nilainya

penundaan(1000);

}

Kode

  • Perpustakaan Arduino untuk Port IO 8-bit
Perpustakaan Arduino untuk Port IO 8-bitC/C++
library membuat port IO 8-bit dari pin arduino dan mengirim/mendapatkan output/input digital 8bit
Tanpa pratinjau (hanya unduh).

Skema

Port IO mengirim atau mendapatkan data 8bit langsung dari pin yang berbeda

Proses manufaktur

  1. Panel LCD dengan Arduino untuk Simulator Penerbangan
  2. Beralih/Panel LED dengan Arduino untuk FS2020
  3. Pemantauan Suhu CERDAS untuk Sekolah
  4. Matriks Keyboard Prototipe 64-Key untuk Arduino
  5. Buat Zona Aman untuk Perangkat Android/iOS/Win10 oleh Arduino
  6. TFT Shield untuk Arduino Nano - Mulai
  7. Mengendalikan Kecoa dengan Arduino dengan harga di bawah $30
  8. Input Analog Terisolasi untuk Arduino
  9. Arduino Breath Controller Murah (USB-MIDI)
  10. Robot untuk navigasi dalam ruangan yang sangat keren