2018. 7. 20. 23:11ㆍHARDWARE/Arduino
Arduino의 기본 코드는 홈페이지에 너무나도 자세히 나와 있으므로 참고 하시기 바랍니다.
Arduino의 포트 설정의 다른 방법에 대해 알아보겠습니다. 보통 Arduino에서 핀의 입출력 상태를 설정할 때 pinMode( ) 라는 명령어를 사용합니다. 하지만 Arduino에서도 C언어나 어셈블리 처럼 DDR 명령어가 적용됩니다.
먼저 포트와 핀과의 관계에 대해 정리하면 다음과 같습니다.
B (digital pin 8 to 13)
C (analog input pins)
D (digital pins 0 to 7)
port B 에는 8~13핀, port C 에는 analog 핀, port D 에는 0~7핀 까지가 지정되어 있습니다.
명령어는 다음과 같습니다.
DDRD - The Port D Data Direction Register - read/write
PORTD - The Port D Data Register - read/write
PIND - The Port D Input Pins Register - read only
1. DDR
void setup( ) 안에
DDRD = B11111110;
라고 선언을 해주면 0번 pin 은 input, 1~7번 핀까지는 output 핀으로 선언한다는 뜻입니다. 앞에 B는 2진수(binary)로 선언한다는 의미입니다.
pinMode( 0,INPUT);
pinMode( 1,OUTPUT);
pinMode( 2,OUTPUT);
pinMode( 3,OUTPUT);
pinMode( 4,OUTPUT);
pinMode( 5,OUTPUT);
pinMode( 6,OUTPUT);
pinMode( 7,OUTPUT);
과 같은 의미가 되겠습니다.
2. PORT
다음은 void loop( ) 안에
PORTD = B10101000
라고 명령어를 입력하면 0,1,2,4,6 핀은 LOW, 3,5,7 핀은 HIGH 상태가 됩니다.
다시 말해
digitalWrite(0, LOW);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
과 같은 의미가 되겠습니다.
3. PIN
다음은 void loop( ) 안에
a = PIND;
라고 선언을 해주면 port D에서 입력받은 상태를 숫자로 나타냅니다.
다음과 같이 입력이 들어와있다면 a는 4라는 숫자가 될 것입니다. 여러개의 센서를 사용하여 로직을 생성할때 굉장히 유용하게 쓰입니다.
[출처] Port manipulation|작성자 엠에스리
'HARDWARE > Arduino' 카테고리의 다른 글
아두이노 real-time structure (0) | 2018.07.20 |
---|---|
arduino PWM 주파수 변경 (0) | 2018.07.20 |
HC-06 블루투스 설정 / 문자열 전송 (0) | 2018.07.20 |
l298n 모터 드라이버 가이드 참고 사이트 (0) | 2018.07.20 |
serial 통신 (0) | 2018.07.08 |