신호의 교차 순서는,1) 직선 파란불과 우측 횡단보도 파란불이켜져있고,2) 잠시후 횡단보도 파란불 깜빡이고, 3) 횡단보도 파란불이 꺼지고, 적색불이 켜진다.4) 잠시후 차량에 대한 파란불이 황색등을 거쳐서 적색으로 켜집니다.5) 시계방향으로 신호등 켜기를 합니다.6) 1~5를 반복합니다.현재 위의 그림은 북쪽 방향으로 차량이 통행되고 동쪽의 보행자 횡단보도에 파란불이 켜져 있는 모습이다.CPU는 8051 계열인 AT89C51을 사용했다. 남은 포트가 거의 없을 정도로 모두 사용 되었다. 31번은 /EA핀이다. 외부 메모리를 사용하지 않기 때문에 VCC를 걸어준다. 5.3 프로그램 설명 신호등의 타이밍 조절은 프로그램의 처음 부분 define 부분에서,D_GREEN_M , D_GREEN_M_ON_OFF , D_GREEN , D_YEL 의 값을 조절하면 되며 단위는초이다.D_GREEN_M 은 횡단보도에서의 파란불켜짐 시간이다.D_GREEN_M_ON_OFF 는 횡단보도에서 파란불이 꺼지기 직전에 깜빡거리는 시간이다.D_GREEN 는 차량의 입장에서 파란불이 켜져있는 시간이다.D_YEL 는 차량의 입장에서 파란불에서 황색으로 이동하는 과정에서 황색불의 지연 시간이다.
빨간색 원부분만 물에 접촉되도록 하고 나머지는 절연 시킨다. 빨간색 원의 붕 두개가 물이 접촉 되는 부분이다.회로도를 보면, LM311은 비교기 이다. (+)단에는 10k두개를 연결하여 9Volt 의 1/2인 4.5Volt를 넣어서 비교기의 기준 전압으로 만들었으며, (-) 단에는 전극봉을 연결하게 되어있다. 출력핀(7번)에 5Volt에 의한 풀업저항을 연결해서 마이크로프로세서에서 입력신호로 받을 수있게 하였다.두개의 봉에 물이 접촉되지 않았다면 LM311의 (-)단에는 9Volt가 입력되어서 기준전압 4.5볼트와 비교해보면 (+) 단의 전압보다 (-):::회로도에서는 12Volt 와 5Volt 두개의 전원을 사용한다. AC 220V의 전압을 트랜스를 사용하여 12Volt AC를 만들고 이 전압을 브릿지다이오드를 사용하여 정류하고, 330uF/25V 콘덴서를 사용하여 평활 시킨후, 7805 정전압 레귤레이터를 사용하여 5볼트를 만들어 낸다.이 회로를 설명하면 다음과 같다.::
온도를 디지털 방식으로는 어떻게 구현을 해야 되는지 알고싶고, 궁굼 했기에 이번에 제작을 해보기로 했다. AVR CPU인 ATMEGA8535 와 온도센서인 LM35DZ IC를 이용한 디지털 온도계이다::예를 들어서 출력 전압이 50mV 라면 온도 = 50mV / 10mV = 5 5 도가 된다.출력전압을 10mV로 나누게 되면 그 값이 온도가 되는 것이다. 이렇게 해서 섭시2도 ~ 150도 까지 측정이 된다.8535를 이용한 온도계 제작에서는 디스플레이로 7 세그먼트를 사용했으며 ,7세그먼트의 좌측 두 개는 10의 자리와 1의 자리, 뒤의 두 개는 소수점 첫 번째, 두 번째 의 용도로 사용하였으며, 온도 표시는 최대 99 도까지 하도록 프로그램 하였다.LM35 온도센서는 출력 전압의 10mV 당 섭시 1도 라고 하였다. 그리고 이 출력 전압은 LM358 OP-AMP를 통해서 4배 증폭이 된다.::unsigned int read_adc(unsigned char adc_input) 함수는 A/D변환 채널을 쉽게 하기 위해 만든 함수 이다.예를들면, 결과값 = read_adc(0); 하게 되면 AD0핀의 전압을 디지털로 변환해 주게 된다.함수를 보면 ADMUX 와 ADCSRA 레지스터를 이용한 작업을 한 것을 알 수 있다.ADMUX에는 변환을 요구 하는 채널 선택을 한 것을 알 수 있다.ADCSRA |= 0x40 하여서 ADC 변환을 시작하라는 명령을 내린다.::지금에야 쉽게 진행된 것처럼 느껴지지만 그때 당시에는 어떻게 해야 할지 감이 잡히지 않아서 무척 힘들었다. 그러나 이렇게 만들어 보니 , 더욱더 열심히 해야 겠다는 생각이 들었다. 특히 마이크로 프로세서를 잘 활용하기 위해서는 기본적으로 프로그램 기술을 많이 쌓아야 겠다는 생각을 했다.아무쪼록 이번 작품을 만들면서 좋은 추억이 되었다고 생각한다.
방범 시스템입니다. 적외선센서를 사용했으며, CPU는 8051 계열인 AT89C2051과 AT89C51 입니다.: 8051 계열의 CPU인 AT89C2051고 AT89C52을 사용해서 방범 시스템을 제작해 보았다. 센서는 적외선 센서를 사용했으며, 적외선 센서를 통신하다가 데이터가 끊기면 침입자가 들어온것이므로 싸이렌을 울린다. AT89C2051에서 적외선을 송신한다. 그리고 AT89C51에서는 적외선을 수신하게 된다.: 대략적인 구성도 이다. 왼쪽은 적외선센서를 송신하고 오른쪽은 적외선 센서를 수신하게 된다. 적외선 센서 송신은 AT89C2051 CPU가 담당하고 적외선 센서 수신은 AT89C51 CPU가 담당하게 된다. 수신부의 LED 두개는 다음의 용도이다.적색 LED – 방범시스템 작동중을 나타냄녹색 LED- 센서 수신이 잘 이루어 지고 있음그리고 버턴은 암호를 입력 하게 된다. 여기서는 1,3,5,7로 하였다.암호 입력 방법은 다음과 같다.ENT + 1 + 3 + 5 + 7 + 9 하면 된다.: /* Xtal 이 20M 일때 20M / 12분주 = 0.6usec */ /* 0x100 - 167 = 89 , 167 * 0.6usec = 100.2usec 인터럽트 설정 */ TH0 = 89; TL0 = 89; TR0 = 1; ET0 = 1; /* 보레이트 2370 */ TH1 = 0xEA; ES = 1; // 시리얼 포트 인터럽트 Enable PS = 1; // 시리얼 통신 인터럽트 우선순위를 높게 잡는다. EA = 1; PCON = 0; // SMOD = 0 SCON = 0x50; // 비동기 통신모드1 10비트 프레임 , 스타트비트(1) + 데이타 (8) + 스돕 (1)}
CPU는 AVR 계열인 AT90S2313을 사용했으며 전체 시스템 구성은 AT90S2313 , 서보모터 HS-311 (또는 HS-301) , 전극봉센서회로 등으로 구성되어 있입니다.자료 페이지수는 A4용지 31 장 이고프로그램은 C 언어로 작성했습니다.컴파일러는 CodeVisionAVR 이며, 컴파일된 hex파일도 올려놨습니다.이작품은 수위를 감지하는 작품 입니다.회로도,프로그램,사진,동영상등 많은 자료를 제공합니다.목차는다음과 같습니다.1. 작품명2. 작품 개요3. 목적4. 구성 블록도5. 부품 리스트6. 제작 과정7. 프로그램 다운로딩 하기8. 작동 설명 8.1 회로도 8.2 회로도 설명 8.3 프로그램 설명 8.4 소스프로그램9. 부품 리스트10. 졸업작품 과정에서 느낀점11. 참고서적12. 데이타시트13. 작동방법=================== 본문 내용 ==========================서보모터이다. 수위 감지가되면 서보 모터의 축을 특정 위치로 이동하여 수위 감지 되었음을 표현 하였다. 사용한 서보 모터 HS-311의 작동 법은 다음과 같다.HS-311 서보 모터는 일반 DC 모터와는 다르게 전원을 공급한다고 해서 모터가 돌지 않는다. 서보 모터의 핀을 보면 SIG, VCC, GND 가 있다. VCC 와 GND 에는 전원 공급이며, SIG 핀에는 원하는 각도의 신호를 넣어 주는 것이다. 즉, 서보 모터는 원하는 각도로 응답해주는 용도의 모터인 것이다. 따라서 수위 감지 되었음을 나타내기에 적합 할 것 같아서 RC서보 모터를 사용했다. SIG 핀에 입력하는 펄스폭과 각도 와의 관계는 다음과 같다. A값이 1.5msec 이면 모터는 0도의 위치에 가서 멈추게 된다.A값이 0.7msec 이면 모터는 –90도의 위치에 가서 멈추게 된다A값이 2.3msec 이면 모터는 +90도의 위치에 가서 멈추게 된다. 따라서 A값을 조절하면 HS-311 서보 모터의 회전각도를 제어할 수 있다.B는 전체 주기를 나타낸다. 주기는 3~20msec 범위에 속해야 한다.정리하면 다음과 같다.:::