Digital Input

/ Digital Input  |   CdS

디지탈 입력은 0 또는 1, 0V 또는 5V의 입력,두 종류의 다른 전압, 스위치의 입력 등 두 종류의 신호를 받아들일때 사용하는 용이다.
아래 그림과 같이 스위치는 열려 있거나 닫혀있는 두 종류 가지 수 만이 존재하며 주변회로를 어떻게 꾸미느냐에 따라 신호를 다르게 만들 수 있다.
그림의 왼쪽과 같이 스위치가 열려있는 경우 스위치와 저항 사이의 전압은 5V 출력을 오른 쪽의 경우 0V의 출력을 나타내게된다.



스위치를 사용한 출력 신호 (왼쪽: 스위치 Off, 오른쪽: 스위치 On)
(그림을 클릭하면 간단한 테스트 가능)


8pin PIC12F617을 사용하여 스위치의 눌림 상태를 확인하고 누렸을경우(닫혔을 경우)LED를 켜고 스위치가 열렸을경우 LED를 끄는 회로를 만들기위하여 그림과 같이 회로를 만들고 프로그램을 작성하여 스위치의 눌림을 디지탈 입력 신호로 바꾸어(회로사용) 스위치의 상태에 따라 LED를 자유롭게 켜고 끌 수 있다. 20 pin PIC16F687을 사용하고 외부 발진회로를 사용하여 스위치의 눌림 상태를 확인하고 누렸을경우(닫혔을 경우)LED를 켜고 스위치가 열렸을경우 LED를 끄는 회로이다.

          

PIC12F617과 16F18345를 사용한 Digital Input 회로
(그림을 마우스로 클릭하면 간단한 동영상을 볼 수 있다)


//***********************************************************************
// PIC12F617을 사용하여 LED On Off
//***********************************************************************  
                    
#include  <12f617.h>					//* PIC12F617용 헤더파일 (PIC 종류에따라 달라짐)
#fuses    INTRC_IO						//* 내부 발진회로 사용
#use      delay (clock = 8000000)			//* 내부 클럭을 8MHz로 설정
										
#define   SW_PIN   PIN_A5					//* PIN_A5를 스위치 입력 핀으로
                                                    
void main (void)
{
	while (1) {
		if (input (SW_PIN) == 1) {
			output_high (PIN_A0) ;		// 스위치가 눌리지 않으면 A0 를 Low 로
		}
		else {
			output_low  (PIN_A0) ;		// 스위치가 눌리지 않으면 A0 를 High 로
		}
	} 
}
                                                     
//***********************************************************************  										 

회로와 프로그램이 간단하지만 다양하게 응용가능하다.



16F18345를 사용한 Digital Input 회로
(그림을 마우스로 클릭하면 간단한 동영상을 볼 수 있다)


참고:

     
     
     



 
TOP
Next >