산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino용 8비트 IO 포트 라이브러리

구성품 및 소모품

Arduino UNO
× 1
5mm LED:빨간색
× 1
단일 회전 전위차계 - 10k 옴
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

8비트 IO 포트용 Arduinolibrary

arduino는 "digitalWrite()를 사용하여 디지털 출력을 제공한다는 것을 잘 알고 있습니다. "기능을 수행하고 "digitalRead()를 통해 디지털 입력을 받습니다. " 기능. 그러나 이 두 가지 기능을 사용하여 한 핀에서 출력을 제공하거나 입력을 받을 수 있습니다. 즉, 한 번에 단일 핀에서만 출력을 제공하거나 입력을 받을 수 있습니다. 7세그먼트 디스플레이, DIP 스위치 또는 DAC(디지털-아날로그 변환기)와 같은 8비트 IO 장치를 arduino와 인터페이스하려는 경우 장치에 직접 8비트 디지털 출력을 제공할 수 없지만 대신 8개의 다른 핀에 출력을 제공해야 합니다. .데이터 바이트(8비트) 패턴은 1과 0의 형태로 다른 핀으로 전송됩니다. 예를 들어 데이터 바이트가 37h(0011 0111)인 경우 digitalWrite() 함수를 사용하여 이 0 n 1 패턴을 8개의 다른 핀으로 보내야 합니다. .

그래서 여기에서 이러한 상황을 극복하기 위해 arduino용 8비트 IO 포트(입력-출력 포트) 라이브러리를 제시합니다. 이 라이브러리를 사용하면 결합된 8비트 포트로 구성된 anyarduino 보드 핀에 직접 8비트 데이터를 보내거나 이러한 구성된 핀에서 8비트 입력을 얻을 수 있습니다. 이 라이브러리는 8비트 IO 포트로 작동하도록 arduino의 8개 핀을 함께 묶습니다. 하나는 8비트 포트로 결합할 8개의 arduino 핀을 선택하고 데이터 방향을 입력 또는 출력으로 구성해야 합니다. 데이터 방향은 출력의 경우 'O', 입력의 경우 'I'로 설정됩니다.

라이브러리에는 5가지 기능만 있습니다. 포트 객체를 생성하는 두 개의 생성자가 있는데, 하나는 포트 핀에 8비트 디지털 출력을 보내는 기능, 하나는 포트 핀에서 8비트 디지털 입력을 가져오는 기능, 다른 하나는 포트의 IO 방향을 변경/설정하는 추가 기능입니다. 여기서는 5가지 기능을 모두 간략하게 설명하고 몇 가지 예를 들어 설명과 함께 제공합니다.

1. IO_Port_8bit(int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8, char 디렉토리)

이것은 생성자입니다. 이 클래스의 객체를 생성하므로 고유한 arduino 핀을 결합하여 하나 이상의 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 핀을 결합하여 하나 이상의 8비트 포트를 생성합니다. 포트로 결합할 8개의 다른 arduino 핀을 지정해야 합니다. 그러나 데이터 방향을 입력 또는 출력으로 지정하지 않습니다. 이 생성자를 사용하여 포트 개체를 만든 후 set_IO_direction을 사용하여 포트 방향을 설정해야 합니다. 기능. 따라서 이 생성자는 프로그래머가 이 생성자를 사용하여 포트 데이터 방향 실행 시간을 변경할 수 있도록 하며 동일한 포트가 입력 또는 출력으로 작동할 수 있지만 동시에는 불가능합니다.

3. set_IO_direction(문자 디렉토리)

포트의 입출력 방향을 지정하는 기능입니다. 입력으로 포트에 대해 'I' 또는 출력으로 포트에 대해 'O'일 수 있는 하나의 문자 인수가 있습니다. 데이터 방향을 선택하지 않으면 arduino의 직렬 모니터에 오류가 표시됩니다.

4. send_8bit_data(int 바이트)

이 기능은 지정된 핀에 8비트 데이터를 보냅니다. 8개의 다른 핀에 직접 제공되는 인수로 int 데이터(<255여야 함)를 제공하면 됩니다. 데이터가>255이면 arduino의 직렬 모니터에 오류를 표시합니다.

5. get_8bit_data(무효)

이 함수는 지정된 핀에서 8비트 데이터를 가져옵니다. 8개의 다른 핀의 상태를 읽어 8비트 int 데이터를 반환합니다.

예시 1:1Hz의 속도로 8개의 LED를 번갈아 깜박임

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //출력 포트 생성

void setup() // 설정에 필요하지 않음

{

}

무효 루프()

{

myport.send_8bit_data(85);// 데이터를 보내 모든 홀수 LED를 깜박임

지연(500);

myport.send_8bit_data(170); 데이터를 보내 모든 짝수 LED를 깜박임

지연(500);

}

예시 2:0에서 F까지 LED에 이진 계산 패턴 표시

#include

IO_Port_8bitmy8bitport(2, 3, 4, 5, 6, 7, 8, 9);//포트 객체 생성

무효 설정()

{

my8bitport.set_IO_direction('O');// 포트 방향 설정

}

무효 루프()

{

정수 i;

for(i=0;i<16;i++) //표시할 데이터 0~15 전송

{ // 바이너리 패턴

myport.send_8bit_data(i);

지연(200);

}

}

예 3:8비트 LED 막대 그래프 디스플레이에 아날로그 입력 전압 레벨 표시

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //출력 포트 객체 생성

무효 설정()

{

myport.send_8bit_data(255); //막대 그래프의 모든 LED를 한 번 깜박임

지연(500);

myport.send_8bit_data(0);

}

무효 루프()

{

정수 수준;

레벨 =analogRead(A0); //아날로그 입력 전압 읽기

level =map(level, 0, 1023, 0, 80);// 전압을 0에서 80으로 제한

//입력에 따른 막대 그래프 레벨 증가 또는 감소

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

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

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

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

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

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

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

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

elseif(레벨==0) myport.send_8bit_data(0);

}

예 4:DIP 스위치에서 8비트 디지털 입력을 받고 직렬 모니터에 값 표시

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9); //포트 객체 생성

무효 설정()

{

Serial.begin(9600); // 직렬 통신 초기화

myport.set_IO_direction('나'); // 포트 방향 설정

Serial.println("8비트 입력 포트 테스트");

}

무효 루프()

{

정수 입력 바이트;

input_byt =myport.get_8bit_data(); // DIP 스위치 상태 읽기

Serial.print("수신된 입력 ="); // 그리고

Serial.println(입력_바이트); // 값 표시

지연(1000);

}

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • 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. Arduino Nano용 TFT Shield - 시작
    7. 30달러 미만으로 Arduino로 바퀴벌레 제어
    8. Arduino용 절연 아날로그 입력
    9. 저가용 Arduino Breath 컨트롤러(USB-MIDI)
    10. 멋진 실내 내비게이션용 로봇