C (Atmega128)

    6. UART 통신 (HC - 06)

    1. 회로 PORTE.0/1 : RX/TX 앞면 : 다운로딩 및 컴퓨터 ComPortMaster용 뒷면 : 핸드폰용 2. 프로그램 설계 UART는 블루투스와 컴퓨터 둘다 가능하도록 코딩하였습니다. Uart는 패킷을 통해 완성된 문장을 보내게 되는데 각 패킷은 으로 시작과 끝을 만듭니다. 패킷의 종류로는 전체 센서 제어용 패킷과 타이머 온오프 패킷 응급상황 패킷, 문 열림 패킷이 있습니다. UART로 각종 센서를 전체적으로 제어 할 수가 있습니다. [UART 필요 기능] 패킷 종류 센서 제어용 패킷 : 타이머 제어용 패킷 : 응급상황 패킷 : (= 문 닫힘) 문 열림 패킷 다른 센서와의 데이터 교환 다른 센서와 데이터 처리를 하기 위한 여러 전역 변수를 설정했습니다. timerCnt, isTimerOn, ..

    5. 불꽃 감지 센서 및 모터 개발

    1. 회로 PORTF4 : 불꽃 감지 센서 PORTB.5 : 모터 2. 프로그램 설계 불꽃이 감지되면 비상상황이라 생각하여 모터를 활용하여 집 문을 열고 해당 상태로 유지합니다. UART를 통해 패킷을 입력 받으면 해당 상태가 끝납니다. 이때 해당 센서는 UART 패킷으로 센서를 OFF하여 나머지 센서가 동작 안되게 하더라도 불꽃 감지 센서는 동작이 되어야 합니다. [불꽃 감지 센서 필요 기능] 불꽃 감지 조도 센서와 같이 읽어온 값을 처리한 후 처리한 데이터의 단계를 통해 일정 단계 이하이면 모터 동작하게 합니다 모터 동작 (문 열림) 불꽃 감지를 통하여 값을 읽어온 후 읽어온 값이 일정 이상일때 모터 동작하여 문을 열게합니다. 이후 감지가 안되더라도 문은 닫히지 않습니다. 또한 Emergency NO..

    4. 조도 센서 (KY-018)

    1. 회로 PORTF1 : 조도 센서 InOut VCC GND PORTD.7 : LED 2. 프로그램 설계 기본 아무 동작을 하지 않고 타이머를 동작 시키지 않았을 때 LCD에 나와야 하는 값입니다. 다른 동작을 하다 다시 처음 상태로 돌아오게 되면 기본 동작인 조도 값을 계속 읽게 됩니다. 주위 밝기가 어두우면 LED를 ON하고 밝으면 OFF를 하게 됩니다. [조도 센서 필요 기능] LCD 출력 기본적으로 센서 값을 계속 받아들여 LCD에 출력해야 하는 값입니다. 타이머 동작 전 기본 화면입니다. LED ON/OFF 조도 센서를 통해 값을 지속적으로 받아 들이며 어둡게 되면 LED를 ON하고 밝으면 LED를 OFF한 상태롤 유지합니다 일정 시간마자 센서값 읽기 Timer를 통해 0.2초마다 센서값 읽습..

    3. Light Sensor (LM35)

    1. 회로 PORTF3/2 : 온도 센서 Input Vcc/GND PORTD.6 : GND 2. 프로그램 설계 온도 센서는 스마트홈에서 알람이 끝난 후 외출하기 전 밖의 온도를 나가기 위함으로 타이머가 끝나면 온도 센서의 값을 받아오기 시작합니다. [FND 필요 기능] 온도 센서 동작 타이머 끝난 후 동작하기 위해 플래그를 통해 타이머가 끝나는 것을 기다립니다. 타이머 동작 중인 플래그(isRunning) 뿐만 아니라 타이머가 끝났다는 플래그(isTimerDone)도 있어야합니다. 3. 동작 방식 온도센서는 아날로그 신호를 받는 소자입니다. ADC변환을 해주어야 하며 주요 성능은 샘플링 주파수와 분해능에 의해 결정됩니다. MUX를 사용하므로 Atmega128에 존재하는 8개의 채널을 동시 사용이 불가능하..

    2. FND & Timer

    1. 회로 PORTC : 데이터 처리용 PORTE(4~7) : 데이터 제어용 PORTD.7 : LED 2. 프로그램 설계 UART를 통해 데이터를 받아옵니다. 데이터 값을 타이머가 1초씩 지나갈때마다 인터럽트가 발생하게 되며, 발생할때 마다 1씩 감소시킵니다. FND 4자리 중 앞 2자리는 분, 뒤 2자리는 초를 나타내며 실제 시간과 같이 0초가 되면 59초로 변경합니다. [FND 필요 기능] 외부 소통 함수(disp_some) 초기 화면 각종 예외 발생 상황 보여주기 각 센서 값 출력 [Timer2 필요 기능] 입력받은 숫자를 시간에 맞게 동작하도록 데이터 처리 0초가 끝나면 59초로 이동 타이머 종료시 종료 문구 종료에 따른 새로운 동작을 위한 플래그 변경 3. 동작 방식 3.1 FND 동작 방식 F..

    1. LCD

    1. 회로 PORTA : 데이터 처리용 PORTG (0~2) : 데이터 제어용 나머지(전원) : VCC=0V, VDD=5V, VEE=저항 2. 프로그램 설계 특정 상태 화면 : 초기 화면, 조도센서 값, 온도센서 값, 타이머 시작 시간, 예외 발생등 원하는 문자열을 주면 출력가능한 함수가 필요합니다. 매개 변수 : 따라서 각 줄에 들어갈 내용과 몇초간 출력 할 것인지를 나타내는 변수 필요 외부 소통 함수(disp_some) 초기 화면 각종 예외 발생 상황 보여주기 각 센서 값 출력 3. 동작 방식 회로 구성 대로 LCD는 PORTA를 통한 데이터를 처리하고 PORTG를 통해 제어를 합니다. LCD의 위치를 선정하여 아스키코드를 통한 데이터를 출력하여 DDRAM만 사용합니다. IR을 선택하여 제어 명령 쓰..

    스마트 홈 프로젝트 - 0

    지난 학기에 진행했던 스마트 홈 프로젝트를 복습겸 짤막하게 올릴 생각입니다. 0. 기본 설정 0.1 사용 프로그램 Microchip Studio ( AVR Studio ) : 기존 Code Vision을 사용했으나 프로그램 크기가 커지면서 무료버전을 사용할 수 없었습니다. ComPortMaster : UART 통신을 위해 사용 0.2 사용 센서 1. 동작 시나리오 2. 예외 시나리오 3. 전체 소스 코드 parksey/AtmegaTermProject (github.com) GitHub - parksey/AtmegaTermProject Contribute to parksey/AtmegaTermProject development by creating an account on GitHub. github.com..