2016년 5월 29일 일요일

램프형 스위치의 올바른 결선법

전원 스위치 중에는 ON 상태를 표시하는 파일럿 램프가 내장된 것이 있다. 이를 보통 램프형 스위치(illuminated switch) 혹은 조명형 스위치라 부른다. 220V에 직접 연결되는 스위치에서는 전력 소모가 적고 수명이 매우 긴 네온 램프가 들어 있는 것이 일반적이다. 결선 방법에 따라서는 항상 램프에 불이 들어오게 할 수도 있고, ON 상태에서만 불이 들어오게 할 수도 있다. 가정용 조명을 켜고 끄기 위해 사용하는 벽면 매입형 램프형 스위치는 어둠 속에서 스위치의 위치를 쉽게 찾을 수 있도록 OFF 상태에서는 파일럿 램프가 켜지고 ON 상태에서는 꺼지도록 되어 있다. 오늘의 포스팅에서는 이러한 방식의 스위치는 논외로 한다.

새로 만든 산켄 하이브리드 IC 사용 앰프의 케이스 제작 마무리를 위해서 지마켓에서 램프형 스위치를 2개 구입해 보았다. 예전에도 비슷한 일을 위해서 스위치를 구입하여 완성한 적이 있지만 정확한 결선법을 몰라서 ON-OFF 작동은 되어도 파일럿 램프는 항상 꺼진 상태였다. 인터넷을 종일 뒤져보았지만 국문 페이지에는 속 시원하게 설명된 글이 거의 없다 해도 과언이 아니었다. 영문으로 "How to wire illuminated switch"를 검색하니 겨우 이해할 만한 수준의 글이 나타나기 시작했다. 여기에 약간의 실험을 더해서 오늘의 포스팅을 채울 체계적(?)인 지식을 마련하였다.

내가 이번에 구입한 스위치는 다음의 사진과 같다. 초록색 불을 밝힌 3단자 원형 스위치는 이미 가공된 케이스에 들어간 상태이다.

3단자 램프형 스위치의 연결법은 유튜브 동영상까지 나올 정도이다. 이것은 비교적 이해하기 쉽다. 인터넷에서 그림을 하나 얻어왔다. 두꺼운 선은 이해를 돕기 위해 내가 그린 것이다. 다음과 같이 결선하면 ON 시에 내부의 램프가 점등된다. 그림에서는 LED로 표현되었지만 저항이 직렬로 연결된 네온 램프로 생각하면 된다. SPST(single pole single throw)는 스위치의 작동 방식을 일컫는 용어이다. 그림과 더불어 좀 더 자세한 설명을 원한다면 여기를 참조하라.

출처: https://www.circuitlab.com/circuit/ud5yzk/ 맨 아래의 공통 단자는 실물 스위치에서 보통 노란색, 나머지 두 단자는 주석 도금의 흰색을 띠게 만든다. LED가 내부에 들어 있다면 직류 전원의 방향에 유의해야 할 것이다.

다음으로는 4개의 핀으로 구성된 램프형 스위치의 경우를 알아보자. 맨 위에 실은 그림에 보인 빨간색 스위치가 그 예이다. 6핀용 스위치와 같은 케이스를 쓰고 있어서 1번과 4번 핀 자리는 비어 있다. 예전에 만든 앰프에서는 이 스위치가 단지 전원 ON/OFF만 하도록 결선했을 뿐, 램프는 전혀 작동하지 않았다. 그래서 앰프 패널에 LED를 이용한 파일럿 램프를 별도로 달았었다. 제대로 점등한다 해도 앰프 뒷면에 파워 소켓과 같이 조립해 놓아서 어차피 보이지는 않는다. 이 스위치는 DPST(dual pole single throw)의 일종이므로, 아래 그림에서 보였듯이 스위치 동작에 따라 2-3, 그리고 5-6 사이가 이어졌다 떨어졌다를 하는 것으로 생각하여 결선을 하면 기본적인 개폐 동작은 된다. 그런데 이렇게 해서는 램프가 켜지는 모습을 도저히 볼 수가 없다.

