#include #include int main() { char a, i; printf("문자를 입력하라 ? "); scanf("%c", &a); for (i = a; i
#include #include int main() { char a, b, i, c; do { printf("문자를 입력하라 ? "); fflush(stdin); scanf("%c %c", &a, &b); if (a = 'A' && i
#include #include int main() { int i, j, a, b, t; printf("두 개의 정수를 입력하여라 ? "); scanf("%d %d", &a, &b); if (a > b) { t = a; a = b; b = t; } for (i = 1; i
#include #include int main() { int i, a = 0; for (i = 1; i
#include int main() { int a, b, c = 1, i; printf("x ? "); scanf("%d", &a); printf("y ? "); scanf("%d", &b); for (i = 1; i
#include int main() { int i, j; for (i = 1; i = i; j--) { printf(" "); } for (j = 1; j
#include int main() { int a, i, j, c; do { printf("숫자를 입력하시오? "); scanf("%d", &a); for (i = 1; i = i; j--) { printf(" "); } for (j = 1; j
#include int main() { int a, i, j; printf("숫자를 입력하시오? "); scanf("%d", &a); for (i = 1; i = i; j--) { printf(" "); } for (j = 1; j
#include int main() { int a, i, j; printf("입력 : "); scanf("%d", &a); for (i = 1; i
#include int main() { int a, b, i, j; do { printf("1일은 무슨 요일입니까(0~6)? "); scanf("%d", &a); } while (a 6); printf("총 며칠입니까? "); scanf("%d", &b); printf("일 월 화 수 목 금 토 \n"); for (i = 1; i
#include int main() { int i, a, b, g; scanf("%d %d", &a, &b); for (i = 1; i
# 프로그램 설명 1. pulseIn(int pinNum, Value) 함수는 Value에서 제시한 신호의 유지 시간을 측정하여 반환하는 함수이다. 이 함수와 같이 HIGH 펄스가 유지된 시간을 구하는 자체 함수 MyPulseIn()을 구현한다. 이 함수는 인터럽트가 발생 시에 호출된다. 2. 초음파 센서와 장애물 사이의 거리를 MyPulseIn() 함수를 사용하여 구한 후 시리얼 모니터에 출력하는 프로그램이므로 setup() 부분에 시리얼 전송 속도를 설정한다. 트리거 단자는 출력 모드, 에코 단자는 입력 모드로 설정한다. 이때 에코 단자는 인터럽트를 사용하기 위하여 인터럽트 단자인 2번 단자에 연결한다. 장애물 사이의 거리(cm)를 구하기 위해 사용될 섭씨온도와 소리의 이동 속도(cm/us)를 지정하..
# 프로그램 설명 1. 아두이노가 평상시에는 데이터 입력을 받아 그 문자를 출력하는 작업을 하다가 장애물 침입할 때만 PIR 센서에서 읽고 경고 메시지를 출력한다. 실험은 장애물 회피 센서로 진행. 2. 장애물 회피 센서의 신호 단자를 인터럽트 단자인 2번에 연결을 하여 장애물이 감지되었을 때 (신호 단자가 LOW일 때) 인터럽트를 발생시켜 장애물이 감지되었다는 것을 알리는 변수 checked를 1로 바꾸어 장애물이 침입하여 경고 메시지를 출력하여야 한다는 것을 알려준다. 평상시 장애물 회피 센서 상태는 0이다. 3. setup() 부분에서 장애물 회피 센서를 입력 모드로 설정하고 시리얼 전송 속도를 설정한다. attachInterrupt() 함수를 사용하여 2번 단자 번호를 인터럽트 번호(0번)로 변환..
# 프로그램 설명 1. TimeOne 라이브러리를 사용한다. 스케치-라이브러리 포함하기-라이브러리 관리에서 다운 받으면 사용할 수 있다. setup() 부분에 Timer1.initialize(50);이라고 선언하면 타이머 간격을 50us로 설정한다. Timer1.attachInterrupt(isr);이라고 선언하면 50us 마다 인터럽트를 발생시켜 isr함수를 호출한다. 2. 입력 받은 주파수가 10000hz 이하 이면, 즉 주기가 100us 이상인 경우(주기/2가 50us 이상인 경우) 주파수가 출력 가능한 범위이고 주기가 100us 보다 작은 경우는 주파수가 출력 불가하다. 3. 50us 마다 인터럽트 발생 시 호출되는 함수 isr에서 count(us) 값이 (주기/2) us 값과 같아지면 스피커 단..
# 프로그램 설명 1. MsTimer2 라이브러리를 사용한다. 스피커 단자를 13번으로 선언하고 상태를 저장하는 변수(주파수 입력이 가능한지) state, 스피커 상태를 저장하는 변수 speak, 인터럽트 횟수를 세는 변수 count를 전역 변수로 선언하고 0으로 초기화한다. 입력받을 주파수 freq와 myTone() 함수에서 음정을 출력하기 위해 사용될 (주기/2) us 초를 저장할 변수 x를 선언한다. 2. setup() 부분에서 주파수를 입력 받기 위해서 시리얼 전송 속도를 설정하고 MsTimer2를 사용해서 1ms에 한 번씩 인터럽트 발생 시에 호출될 isr 함수를 설정하고 인터럽트를 발생시킨다. 스피커 단자를 출력 모드로 설정한다. 3. 인터럽트 발생 시에 호출될 함수 isr을 선언한다. 이 함..