목차
1. 제목
2. 작품개요(동작개요)
3. 회로도
(1) 회로도
(2) 사용포트
(3) 부품리스트 및 테스트
4. 처리흐름도
(1) 메인
(2) 함수별
5. 소스리스트
6. 작품사진
2. 작품개요(동작개요)
3. 회로도
(1) 회로도
(2) 사용포트
(3) 부품리스트 및 테스트
4. 처리흐름도
(1) 메인
(2) 함수별
5. 소스리스트
6. 작품사진
본문내용
사용포트
(3) 부품리스트 및 테스트
4. 처리흐름도
(1) 메인
(2) 함수별
5. 소스리스트
6. 작품사진
7. 작품후기
1. 제목 : Music Box with LED
- 소리의 높낮이에 따라 반응하는 led로 일명 춤추는 led이다.
2. 작품개요
▣ MCU는 디지털 신호만을 직접 처리 할 수있기 때문에 음의 높이나 음의
길이를 변화시키는 것은 가능하지만, 음의 강약 또는 음의 색깔을 변화
시키는 것은 D/A컨버터나 OP-Amp같은 회로가 필요하다. 그래서 마이크를
이용하여 노래를 받아 A/D컨버터를 이용하여 LED 및 AD변환값을 출력 할
것이다.
▣ 자동패턴 모드
마이크로 노래를 입력으로 받아 AD컨버터를 이용하여 A/D 변환값을 나누어
각 부분에 따라 값을 LED에 출력한다.
▣ 직접입력 모드
스위치 두 개를 이용하여 첫 번째 스위치는 “윗면LED를 시계방향 + 측면 led 반전”두 번째 스위치는 “윗면 led 반시계방향 + 측면 led 고정”하여 동작시킨다.
3. (1) 전체 회로도
(2) 스위치 회로도
LED 입력 스위치
모드전환 스위치
(3) 마이크 회로도
- 이 회로는 콘덴서 마이크로폰으로써 프리엠프기능을 가지고 있으며 높은 감도를 제공하여 출력부분을 AVR에 있는 ADC포트에 연결 하였습니다. 9V라고 인가하라고 되어있는데 저부분이 5V와의 차이는 단순히 출력 전압의 크기 차이어서 저는 5V 전압을 인가하였습니다.
(4) LED 회로도
- PA, PC포트는 LED와 연결되있는 포트입니다. PA0 ~ PA2까지는 고휘도 LED 4개씩 병렬로 분홍/핑크/빨강색이 연결되어 윗면을 구성하고 있습니다.. 나머지 PA3 ~ PA7, PC0 ~ PC6까지는 흰색 고휘도 LED 12개가 연결되어 있어 옆면을 구성하고 있습니다.
(2) 사용포트
입/출력
사 용 포 트
기 능
입력
PF0
FK648에서 나온 출력을 입력으로 받는다.
PE4
PE5
모드1 / 모드2 선택 스위치
PE5
PE6
led 연주스위치
출력
PA0
PA1
PA2
AD컨버터의 8비트 출력을
8개의 LED로 출력(윗면 - 파랑/핑크/빨강)
PA3
PA4
PA5
PA6
PA7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
AD컨버터의 8비트 출력을
8개의 LED로 출력(옆면 - 흰색)
PD0
PD1
PD2
PD4
PD5
PD6
PD7
ADC 변환값 출력(LCD)
(3) 부품 리스트 및 부품 테스트
품 명
규 격
수 량
비 고
고휘도 led
4EA(RED)
4EA(BLUE)
4EA(PINK)
12EA(WHITE)
프리엠프 내장된 콘덴서
FK648
1EA
MCU
1EA
아크릴판
120mm X 75mm
4EA
120mm X 120mm
2EA
핸드폰
1EA
부품 테스트
-adc0804를 이용한 fk648 테스트
기존에 있던 adc0804 ic를 이용하여 브래드 보드에 테스트 해보았다. 마이크쪽에 핸드폰
노래를 틀어 입력하였더니 AD변환값이 높은 곳에서는 led가 많이 켜지고 낮은 변환값에서는
led가 적게 켜지는 것을 볼 수 있었다.
4. 처리 흐름도
(1) 메인
(2) 세부
5. 소스리스트
//pa pc ---led 출력
//pe - led 스위치 (4,5 모드전환스위치 5,6 직접입력 스위치)
//pf - adc 입력
#include
#include
#include
#define FUNCSET 0x28 // Function Set
#define ENTMODE 0x06 // Entry Mode Set
#define ALLCLR 0x01 // All Clear
#define DISPON 0x0c // Display On
#define LINE2 0xC0 // 2nd Line Move
void LCD_init(void); //LCD 초기화
void LCD_String(char *); //고정 문자열 출력
void Busy(void); //딜레이 함수
void Command(unsigned char); //커맨드 쓰기
void Data(unsigned char); //데이터 쓰기
void adc_disp(void); //ADC값 출력
void Auto_mode(void); //자동 연주모드(ADC변환값에 다른 LED 출력)
typedef unsigned char u_char;
int ad_val, k = 2; //k=0 (직접연주), k=1 (자동연주), ad_val(ad변환값)
u_char sdi = 1;
u_char p = 0;
unsigned int led_port = 0b1111111111110000, adc_port = 0xFF, buf;
// led_port(측면 흰색 led) adc_port(윗면 빨강/파랑/분홍 led)
// led_port (pa3~pa7 + pc0~pc6) adc_port(pa0~pa2)
void main(void)
{
DDRC = 0xFF; //포트 C 출력설정
DDRA = 0xFF; //포트 A 출력설정
EIMSK = 0b11110000; //외부 인터럽트 4,5,6,7 인에이블
EICRB = 0b00001010; //외부 인터럽트 4,5 하강에지 6,7 레벨트리거
SREG = 0x80; // 전체 인에이블 비트 셋
ADMUX = 0x0; // ADC0 단극성 입력 선택
ADCSRA = 0x87; // ADEN=1, 16MHz 256분주 -> 125kHz
delay_ms(5);
TIMSK = 0x04; //TOIE1 = 1, 오버플로우 인터럽트 인에이블
TCCR1A = 0x0; //모드 0(일반모드)
TCCR1B= 0x05; //분주비 : 1024
TCNT1 = 65000; //(1/16)us * 1024분주 * (65536 - 64000)= 98ms
LCD_init();
LCD_String(\"ADC value\");
PORTA = 0xFF; //포트A 초기화
PORTC = 0xFF; //포트C 초기화
while(1)
{
ADCSRA = 0xC7; // ADEN=1, ADSC = 1 변환 시작
while((ADCSRA & 0x10) == 0); // ADIF=1이 될
(3) 부품리스트 및 테스트
4. 처리흐름도
(1) 메인
(2) 함수별
5. 소스리스트
6. 작품사진
7. 작품후기
1. 제목 : Music Box with LED
- 소리의 높낮이에 따라 반응하는 led로 일명 춤추는 led이다.
2. 작품개요
▣ MCU는 디지털 신호만을 직접 처리 할 수있기 때문에 음의 높이나 음의
길이를 변화시키는 것은 가능하지만, 음의 강약 또는 음의 색깔을 변화
시키는 것은 D/A컨버터나 OP-Amp같은 회로가 필요하다. 그래서 마이크를
이용하여 노래를 받아 A/D컨버터를 이용하여 LED 및 AD변환값을 출력 할
것이다.
▣ 자동패턴 모드
마이크로 노래를 입력으로 받아 AD컨버터를 이용하여 A/D 변환값을 나누어
각 부분에 따라 값을 LED에 출력한다.
▣ 직접입력 모드
스위치 두 개를 이용하여 첫 번째 스위치는 “윗면LED를 시계방향 + 측면 led 반전”두 번째 스위치는 “윗면 led 반시계방향 + 측면 led 고정”하여 동작시킨다.
3. (1) 전체 회로도
(2) 스위치 회로도
LED 입력 스위치
모드전환 스위치
(3) 마이크 회로도
- 이 회로는 콘덴서 마이크로폰으로써 프리엠프기능을 가지고 있으며 높은 감도를 제공하여 출력부분을 AVR에 있는 ADC포트에 연결 하였습니다. 9V라고 인가하라고 되어있는데 저부분이 5V와의 차이는 단순히 출력 전압의 크기 차이어서 저는 5V 전압을 인가하였습니다.
(4) LED 회로도
- PA, PC포트는 LED와 연결되있는 포트입니다. PA0 ~ PA2까지는 고휘도 LED 4개씩 병렬로 분홍/핑크/빨강색이 연결되어 윗면을 구성하고 있습니다.. 나머지 PA3 ~ PA7, PC0 ~ PC6까지는 흰색 고휘도 LED 12개가 연결되어 있어 옆면을 구성하고 있습니다.
(2) 사용포트
입/출력
사 용 포 트
기 능
입력
PF0
FK648에서 나온 출력을 입력으로 받는다.
PE4
PE5
모드1 / 모드2 선택 스위치
PE5
PE6
led 연주스위치
출력
PA0
PA1
PA2
AD컨버터의 8비트 출력을
8개의 LED로 출력(윗면 - 파랑/핑크/빨강)
PA3
PA4
PA5
PA6
PA7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
AD컨버터의 8비트 출력을
8개의 LED로 출력(옆면 - 흰색)
PD0
PD1
PD2
PD4
PD5
PD6
PD7
ADC 변환값 출력(LCD)
(3) 부품 리스트 및 부품 테스트
품 명
규 격
수 량
비 고
고휘도 led
4EA(RED)
4EA(BLUE)
4EA(PINK)
12EA(WHITE)
프리엠프 내장된 콘덴서
FK648
1EA
MCU
1EA
아크릴판
120mm X 75mm
4EA
120mm X 120mm
2EA
핸드폰
1EA
부품 테스트
-adc0804를 이용한 fk648 테스트
기존에 있던 adc0804 ic를 이용하여 브래드 보드에 테스트 해보았다. 마이크쪽에 핸드폰
노래를 틀어 입력하였더니 AD변환값이 높은 곳에서는 led가 많이 켜지고 낮은 변환값에서는
led가 적게 켜지는 것을 볼 수 있었다.
4. 처리 흐름도
(1) 메인
(2) 세부
5. 소스리스트
//pa pc ---led 출력
//pe - led 스위치 (4,5 모드전환스위치 5,6 직접입력 스위치)
//pf - adc 입력
#include
#include
#include
#define FUNCSET 0x28 // Function Set
#define ENTMODE 0x06 // Entry Mode Set
#define ALLCLR 0x01 // All Clear
#define DISPON 0x0c // Display On
#define LINE2 0xC0 // 2nd Line Move
void LCD_init(void); //LCD 초기화
void LCD_String(char *); //고정 문자열 출력
void Busy(void); //딜레이 함수
void Command(unsigned char); //커맨드 쓰기
void Data(unsigned char); //데이터 쓰기
void adc_disp(void); //ADC값 출력
void Auto_mode(void); //자동 연주모드(ADC변환값에 다른 LED 출력)
typedef unsigned char u_char;
int ad_val, k = 2; //k=0 (직접연주), k=1 (자동연주), ad_val(ad변환값)
u_char sdi = 1;
u_char p = 0;
unsigned int led_port = 0b1111111111110000, adc_port = 0xFF, buf;
// led_port(측면 흰색 led) adc_port(윗면 빨강/파랑/분홍 led)
// led_port (pa3~pa7 + pc0~pc6) adc_port(pa0~pa2)
void main(void)
{
DDRC = 0xFF; //포트 C 출력설정
DDRA = 0xFF; //포트 A 출력설정
EIMSK = 0b11110000; //외부 인터럽트 4,5,6,7 인에이블
EICRB = 0b00001010; //외부 인터럽트 4,5 하강에지 6,7 레벨트리거
SREG = 0x80; // 전체 인에이블 비트 셋
ADMUX = 0x0; // ADC0 단극성 입력 선택
ADCSRA = 0x87; // ADEN=1, 16MHz 256분주 -> 125kHz
delay_ms(5);
TIMSK = 0x04; //TOIE1 = 1, 오버플로우 인터럽트 인에이블
TCCR1A = 0x0; //모드 0(일반모드)
TCCR1B= 0x05; //분주비 : 1024
TCNT1 = 65000; //(1/16)us * 1024분주 * (65536 - 64000)= 98ms
LCD_init();
LCD_String(\"ADC value\");
PORTA = 0xFF; //포트A 초기화
PORTC = 0xFF; //포트C 초기화
while(1)
{
ADCSRA = 0xC7; // ADEN=1, ADSC = 1 변환 시작
while((ADCSRA & 0x10) == 0); // ADIF=1이 될
추천자료
워드프로세서 2급 필기 요약
조도측정기
[Wireless Control Micromouse] 무선 조정 마이크로마우스 with VHDL
슈퍼스칼라 프로세서를 이용한 gcc 벤치마크에 대한 성능평가 분석
ATmega128타이머/카운터이론
Micro
[전자공학과] 마이크로컨트롤 실습결과 보고서 - led 를 순차적으로 on/off 시키는 프로그램...
[마이크로컴퓨터] 오버플로우란
마이크로 세그먼트 & LED
마이크로 계산기 설계
블루투스를 이용한 AVR 컨트롤 어플리케이션
마이크로컴퓨터 twi 예비보고서- 1
[마이크로컴퓨터] 7-segment(7세그먼트) LED 구동 실험
AVR을 이용한 CLCD(TEXT LCD) 문자출력 (CLCD 문자출력,TEXT LCD,텍스트엘시디,회로도,소스,...
소개글