소형 스위치에서는 6핀을 갖춘 DPDT 스위치가 더 많다. 그러나 전원용이라면 전환이 아니라 개폐만 하면 되므로 SPST/DPST로 충분하다.

도대체 네온 램프는 어느 핀 사이에 연결된 것인가? 220V 파워 케이블에 악어 클립을 달아서 두 핀씩을 연결하는 매우 위험한 실험을 시도하였다. 2번과 3번 핀(혹은 5번과 6번)에 220V를 연결하여 ON으로 올리면? 이는 220V를 그대로 단락시키는 셈이니 한마디로 "미친 짓"이다. 물론 브레이커가 달린 멀티탭을 사용했기에 사고를 치지는 않았다. 실험 결과는 다음과 같았다.

  • 2-6번 핀에 220V 연결: ON 상태에서 점등
  • 3-5번 핀에 220V 연결: ON 상태에서 점등
  • 2-5번 핀에 220V 연결: 항시 점등

그렇구나! 네온 램프는 스위치 내부에서 2번 핀과 5번 핀 사이에 연결된 것이다. 파일럿 램프 동작 방식에 따른 두 가지 결선 방법을 생각해 보았다. 좌우의 핀 쌍을 서로 바꾸어도 동작은 똑같이 될 것이다. 처음에는 6번 핀에 전원을 인가하는 방식으로 그렸더니 상시 점등이 되도록 결선하는 것이 불가능하여 다음의 최종 그림과 같은 형태로 고친 것이다.

[2025년 1월 14일에 추가한 글] 왼쪽과 같이 ON 상태에서만 점등하게 만드는 것이 관례일 것이다. 그렇게 하려면 이 그림을 따르는 것보다는 3/6에 220V를 연결하고 2/5에 부하를 연결하면 된다. 2-5 사이에 네온 램프가 연결되어 있다는 것을 생각하면 이해하기 쉽다.

이보다 더 복잡한 방식의 스위치도 있다고 한다. 예를 들어 파일럿 램프가 2개인 것도 있으니 말이다.

더욱 현명한 결선법

열심히 그림을 그려서 올린 뒤 좀 더 구글링을 해 보았다. 국내 스위치 제조업체인 (주)한국오탁스의 제품 설명서에서 더욱 정확한 결선 방법을 찾았기에 소개한다. 아래의 2극 스위치의 그림에서 설명한 제품은 2번과 4번 핀 사이에 내부적으로 네온 램프가 연결되어 있지만 실제적으로는 위에서 소개한 4핀 스위치와 동등하다. 생각해 보니 내가 고안한 결선법은 한쪽 접점만을 쓰도록 하였으므로 스위치의 고유 사양보다 적은 전류를 흘려야만 할 것이다. 그리고 이 제품 설명서에서는 3P 스위치의 상시점등 결선법과 심지어는 스위치 OFF 시 점등하는 결선법도 소개하고 있다.

출처: http://otaxkorea.co.kr/img/product/img/t.pdf

고민하기 전에 검색을 생활화하자... 이 글은 최초 작성 후 10년이 지난 2026년 3월에도 업데이트되었다.

산켄 앰프 케이스에 뚜껑 씌우기

다이소 수납 바구니에 대충 넣어두었던 산켄 SI-1525HD IC 사용 앰프 보드에 뚜껑을 씌웠다. 고장난 외장 HDD의 케이스를 잘라 가공하여 앰프 케이스 위에 덮은 다음 토로이달 트랜스와 전원 스위치를 고정한 것이다. 평활회로 기판에 쓰인 전해 캐패시터의 높이가 상당해서 전원 트랜스를 내부로 숨기지 못하고 뚜껑 윗면에 붙였다. 전원 스위치 고정 구멍은 먼저 밑그림을 그린 뒤 전동 드릴로 둘레를 따라 구멍을 여러개 뚫은 다음, 실톱으로 잘라내고 줄로 다듬었다. 두께 2mm짜리 알루미늄판이라서 그런지 인접하여 뚫은 구멍 사이를 처음에는 니퍼로 끊으려 했으나 잘 잘리지를 않았다. 실톱이라는 것이 정말로 쓸만한 공구라는 것을 최근에 깨닫게 되었다. 아직은 요령이 좀 부족하지만 말이다.

