요즘 PoorMan(Zen)을 만들면서 여러 가지 삽질을 하고 있습니다.
바느질을 하다 보니 쉬운 회로임에도 불구하고 여러 부품을 잡아 먹었습니다.
너무 만만하게 생각하다 보니 그러나 봅니다.
Zen을 만들면서
온/오프시 퍽하는 소리를 잡으려 생각해 보니 스피커 보호 회로가 생각이 나더군요
그래서 일단 한 번 만들어 봤습니다.(ATtiny 13 마이크로 프로세서가 생각이나서 부품통을 뒤져 봤더니 안 없어지고 나오더군요)
다른 분이 만들어 놨는지 아님 제가 첨 만들었는지 모르지만 일단 만들어 봤습니다.
만들고
잘 동작하는 것을 확인 했습니다.
홈페이지에 올릴려고 하니 사용을 잘 못 하지만 OR CAD도 깔았습니다. (회로를 그려야 해서 ㅠ.ㅠ)
잘 사용하는 프로그램이 아니라 .. 발로 아래와 같이 그렸습니다.
또
안하던 프로그래밍을 해야 하니 프로그램도 깔아야 하더군요
AVR studio 4.0 --- USB 케이블 사용하기 위해( 이 프로그램은 사용하지 않아서 불편합니다.)
Win AVR--- 컴파일러
마이크로 프로세서에 프로그래밍 하는 모습입니다.
집게도 만들었습니다.
프로그램 케이블 제거하고 난 후의 사진입니다.
크기는 짐작하시기 바랍니다.
프로그램도 적어봅니다.
#include <avr/io.h>
#include <avr/pgmspace.h>
#define F_CPU 1.0E6 // delay.h를 사용하기위해 크리스털 지정
#include <util/delay.h>
#define sbit(x,y) (x |= (1<<y))
#define cbit(x,y) (x &= ~(1<<y))
#define tbit(x,y) (x & (1<<y))
// 프로그래머 표시
prog_char Acefrog[]="Copyright(c) 2012.07.02 by Acefrog. All rights reserved.";
// 단순히 1초 지연시킨다.
void time_1_sec(){
int i;
for(i=0;i<10;i++) _delay_ms(100); // 0.1초
return;
}
void _ON(){
time_1_sec();
sbit(PORTB,2); // 전원-->ON;
time_1_sec();
time_1_sec();
time_1_sec();
time_1_sec();
time_1_sec();
sbit(PORTB,1); // SP-->ON;
}
void _OFF(){
time_1_sec();
cbit(PORTB,1); // SP-->OFF;
time_1_sec();
cbit(PORTB,2); // 전원-->OFF;
}
/* -----------------------------
--- 스피커 보호 회로 ---
전원 ON ---> 5초 후 스피커 ON
----------------------------- */
int main(){
DDRB=0xfe; // 0번핀을 입력으로
time_1_sec(); // 1초를 지연 시킨다.
time_1_sec(); // 1초를 지연 시킨다.
// 시작시 2초후
for(;;){
do{
do{
// 스위치 입력을 기다린다.
}while(tbit(PINB,0));
_delay_us(500);
}while(tbit(PINB,0));
_ON(); // ON 처리
do{
do{
// 스위치 입력을 기다린다.
}while(!tbit(PINB,0));
_delay_us(500);
}while(!tbit(PINB,0));
_OFF(); // OFF 처리
};
}
프로그램을 보시면 아시겠지만
동작 ON
1초 후 전원 넣고
5초 후 헤드폰 연결 시켰습니다. (시간은 아직 많은 실험은 없었습니다.)
동작 OFF
1초 후 헤드폰 연결 끊고
1초후 전원을 OFF 시킵니다.
대기 소비 전력도 적고 크기도 적당해서 만족스럽습니다.
마이컴이 --- 1800원
7805 ---------- 200원
릴레이 가격이 그런데 2000원 정도 하는 군요
기판하고 합쳐서 7,000정도 견적이 나옵니다.
마이컴 포트로 직접 릴레이 구동해도 전류 딸리지 않나요? 대충 계산해 보니 릴레이 구동에 전류를 40~50mA 정도는 흘려야 할텐데요.
포트의 팬아웃이 딸리면 BJT나 MOS-FET등을 통해서 구동하셔야 할겁니다...^^