Arduino Uno R4와 기타 부품에 전원을 공급하는 가장 효과적인 방법을 확인하시려면, 아래 링크를 참조하세요: 아두이노 우노 R4 전원 공급 방법.
조이스틱 프로그래밍 방법
조이스틱은 두 개의 구성 요소로 이루어져 있습니다: 아날로그 부분(X 및 Y 축)과 디지털 부분(푸시 버튼).
X축 및 Y축의 값을 읽으려면 아날로그 입력 핀에서 analogRead() 함수를 사용하면 됩니다.
int xValue = analogRead(A1);int yValue = analogRead(A0);
디지털 부품 중 푸시버튼 부분: 그냥 버튼입니다. 쉽고 효과적인 방법은 ezButton 라이브러리를 사용하는 것입니다. 이 라이브러리는 버튼의 안정성을 관리하고 버튼을 안정적으로 유지하기 위한 내부 시스템도 활성화합니다. 아두이노 우노 R4 - 버튼에서 더 많은 정보를 배울 수 있습니다. 이 튜토리얼의 다음 부분에서는 코드 사용 방법을 보여드리겠습니다.
아날로그 핀에서 값을 얻은 후에는 그 값을 관리하기 쉬운 값으로 변경해야 할 수도 있습니다. 다음 섹션에서는 이에 대한 예제 코드를 제공합니다.
아두이노 UNO R4 코드
다음은 Arduino UNO R4의 예제 코드입니다:
예제 코드: 조이스틱에서 아날로그 값을 가져오기
예제 코드: 아날로그 값을 가져오고 조이스틱의 버튼 상태 확인
예제 코드: 아날로그 값을 명령으로 변경: MOVE_LEFT, MOVE_RIGHT, MOVE_UP, MOVE_DOWN
예제 코드: 아날로그 값을 각도로 변환하여 두 개의 서보 모터 제어 (팬-틸트 카메라처럼)
조이스틱에서 아날로그 값을 읽습니다.
/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-joystick */#define VRX_PIN A1 // The Arduino UNO R4 pin connected to VRX pin#define VRY_PIN A0 // The Arduino UNO R4 pin connected to VRY pinint xValue = 0; // To store value of the X axisint yValue = 0; // To store value of the Y axisvoidsetup() {Serial.begin(9600) ;}voidloop() {// read analog X and Y analog values xValue = analogRead(VRX_PIN); yValue = analogRead(VRY_PIN);// print data to Serial Monitor on Arduino IDESerial.print("x = ");Serial.print(xValue);Serial.print(", y = ");Serial.println(yValue);delay(200);}
적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi) 및 COM 포트를 선택하십시오.
위의 코드를 복사하여 Arduino IDE에서 엽니다.
Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 업로드하십시오.
조이스틱의 엄지스틱을 끝까지 밀고, 원형으로(시계 방향 또는 반시계 방향) 돌리십시오.
시리얼 모니터에서 결과를 확인하십시오.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2
조이스틱을 돌릴 때, 시리얼 모니터를 주시하세요. X 값이 0이면 이 위치를 왼쪽으로 기억하고, 반대는 오른쪽입니다. Y 값이 0이면 이 위치를 위쪽으로 기억하고, 반대는 아래쪽입니다.
아날로그 값을 읽고 조이스틱에서 버튼 상태를 읽습니다.
/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-joystick */#include <ezButton.h>#define VRX_PIN A1 // The Arduino UNO R4 pin connected to VRX pin#define VRY_PIN A0 // The Arduino UNO R4 pin connected to VRY pin#define SW_PIN 2 // The Arduino UNO R4 pin connected to SW pinezButtonbutton(SW_PIN);int xValue = 0; // To store value of the X axisint yValue = 0; // To store value of the Y axisint bValue = 0; // To store value of the buttonvoidsetup() {Serial.begin(9600) ;button.setDebounceTime(50); // set debounce time to 50 milliseconds}voidloop() {button.loop(); // MUST call the loop() function first// read analog X and Y analog values xValue = analogRead(VRX_PIN); yValue = analogRead(VRY_PIN);// Read the button value bValue = button.getState();if (button.isPressed()) {Serial.println("The button is pressed");// TODO do something here }if (button.isReleased()) {Serial.println("The button is released");// TODO do something here }// print data to Serial Monitor on Arduino IDESerial.print("x = ");Serial.print(xValue);Serial.print(", y = ");Serial.print(yValue);Serial.print(" : button = ");Serial.println(bValue);}
자세한 사용 방법
Arduino IDE의 왼쪽에 있는 Libraries 아이콘으로 이동하십시오.
“ezButton”을 찾아 ArduinoGetStarted.com에서 제공하는 버튼 라이브러리를 찾으십시오.
EzButton 라이브러리를 추가하려면 Install 버튼을 누르십시오.
코드를 복사하여 Arduino IDE에서 엽니다.
Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 업로드합니다.
조이스틱 엄지패드를 왼쪽, 오른쪽, 위쪽 또는 아래쪽으로 이동합니다.
조이스틱의 상단을 누릅니다.
시리얼 모니터에서 결과를 확인합니다.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2
아날로그 값을 이동 명령(왼쪽/오른쪽/위/아래)으로 변환합니다.
/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-joystick */#define VRX_PIN A1 // The Arduino UNO R4 pin connected to VRX pin#define VRY_PIN A0 // The Arduino UNO R4 pin connected to VRY pin#define LEFT_THRESHOLD 400#define RIGHT_THRESHOLD 800#define UP_THRESHOLD 400#define DOWN_THRESHOLD 800#define COMMAND_NO 0x00#define COMMAND_LEFT 0x01#define COMMAND_RIGHT 0x02#define COMMAND_UP 0x04#define COMMAND_DOWN 0x08int xValue = 0 ; // To store value of the X axisint yValue = 0 ; // To store value of the Y axisintcommand = COMMAND_NO;voidsetup() {Serial.begin(9600) ;}voidloop() {// read analog X and Y analog values xValue = analogRead(VRX_PIN); yValue = analogRead(VRY_PIN);// converts the analog value to commands// reset commandscommand = COMMAND_NO;// check left/right commandsif (xValue < LEFT_THRESHOLD)command = command | COMMAND_LEFT;elseif (xValue > RIGHT_THRESHOLD)command = command | COMMAND_RIGHT;// check up/down commandsif (yValue < UP_THRESHOLD)command = command | COMMAND_UP;elseif (yValue > DOWN_THRESHOLD)command = command | COMMAND_DOWN;// NOTE: AT A TIME, THERE MAY BE NO COMMAND, ONE COMMAND OR TWO COMMANDS// print command to serial and process commandif (command & COMMAND_LEFT) {Serial.println("COMMAND LEFT");// TODO: add your task here }if (command & COMMAND_RIGHT) {Serial.println("COMMAND RIGHT");// TODO: add your task here }if (command & COMMAND_UP) {Serial.println("COMMAND UP");// TODO: add your task here }if (command & COMMAND_DOWN) {Serial.println("COMMAND DOWN");// TODO: add your task here }}
자세한 사용 방법
위의 코드를 복사하여 Arduino IDE로 엽니다.
Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 업로드합니다.
조이스틱 엄지손가락을 왼쪽, 오른쪽, 위, 아래 또는 다른 방향으로 움직입니다.
시리얼 모니터에서 결과를 확인합니다.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2
※ 주의:
때때로 명령이 전혀 없거나 하나의 명령, 또는 동시에 두 개의 명령이 있을 수 있습니다(예: 위와 왼쪽 함께).