뚜껑으로 사용판 알루미늄 판의 크기가 충분하지 않아서 앰프 칩이 보인다. 2mm 알루미늄 판에 커터칼로 금을 수도 없이 그어서 꺾어서 자른다는 것이 비록 전혀 불가능한 일은 아니지만 권장할 일도 아니다.

네온 램프가 점등되는 원형 전원 스위치가 포인트이다. 스위치 ON 시에 불이 들어오도록 결선하는 방법을 찾느라 약간의 수고가 필요하였다.




2016년 5월 24일 화요일

NCBI에서 받은 미생물 유전체 정보를 업데이트하기

얼마전에 NCBI에서 미생물 유전체 서열을 한번에 다운로드하는 방법을 소개한 적이 있었다.

NCBI에서 미생물(bacteria) 유전체 서열을 한번에 다운로드하기

지금 와서 돌이켜보니 설명이 많이 부족하였다. 또한 이미 받은 서열 파일 이외에 NCBI에서 추가로 등재된 파일만을 가져오려면 어떻게 하는 것이 좋을까? 지난 4월 초에 총 6만개가 넘는 유전체 서열 파일(*_genomic.fna.gz)를 받는데 거의 5일 가까이 걸렸었다. 만약 ftp 세션을 여러개 열어서 나름대로 최적화를 시도했다면 조금 더 빨리 받을 수도 있었겠지만 ftp 서버의 관리자가 이를 좋아하지는 않았을 것이다. 데이터 전체를 매번 새로 받을 것이 아니라 새로 등록된 것만 받고, 아울러서 무슨 이유인지는 몰라도 삭제된 것은 제거하는 방식으로 데이터베이스를 유지하는 것이 바람직할 것이다. 오늘의 포스팅에서는 그 실제적인 방법을 정리하고자 한다.

박테리아의 경우 NCBI RefSeq ftp 사이트에 있는 파일 assembly_summary.txt가 가장 핵심적인 파일이다. 박테리아가 아닌 곰팡이나 식물 등 다른 계열의 것을 원한다면 다음 위치에서 해당 디렉토리로 들어가서 assembly_summary.txt를 찾아라.

ftp://ftp.ncbi.nlm.nih.gov/genomes/refseq/

이 파일을 이루는 각 컬럼의 설명이 필요하면 여기를 확인해 보라. assembly_summary.txt의 20번째 필드에 ftp를 위한 기본 path가 수록되어 있다. 이를 awk로 뽑아내어 별도의 파일 bacteria_dir.txt를 만든다. 시험삼아 Paenibacillus polymyxa E681 assembly version 2의 RefSeq ftp 기본 위치를 가 보자. 10여 개의 파일이 있다. 나는 이 중에서 유전체 염기서열 파일(*_genomic.fna.gz)만을 받을 것이다. 그러려면 bacteria_dir.txt 파일을 적절히 가공하여 유전체 염기서열 파일의 전체 다운로드 경로 파일(bacteria_genomic_file)을 만든 뒤 wget으로 받으면 된다. 전체 과정을 하나의 스크립트로 표현하면 다음과 같다.
$ curl 'ftp://ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/assembly_summary.txt' > bacteria_assembly_summary.txt
$ awk '{FS="\t"} !/^#/{print $20}' bacteria_assembly_summary.txt > bacteria_dir.txt
$ sed -r 's|(ftp://ftp.ncbi.nlm.nih.gov/genomes/all/)(GCF_.+)|\1\2/\2_genomic.fna.gz|' bacteria_dir.txt > bacteria_genomic_file
$ wget --input bacteria_genomic_file 
첫번째 명령은 wget ftp://ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/assembly_summary.txt라고 단순하게 입력해도 된다.

