Page 816 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 816
while(1)
{
a=PIND;
PORTB=0x10; //PORTB4,5 -> 컨베이어벨트용 모터
switch(a){
case 1 : //PORTB0,1 -> 모터1(캔분류용)
PORTB=0x11;
delay_ms(500);
PORTB=0x10; break; //0.5초동안 모터 동작 후 정지
case 2 : //PORTB2,3 -> 모터2(플라스틱분류용)
PORTB=0x14;
delay_ms(500);
PORTB=0x10; break; //0.5초동안 모터 동작 후 정지
}
}
}
다. 센서부
1) 프로그램 설명
원래는 센서를 외부인터럽트에 연결하여, 센서의 출력을 받아 인터럽트 벡터를 실행하도록
프로그래밍하려고 했지만 직접 회로에 테스트 해 보았을 때 계속해서 오류가 나서 GPIO핀을
사용해서 센서의 출력을 받아 동작하는 프로그램으로 다시 코딩해보았다.
GPIOC의 14번 핀은 금속센서의 출력을 받고, GPIOE의 8번 핀은 포토센서의 출력을 받는
다. GPIOD의 6번 핀과 8번 핀은 센서가 감지했는지 확인하기 위해 LED 출력으로 설정하였
다.
GPIOC의 14번핀에 입력이 들어오면 GPIOD의 6번 핀에 있는 LED가 켜졌다가 1초 뒤에 꺼
지고, GPIOE의 6번 핀에 입력이 들어오면 GPIOD의 8번 핀에 있는 LED가 켜졌다가 1초 뒤에
꺼진다.
#include "stm32f10x.h"
void GPIO_Configuration(void) //GPIO 설정
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 |
GPIO_Pin_9;
- 809 -