제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
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="코드">미리보기 없음(다운로드 전용).섹션>
제조공정
이 튜토리얼에서는 Arduino 기반 RC 수신기를 만드는 방법을 배웁니다. 이전 비디오 중 하나에서 DIY Arduino RC 송신기를 만든 이후로 전용 수신기를 만들어 달라는 요청이 많이 있어 여기에 있습니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 이제 이 두 장치는 쉽게 통신할 수 있으며 무선으로 많은 것을 제어하는 데 사용할 수 있습니다. 몇 가지 예를 통해 모든 것이 어떻게 작동하는지 설명하겠습니다. 첫 번째 예에서는 이 Arduino RC 수신기를 사용하여 두 개의 DC 모터로 구성된
이 Arduino 프로젝트에서는 Arduino와 TFT 터치 스크린을 사용하여 스마트폰용으로 인기 있는 Flappy Bird 게임을 실제로 복제한 멋진 Arduino 게임을 만들 것입니다. 다음 동영상을 보거나 아래에 작성된 텍스트를 읽으면 작동 방식을 배울 수 있습니다. 개요 게임은 매우 간단하지만 흥미롭고 중독성이 있습니다. 터치 스크린을 사용하여 우리는 새를 제어하고 우리가 진행함에 따라 속도가 증가하는 움직이는 기둥을 피하려고 노력합니다. 또한 게임은 전원을 뽑더라도 최고 점수를 저장할 수 있습니다.[/column]