RefSeq가 아니라 GenBank 레코드를 받고 싶다면 파일 경로와 이름이 약간 달라진다. 바뀌어야 하는 곳을 위에서 빨강색으로 표시했으니 이는 숙제로 남긴다. 그러면 약간의 응용을 해 보자. 만약 genus Vibrio의 완성된 유전체에 해당하는 것만을 전체 다운로드하려면 어떻게 하면 좋을까? assembly_summary.txt에서 해당되는 조건의 row만을 뽑아서 좀 더 특화된 다운로드 경로 파일을 만들면 된다. 위에 소개한 명령 세 줄에서 가운데 것만 다음과 같이 바꾸면 된다. awk에서는 따옴표로 둘러친 명령어 내에서 field separator를 탭("\n")으로 지정해도 되고, 명령행 옵션으로(awk -F "\t") 지정해도 된다. 
$ awk '{FS="\t"} $8 ~ /^Vibrio/ && $12 ~ /Complete Genome/ {print $20}' bacteria_assembly_summary_05-24-2016.txt > bacteria_dir.txt

Incremental download 요령

우선 로컬 파일시스템에 다운로드한 기존의 파일 이름을 수록한 목록 파일을 만든 뒤 sort를 해 둔다.

$ ls | grep _genomic.fna.gz | sort > DOWNLOADED_FILES_SORTED

다음으로는 최산 assembly_summary file에서 파일 목록을 만들어 둔다. 다운로드 링크를 붙이지 않은 파일 이름만의 목록을 만들어야 하고, 마찬가지로 sort도 거쳐야 한다.

$ sed -r 's|(ftp://ftp.ncbi.nlm.nih.gov/genomes/all/)(GCF_.+)|\2_genomic.fna.gz|' bacteria_dir.txt | sort  > ALL_FILES_SORTED

이제 comm이라는 놀라운 유틸리티를 구동하자. comm은 두 개의 파일을 라인 단위로 비교하여 첫번쨰 파일에만 있는 라인, 두번쨰 파일에만 있는 라인, 그리고 모든 파일에 공통으로 있는 라인을 각각 별도의 컬럼으로 출력한다. 두 파일은 전부 사전에 sort가 되어있어야 하고, 같은 내용의 라인을 중복해서 갖고 있어서는 안된다. 인수(-1, -2, -3)는 출력이 되지 않도록 하는 컬럼을 지정하는 것이다. 즉 comm -23 file_1 file_2은 첫번째 파일에만 있는 라인을, comm -13 file_1 file_2는 두번째 파일에만 있는 라인을 출력한다.

$ comm -23 DOWNLOADED_FILES_SORTED ALL_FILES_SORTED > FILES_TO_DELETE
$ comm -13 DOWNLOADED_FILES_SORTED ALL_FILES_SORTED > FILES_TO_DOWNLOAD
$ sed -r 's|(^.*)_genomic.fna.gz$|ftp://ftp.ncbi.nlm.nih.gov/genomes/all/\1\/\1_genomic.fna.gz|' FILES_TO_DOWNLOAD > FILES_TO_DOWNLOAD_WITH_LINKS
$ wget --input FILES_TO_DOWNLOAD_WITH_LINKS
$ cat FILES_TO_DELETE | while read f
> do
> rm $f
> done

파일 이름에 생성 날짜를 넣고 싶다면


$ mv bacteria_assembly_summary.txt bacteria_assembly_summary_`date +%m-%d-%Y`.txt

펄 스크립트로 무엇인가를 구현하려고 머리를 쥐어짜다가 조금만 검색을 거치면 이미 그런 용도로 만들어진 리눅스 유틸리티를 발견하고 늘 감탄을 하게된다. 세상은 넓은데 내가 새로이 할 일은 별로 없다!

2016년 5월 21일 토요일

TDA2030A 앰프 보드에 선 연결하기

특별한 단자 처리 없이 핀 헤더만 달린 앰프 보드에 어떻게 배선을 할 것인가? 만능기판 조각에 핀 헤더 소켓과 3.5mm 스테레오 폰잭을 달아서 연결하기로 하였다.


두 장의 보드는 서로 180도 회전 대칭이 되게 연결한다. 따라서 소켓과 헤더를 연결하면서 방향이 잘못될 여지가 없다. 사실은 주변 부품의 간섭으로 이렇게 연결할 수밖에 없다. 5핀 스테레오 폰잭(PJ-307)은 플러그를 연결하지 않았을 때 신호선이 그라운드와 접속되게 배선하였다. 따라서 선이 연결되지 않으면 잡음이 발생하지 않는다. 가격이나 모양으로 보아서는 PJ-306이 조금 더 고급으로 보인다. PJ-306/PJ-307은 전부 샤시 고정 타입이 아님을 참조하라(너트와 나사산이 없다). 스피커 출력선은 악어클립을 통해서 바인딩 포스트를 집어 놓았다. 단락의 위험이 있지만 내가 알기로 TDA2030A 칩은 모든 핀 사이에 short-circuit protection 기능이 있어서 특별히 칩이 망가지는 일은 없을 것이다. 간단한 배선이지만 시력이 예전같지 않아서 애를 먹었다. 오배선이 없도록 수시로 테스터로 점검을 하였다. 전원을 반대로 걸어서 캐패시터와 칩이 터지는 경험을 해 본 일이 있기에...


음량 조절은 각 보드에 있는 반고정 저항으로 해야 된다. 좌우 오차가 적은 오디오형 볼륨 폿에 도저히 비할 바는 아니다. 인켈 SH-950B(89dB/W/M) 스피커와 휴대폰(소스)을 연결한 다음 전원(12V 2A 어댑터)를 연결하였다. 어라? 의외로 좋은 소리가 난다. 이런 저가형 부품과 불리한 배치만으로도 쓸만한 소리가 난다는 것이 정말 놀라웠다.

TDA2030A 칩은 최대 ± 22V까지 인가할 수 있다. 그러나 이 보드는 단전원만 사용 가능하며, 캐패시터의 내압에 16V에 불과하다. 판매자 웹사이트에도 공급 가능 전압은 6-12V로 나와있다.

이것으로 2016년 상반기 오디오 DIY는 마감을 하자. 앞으로 얼마나 만능기판 배선을 할지는 모르겠지만 0.25mm 래핑 와이어는 쓰기가 나쁘다. 주석도금선을 소량으로 구할 수 있으면 얼마나 좋을까? 가끔 랜선의 피복을 벗겨서 배선에 쓰기도 한다. 그러나 도금이 되지 안않은 구리선이라서 납이 썩 잘 붙는 편이 아니고, 만능기판 배선용으로는 조금 두껍다. 카테고리 5  UTP 케이블의 경우 AGW24에 해당하는데, 이는 직경 0.5105mm에 해당한다. 허용 전류는 0.588 암페어이다. 기회가 되면 전선 규격을 좀 공부해야 되겠다.


2016년 5월 20일 금요일

CentOS 6.7에 java 1.8.0 설치하기

요즘 PacBio를 이용한 효모의 de novo assembly 결과(HGAP)를 처음으로 분석하다가 미토콘드리아의 서열이 하나도 없다는 것을 발견하였다. Preassembly를 가져다가 reference sequence(S288c)에 매핑해 보면 미토콘드리아 서열(NC_001224, 86 kb)에 맞는 read들이 고스란히 존재하는데도 말이다.

PacBio로 genome sequencing을 하는 과정에서 길이가 짧은 플라스미드가 잘 재구성되지 않는다는 말은 종종 들은 적이 있다. 라이브러리의 길이가 워낙 길기에, 이보다 짧은 replicon이 라이브러리 제작 과정을 통과하지 못하는 일은 이해할 수 있다. 그런데 길이가 80 kb를 훌쩍 넘는 replicon에게 이러한 일이 생긴다는 것은 받아들이기 어렵다.

HGAP에서 de novo assembly를 담당하는 것은 Celera assembler(stand-alone tool로는 WGA라 불림)이다. 미토콘드리아는 염색체에 비해서 multi-copy로 존재하므로, 비정상적으로 높은 coverage를 나타내는 미토콘드리아 유래 contig를 적극적으로 제거해 버렸나? 그렇다면 이러한 나름대로의 철학을 담은 행동에 대해 WGS의 공식 문서에 설명이 있어야 한다고 생각한다. 그러나 웹을 아무리 뒤져보아도 이와 관련된 글귀를 찾을 수가 없었다. 별의별 질문이 다 올라오는 SEQanswers 같은 커뮤니티에 이런 현상에 대한 문의나 해결책이 한번쯤 있을 법도 한데 예상과 달리 전혀 발견하지 못하였다.

Eukaryotic genome assembly를 하는 사람들은 다 아는 문제를 나만 뒤늦게 발견하여 흥분을 했나? 지금까지 발간된 genome paper를 다 뒤져서 미토콘드리아나 엽록체의 염기서열이 제대로 나왔는지를 일일이 확인할 수는 없는 노릇이다. 이 샘플의 시퀀싱을 담당한 기관, 그리고 유전체 분석 시장에서 잘 알려진 M사를 통해서 문의하니 이러한 일을 이미 경험하였고, de novo assembler의 특성으로 생각하고 있다는 답변을 받았다.

그렇다면 long read를 다루는 다른 de novo assembler는 어떤 결과를 보일까? SMRT portal에서 preassembly를 내려받은 뒤 phrap과 mira 4.9.6을 돌려보았다. CLC Genomics Workbech(9.0)의 genome finishing module에 포함된 PacBio용 de novo assembly pipeline(beta)는 실행 중간에 에러가 발생하였다. phrap과 mira는 미토콘드리아 서열을 잘 재구성하였다. 여담이지만 mira는 성능에 비해 너무 저평가된 assembler라는 의견을 받아들이지 않을 수 없다!

SMRT analysis이외의 PacBio long read를 다룰 수 있는 다른 stand-alone tool을 설치해 놓아야 되겠다는 생각이 이제 들기 시작하였다. mira는 잘 돌아가는 중이고, 다음으로는 좀 미심쩍기는 해도 WGA를 제대로 써 봐야 되겠다고 결심하고 공식 웹사이트를 방문해 보니 이제는 Canu라는 도구에 자리를 넘겨주었다고 한다. Falcon assembler도 diploid genome에 대해서 괜찮은 성능을 보인다고 들었다. GitHub에서 Canu 바이너리를 받아서 corrected PacBio read에 대한 assembly를 하려고 시도하는 순간, java version이 너무 낮다는 메시지가 나온다. CentOS 6.7 상태에서 가장 최신의 java는 1.7.0_101인데, canu는 1.8 이상을 요한다. java, python, gcc 등 프로그램 개발과 실행에 매우 중요한 툴들이 CentOS에서는 너무 낮은 버전이 깔려 있어서 이를 해결하는 방법은 인터넷에 흔하게 널려있다. 해결의 핵심은 기존에 깔린 것을 완전히 삭제하고 윗 버전을 설치하는 것이 아니라, 예전 버전과 상위 버전을 같이 설치해 두고 필요에 따라 환경을 전환해서 사용하는 것이다. 예를 들어서 python에서는 virtualenv를 쓰는 것과 같은 방법이다. Java에서는 alternatives라는 것을 이용한다.

이제서야 본 글의 제목에 어울리는 글을 쓰게 되었다. 참고한 사이트는 다음과 같다.

How to Install Java 8 (JDK/JRE 8u91) on CentOS/RHEL and Fedora

64비트 CentOS에서는 다음과 같이 하면 된다.

# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz"
# cd jdk1.8.0_91/
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_91/bin/java 2
# alternatives --config java
4 개의 프로그램이 'java'를 제공합니다.
  선택    명령
-----------------------------------------------
*  1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   3           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
 + 4           /opt/jdk1.8.0_91/bin/java
현재 선택[+]을 유지하려면 엔터키를 누르고, 아니면 선택 번호를 입력하십시오: 4
이러면 끝이다.

Canu의 첫 실행은? 실패다! 1000 bp 미만의 short read가 너무 많다고 불평을 한다. Mira에서는 32760 bp를 넘는 read가 있다고 뭐라 하고, canu에서는 짧은 read가 너무 많다고 불평을 하고... 짧은 read를 제거하는 스크립트를 또 하나 만들어야 되겠다. 어쩌면 miraconvert에 이를 처리하는 기능이 숨어있는지도 모른다.

차량 시거 잭에 대용량 캐패시터를 달아서 블루투스 수신기로 유입되는 엔진 잡음을 줄일 수 있을까?

오늘 오후가 되면 IC114에 주문한 정전압 레귤레이터 7809가 배송될 것이므로 이를 이용하여 완벽한 차량용 DC 9V 공급장치를 만들 수 있다. 이에 앞서서 만약 대용량 전해 캐패시터를 전원에 병렬로 연결하면 잡음이 얼마나 줄어들지를 실험해 보기로 하였다.


개조하다가 완전히 망가뜨린 LM1875 앰프 보드에서 떼어낸 4700 uF 전해 캐패시터를 연결하였다. 약방의 감초 격으로 0.1 uF 마일러 캐패시터도 곁들였다. 결과는 어떤가? 엔진 회전수에 비례하는 '윙~'하는 잡음이 개조 전에 비해서 아주 약간 줄어든 느낌은 있는데, 9V 배터리를 사용한 완벽한 상태에 비교할 수준은 못된다.

7809 IC에 모든 희망을 걸어본다.


2016년 5월 18일 수요일

블루투스 수신기를 차량 오디오에 연결할 때 발생하는 엔진 잡음 줄이기

지난 4월에 구입한 블루투스 리시버 겸 class D(TDA7292P) 앰프 보드의 증폭부가 초기에 고장이 나서 이를 블루투스 리시버 용도로만 쓰기 위해 차량용 오디오의 AUX 단자에 연결을 하였다. 12V 전원은 시거 잭에서 공급받았다. 운전을 하면서 휴대폰에서 송신하는 음악을 재생해 보니 자동차 엔진의 회전수에 비례하는 '윙-'하는 잡음이 같이 재생되는 것을 발견하였다. 발생 원인은 무엇이고, 어떤 경로를 통해 오디오로 유입되는 것일까? 인터넷에서 검색을 해 보니 엔진의 알터네이터에서 발생하는 교류 잡음이 전원을 통해 유입되는 것이라고 한다. 블투투스 수신기가 무선으로 잡아낼 수준의 전자기파 잡음은 아니라는 뜻이 되겠다.

이를 확인하기 위해서 9V 건전지를 연결하여 보았다. 이 앰프 보드(더 이상 앰프는 아니지만)의 작동 전압 범위는 8-25V이므로 당연히 정상적으로 작동을 해야 한다.


가정용 오디오를 이용해서 블루투스 수신 기능이 잘 작동함을 확인하였다. 전원 어댑터를 연결할 때 느껴지던 미세한 잡음도 들리지 않았다. 오늘 아침에는 실제로 차량 오디오에 출력선을 연결한 뒤 휴대폰에서 블루투스 신호를 쏘아 보았다. 이전보다 매우 깨끗하게 출력이 되었으며, 엔진 회전수에 비례하는 잡음도 들리지 않았다.

이 수신기를 차량 내에서 건전지로만 작동시킬 수는 없으니, 시거잭의 DC 전원을 되도록 깨끗하게 만들어서 연결하는 일이 남았다. 가장 간단한 방법은 9볼트를 출려가는 3단자 레귤레이터를 중간에 연결하는 것이다. IC114에서 '7809'로 검색하면 레귤레이터 부품뿐 아니라 방열판과 절연지까지 붙여서 일체화시킨 것을 판매한다(검색 결과 링크). 이를 구입하여 입출력 단자 가까이에  0.1μF발진 방지용 캐패시터를 병렬로 연결하여 사용하면 된다. 간단한 구성 사례를 보자. 아래 그림을 실은 원본 사이트에서는 LM317T를 이용한 가변 전압 변경 회로도 소개하고 있다.

출처: http://www.electronics-tutorials.ws/blog/variable-voltage-power-supply.html

이 보드의 앰프 기능에 문제가 생긴 것을 판매자에게 항의해서 일부를 환불받은 것으로 초소형-초저가의 TDA2030A 앰프 보드를 주문했었다. 거의 3주가 다 지나서 어제야 배송이 완료되었다. 이 보드는 중국의 LC Technology라는 곳에서 만든 것으로 보드 하나에서 한 채널을 출력한다. 공급 전압 범위는 DC 단전원으로 6-12V, 최대 18W 출력이 가능하다. 웹사이트를 방문해 보니 정말 다양한 물품들이 있다.


이것을 마무리하는 것을 마지막으로 당분간 오디오 DIY는 쉬기로 한다. 그런데 이 초소형 앰프 모듈을 가지고 무엇을 하지?