


제 프로필을 본 사람이라면 제가 시계를 좋아하고, 제가 만든 시계 몇 점을 공개했다는 것을 알 것입니다.
이 시계의 기본 아이디어는 LED를 사용해 아날로그 시계를 재현하는 원형 시계입니다.
마이크로프로세서는 사용하지 않습니다.
제가 학교 마지막 학년이던 1972년에는 TTL이 새로운 기술이었고, 그때 닉시관과 TTL을 사용해 처음으로 시계를 만들었습니다. 이 시계는 그때의 오리지널 TTL 제품군을 변형해 사용합니다. 초·분·시를 표시하는 원형 구조로, 아날로그 시계를 닮았습니다.
제작 난이도
여기서 말하는 것은 SMD 부품이 없다는 뜻이며, 이에 대해서는 뒤에서 언급할 단서가 하나 있습니다. 또한 제작이 쉽다고 해서 빨리 만들 수 있다는 뜻은 아니며, SMD 부품이 없다는 뜻입니다. SMD 부품을 사용하는 것이 불가능하지는 않다는 것을 알고 있지만, 저는 구식 방식에 익숙합니다. 부품은 240개가 넘고 납땜 지점은 820곳이 넘습니다.
특이하거나 비싼 부품은 없습니다.
제목은 1979년 슈퍼트램프의 노래에서 따왔지만, 이 시계에서 오디오가 재생되지는 않습니다. ‘Analogical Clock’이라고 부를까 하는 생각도 했습니다.
구성
작동하는 전자 회로를 보여 주는 시연이 되도록 부품과 회로 기판이 보이게 했습니다.
제가 프로젝트에 어떻게 접근하는지 알 수 있도록 제 사고 과정을 설명하겠습니다. 특별한 도구는 필요하지 않다고 생각합니다. 끝이 가는 일반적인 납땜 인두, 0.7mm 납땜용 납, 그리고 저는 여전히 60/40 납땜용 납을 사용합니다. 롱노즈 플라이어와 니퍼도 필요합니다. 오실로스코프가 있으면 유용하지만 필수는 아니며, 멀티미터/전압계는 필요합니다.
이 작업은 아직도 ‘진행 중’입니다. 시계는 완성되어 작동하지만 더 개선할 여지가 있습니다. 이 글도 더 나아질 수 있지만, 일단 공개하며 부족한 점과 개선 방법에 대한 제안을 환영합니다.
74HC00 2 입력 NAND x 1
74HC04 헥스 인버터 x 3 * *
74HC153 데이터 셀렉터 x 18
74HC164 8비트 비트 시프트 레지스터 x18
CD4013D D 플립플롭 x 1
CD4060 리플 카운터 x 1
ICL7673 배터리 백업 스위치 x 1
IRF9024 모스펫 x 2
1N914 다이오드 x 3
5mm LED x 120
5mm 바이 컬러 LED x 12
벅/부스트 모듈 1개(사진 참조)
LiPo 충전기 모듈 1개 (사진 참조)
캡 세라믹 22pf x 2
캡 세라믹 100nF 텍스트 참조
캡 가변 10pF 텍스트 참조
전해 커패시터 텍스트 보기
전해 커패시터 470uF x 1
저항기 10M x 1
저항 150K x 1
저항기 10K x 2
저항 47K x 8
저항 100K x 1
저항 220K x 1
저항 330K x 1
저항 470R x 14
저항 580R x 12
스위치 촉각 x 2
스위치 슬라이드 x 2
크리스탈 32.768kHz x 1
DIP 소켓 8핀 x 1
DIP 소켓 14핀 x 23
DIP 소켓 16핀 x 2
LiPo 배터리 3.7v x 1
PCB x 1
구성 요소는 '텍스트 참조'. 타이밍과 전원 켜기 재설정이 100% 만족스럽지 않아서 아직 개선 중입니다. 만족스러워지면 업데이트하겠습니다.
일부에게는 충격 공포. 거의 모든 구성 요소는 AliExpress에서 제공했습니다. 알리익스프레스에서 어떤 공짜나 할인도 받지 않았습니다. 제가 자주 사용하는 구성 요소의 출처로만 언급했습니다. 일부 구성 요소는 CPC Farnell '다른 공급 업체를 사용할 수 있습니다'에서 소스를 제공했습니다.
주전원 주파수와 무관한 간단한 전원 입력.
시계 회로 원리는 제가 직접 고안한 것이 아니라 '72 LED 시계'라는 기사에서 영감을 얻었습니다. 그러나 초를 포함하도록 확장했습니다. Elektor 매거진도 유용합니다. 정규 교육과 27년간 방송국에서 전자 엔지니어로 일한 경험, 그리고 71년간의 인생 경험도 도움이 되었습니다.
시간 기준은 표준입니다.
시간 설정은 빨리 감기/정지로 간단하게 설정할 수 있습니다.
로직 칩, 74HCxxx 또는 CDxxx, 약간 생소 할 수있는 IC 1 개, MOSFET 몇 개, 많은 LED, 커패시터 몇 개, 저항기 몇 개 및 바퀴를 재발 명하지 않기 위해 몇 개의 모듈.
.
프로젝트를 블록으로 나누고 어떻게 작동하는지 살펴봅시다.
전원 공급 장치
타임베이스
시계 로직
전원 켜기 리셋
조정



이 아이디어는 서랍 속에 넣어두어도 쉽게 구할 수 있는 표준 휴대폰 충전기와 마이크로 또는 C USB 타입 케이블을 사용하는 것이었습니다. 전원 공급 장치도 배터리 백업이 가능해야 정전으로 인해 전원이 잠시 중단되더라도 시계가 계속 시간을 표시할 수 있습니다. 저는 리튬 이온 배터리를 사용하기로 결정했고, 이미 게임 컨트롤러에 사용되는 배터리를 가지고 있었습니다. 슬림하고 접착식 후크 앤 루프 테이프로 보드 뒷면에 딱 맞기 때문에 완벽합니다. 하지만 3.7V라면 어떤 것이든 괜찮을 것입니다. 주위를 둘러보면 입력에 마이크로 또는 C USB 소켓이 있고 단일 셀을 충전하는 멋진 모듈이 있습니다. 또한 별도의 부하 출력도 있습니다. 두 가지를 제외하고는 모두 아주 좋습니다. 리튬 이온 셀은 최대 4.2v에 불과하고 로직에 전원을 공급하려면 5V가 필요하며 배터리 충전과 동시에 부하를 가질 수 없습니다.
충전/부하 문제를 극복하는 방법에 대해서는 인터넷에 많이 나와 있으므로 여기서는 다루지 않겠습니다. 그러나 일반적으로 설명하는 한계를 극복하는 방법과는 달리 저는 소스 선택기 IC인 ICL7673을 사용했습니다.
배터리 백업 IC는 출력에서 약 30mA만 공급할 수 있지만 두 개의 p채널 MOSFET이 전력 요구 사항을 처리합니다. 이 상태 출력은 2개의 입력 중 전압이 가장 높은 입력에 따라 낮아지는데, 2개의 MOSFET 중 하나를 선택하기 위해 MOSFET은 들어오는 5V USB 또는 배터리 중 하나를 공급받습니다. 따라서 선택기 IC8에 USB 공급 또는 배터리가 공급되고 적절한 MOSFET이 켜집니다. MOSFET의 드레인은 함께 연결되어 나머지 회로에 전원을 공급하기 위해 전압을 5V로 설정하는 부스트 모듈에 공급됩니다. 부스트 모듈을 주문할 때 잘못 주문해서 벅/부스트 버전을 받았습니다. 따라서 그에 따라 PCB를 설계해야 했습니다. 하지만 제가 사용하려고 했던 모듈을 위한 조항도 있습니다.
회로에서 모든 전원을 제거하고 배터리도 분리할 수 있도록 2개의 스위치가 포함되어 있습니다. SMD는 없다고 했잖아요. 한 가지 부품인 ICL7673은 스루홀로 구하기가 점점 더 어려워지고 있습니다. 그러나 SOPxxxx로 사용할 수 있습니다. 브레이크 아웃 보드와 함께 SMD를 사용할 수 있습니다.

시계이기 때문에 시간 기준이 필요했고 선택할 수 있는 옵션이 다양했습니다. 원래의 컨셉을 염두에 두어야 했습니다. 마이크로프로세서 또는 프로그래밍 없음
전원 주파수. 특정 시간에는 주 주파수가 약간 벗어날 수 있지만 시간이 지나면 충분히 정확합니다. 그러나 전 세계에는 60Hz와 50Hz의 두 가지 주 주파수가 있으므로 회로는 두 가지 주파수에 모두 대응해야 합니다. 또한 정전이 발생하면 최소한 시계가 멈추고 최소한 시간을 완전히 잃지 않도록 준비할 수 있는 것은 시계가 멈추는 것뿐입니다. 그러나 전원이 복구되면 시계는 느려질 것입니다.
그리고 오래된 555 타이머가 있습니다. 특별히 정확하지는 않았습니다.
크리스탈과 디바이더 회로는 매력이 있었습니다. 잘 입증 된 회로. 표준 부품. 또한 시계의 다른 부분을 살펴보면 시간을 설정하기 위해 다양한 주파수를 공급하는 데 도움이됩니다.
회로에서 볼 수 있듯이 이것은 32.768KHz 크리스탈과 부하 커패시터 등을 갖춘 표준 CD4060입니다. 이 유형의 오실레이터는 칩에서 3개의 주파수(2 4 및 8Hz)를 가져오는 것으로 다른 곳에서 여러 번 설명했습니다.
2Hz는 CD4013으로 공급되어 1Hz로 더 나눈 다음 데이터 선택기인 74HC153으로 공급됩니다. 데이터 선택기에는 4Hz와 32Hz도 공급됩니다.

클럭의 원리는 8개의 74HC164 IC로 구성된 60비트 길이의 시프트 레지스터에 '1'을 넣는 것입니다. 이 1은 60에 도달하여 처음으로 돌아올 때까지 1Hz의 속도로 시프트됩니다. 또한 1비트로 로드된 또 다른 60비트 시프트 레지스터도 증가합니다. 이것은 다시 60번 시프트되어 처음으로 돌아오고, 다시 처음으로 돌아올 때까지 12비트에 불과한 세 번째 시프트 레지스터를 시프트합니다. 따라서 첫 번째 레지스터는 최대 60(초)까지 카운트하고 완료되면 다음 레지스터(분)를 푸시하고 다음 레지스터(시간)를 푸시합니다. 분 레지스터가 완료되면 시간 레지스터를 이동하여 계속 진행합니다. 12시간 시계입니다.
시프트 레지스터의 출력은 시계를 형성하도록 배열된 LED를 구동합니다. 음극은 한 번에 하나의 LED만 켜지므로 레지스터의 각 뱅크에 대해 모두 함께 연결됩니다. 시간 레지스터는 예외입니다. 출력은 인버터 74HC04와 LED에 모두 공급됩니다. 이러한 배열로 인해 각 LED에는 자체 부하 저항이 있습니다. 직접 연결은 바이 컬러 LED의 한 색상으로, 반전된 출력은 바이 컬러 LED의 다른 절반으로 공급됩니다. 이렇게 하면 실제 시간을 표시하는 LED를 제외한 모든 시간 LED가 켜지고 색이 바뀝니다.

이미 설명했듯이 1은 2개의 긴 시프트 레지스터에 로드되므로 이를 정렬해야 합니다. 또한 전원을 켜면 시프트 레지스터를 리셋하여 이 1만 존재하도록 해야 합니다.
핀 9의 모든 시프트 레지스터에 0이 적용됩니다. 동시에 NAND 게이트는 핀 8의 클럭 전환을 중지합니다. 또한 핀 1의 데이터 핀에 1이 설정됩니다. 리셋이 끝나면 핀 8에 높은 클럭 펄스가 적용되어 1을 로드합니다. 타이밍은 인버터의 입력에 제시된 RC 타이밍 회로로 수행된다는 점에 유의하세요. 이렇게 하면 아날로그 전압 감쇠 또는 빌딩이 디지털 1 또는 0으로 바뀝니다.
전원이 인가되면 분 및 시 레지스터의 첫 번째 단계에 단일 "1" 비트가 로드됩니다. 이를 위해 순간적인 로우 리셋 신호가 모든 레지스터(핀 9)로 전송되고, 분 레지스터의 핀 8에서 클록 전환을 차단하기 위해 NAND 게이트가 작동합니다. 동시에 핀 1에서 분 및 시 레지스터의 데이터 입력 라인에 높은 레벨이 적용됩니다. 리셋 신호가 끝나면 분 레지스터의 1단계에 높은 레벨을 로드하는 단일 포지티브 진행 클록 펄스(핀 8)가 생성됩니다. 핀 3에서 첫 번째 스테이지 출력의 상승 에지는 시를 전진시키고(핀 8에서), 단일 비트도 시 레지스터에 로드됩니다.
앞서 1Hz에서 '1'을 시프트하는 방식으로 시계가 작동하는 원리를 살펴보았습니다. 그러나 시프트 레지스터에는 실제로 앞서 언급한 데이터 선택기 IC인 74HC153에서 데이터가 공급됩니다. 이 IC에는 네 개의 입력이 있으며, 각각 무입력, 1Hz 펄스, 2Hz 펄스, 32Hz 펄스가 공급됩니다. 두 개의 선택 입력이 어떻게 설정되어 있는지에 따라 출력이 결정됩니다. 따라서 기본 설정인 0 0은 1Hz이고, 0 1은 무입력 또는 시계 정지, 1 0은 2Hz, 1 1은 16Hz입니다.
적절한 버튼을 누르면 시계를 멈추거나 다른 속도로 작동시킬 수 있습니다. 푸시 버튼에는 디바운싱 처리가 되어 있지 않아 LED가 이따금 이상하게 건너뛸 수 있습니다. 하지만 추가되는 부품과 필요한 공간을 고려하면 이 정도는 감수할 수 있다고 생각했습니다. 자주 발생하는 일은 아닙니다.

무엇을 할 것인지 결정한 후 다음 단계는 작동하는지 확인하는 것이었습니다.
브레드보드에 축소된 버전의 시계를 제작했습니다. 이를 통해 전원 공급 장치와 배터리 백업이 작동하는지 확인했습니다. 시간을 조정하는 방법과 마찬가지로 로직도 점검했습니다.
완전한 시계를 이렇게 만들려면 엄청나게 복잡하기 때문에 2단계만 반제품으로 만들었습니다. 모두 작동했지만 제가 발견한 것은 브레드보드가 논리 회로의 왕이 아니며 노크가 아주 짧은 시간 동안만 전선을 끊을 수 있고 모두 실패할 수 있다는 것이었습니다. 심지어 '부분 시계'를 온실에 두어 방해받지 않고 점검할 수 있도록 했습니다.
PCB 레이아웃 소프트웨어의 회로도 부분을 사용하여 완전한 설계까지 모든 것이 잘 진행되었습니다.



브레드보드에서 개념을 입증한 다음 단계는 인쇄 회로 기판을 만드는 것입니다.
저는 DesignSpark PCB를 사용합니다. 이 소프트웨어는 무료이고 사용에 제한이 없으며 지속적으로 업데이트되고, 매우 유용한 커뮤니티 포럼을 갖추고 있고, 업계 표준 Gerber 파일을 생성할 수 있습니다. 회로도와 보드 레이아웃의 모든 이미지는 이 소프트웨어의 스크린샷입니다. 저는 설계할 때 검은색 배경을 사용하기로 했습니다.
회로도를 그린 후 라이브러리에 없는 몇 가지 부품과 모듈을 처음부터 직접 만들어야 했지만, 몇 번만 더 클릭하면 PCB 레이아웃이 생성됩니다. 처음에는 매우 기본적인 형태지만, 시간이 지나면 형태가 잡히기 시작합니다. 부품은 시계처럼 원형으로 배치하고, 보기에도 좋게 배치했습니다. 그런 다음 자동 배선을 실행했습니다. 이 배선은 완벽하지 않아 일부 에어 와이어가 배선되지 않았습니다. 이 문제는 수동으로 해결했습니다. 소프트웨어가 다소 이상한 배선 결정을 몇 가지 내리기도 했는데, 이 역시 수동으로 수정했습니다. 저는 보기 좋은 것을 좋아하므로 일부 배선은 보기 좋게 조정했습니다. PCB 설계 전문가는 아니어서 전체 과정에 시간이 꽤 걸렸고, 경험이 있는 사람이라면 저보다 더 잘 만들 수 있으리라 확신합니다. 모든 것이 마음에 들었을 때 Gerber 파일을 생성하고 제작 업체에 보낼 수 있도록 압축했습니다. 이 모든 작업에는 꽤 오랜 시간이 걸렸습니다.
현지 업체를 이용해 보드를 제작할 수 있으면 좋겠지만 비용이 너무 많이 들어서, 중국 업체를 이용할 수밖에 없었고 제 경우에는 JLCPCB를 선택했습니다. 이 업체를 몇 번 이용해 보았으며 항상 만족했습니다. 빠르고 비용이 저렴하면서도 제가 제작하는 것에 걸맞은 품질을 갖추고 있습니다. 저는 표준 녹색에 흰색 실크스크린을 선택했습니다. 취향에 따라 선택할 수 있는 다양한 옵션이 있습니다. 보드는 24cm x 24cm입니다.
DesignSpark PCB를 공급하는 RS나 JLCPCB로부터 어떠한 대금이나 할인도 받지 않았다는 점을 알려 둡니다. 그리고 물론 이 시계를 만들고 싶다면 자신이 선호하는 소프트웨어와 제작 업체를 사용해도 됩니다.



특히 PCB는 제가 직접 만든 제품이고 수천 마일 떨어진 거대한 공장에서 저를 위해 무언가를 만들었다는 사실에 매료되기 때문에 패키지를 받는 것은 항상 신나는 일입니다. 우연찮게도 AliExpress의 패키지가 같은 날 도착했습니다!
첫 번째 작업은 모든 것이 맞는지 확인하는 것이었습니다. 일부 품목, 스위치, 모듈의 PCB 풋프린트를 정의해야 했습니다. 첫 번째 오류. 스위치용 패드의 구멍이 너무 작았습니다. 약간의 파일링이 필요합니다. 또한 바이 컬러 LED의 구멍 간격을 조정해야 합니다. 보드를 더 주문할 경우를 대비하여 PCB 디자인이 변경되었습니다.


모든 부품을 한꺼번에 PCB에 배치하지 않고, 가능한 한 단계적으로 제작했습니다. 회로의 일부는 다른 부분에 의존하므로 완전히 완성될 때까지 제대로 작동하지 않을 수도 있기 때문입니다. 먼저 전원 공급 장치부터 작업했습니다. LiPo 충전기 모듈은 전면에 케이블이 늘어지지 않도록 뒷면에 배치했습니다. 돌이켜 보면 전면의 한쪽 구석에 배치할 수도 있었을 것입니다. 케이블의 두께를 수용할 수 있도록 보드에서 띄워 배치해야 합니다. 배터리는 연결하지 않고 나머지 회로만 연결했습니다. 전원을 켠 후 벅/부스트 모듈의 출력 전압을 5v로 설정했습니다.
오실레이터를 제작하고 정상적으로 작동하는지 확인했습니다. 이때 오실로스코프가 유용하지만, 3번 핀의 전압계 값이 깜빡이면 모든 것이 정상임을 나타냅니다. 그런 다음 1번 핀에서 추가 분주기 CD4013을 확인했습니다.
그다음에는 전원 켜기 리셋 IC와 부품, 첫 번째 시프트 레지스터와 8개의 LED를 설치했습니다. 모든 것이 잘 작동하면 각 시프트 레지스터와 8개의 LED를 차례로 추가하고 확인하는 작업을 반복하여, 모두 설치하고 정상적으로 작동하는지 확인했습니다.
그런 다음 자체 접착식 후크 앤 루프 테이프로 배터리를 PCB 뒷면에 부착했습니다.
단, '조정 및 변경' 섹션을 참조하세요.

이것은 '도중에' 발견된 문제에 관한 것입니다.
12시간이 지난 후 시간 LED가 바뀔 때마다 두 번 트리거되고 2개의 LED가 켜지는 것으로 나타났습니다. 그 다음 12시간 동안은 3개의 LED가 켜지는 식이었습니다. 이는 74HC164의 1번 핀에서 7번 핀까지 100nF 세라믹 커패시터를 추가하여 치료했습니다. 회로도와 PCB가 불일치할 수 있으므로 회로도를 변경하지 않았습니다. PCB를 변경하면 라우팅을 크게 변경해야 하고 이미 여기까지 오는 데 많은 시간을 소비했기 때문에 변경할 생각이 없었습니다.
시계가 빠르게 작동하는 것으로 밝혀졌고8 회로가 상당히 표준적인 것으로 생각했기 때문에 머리를 많이 긁적였습니다. 저항 2개를 낮췄지만 변화는 없었습니다. 크리스탈이 변경되었지만 변경 사항은 없습니다. 이제 수정되었습니다. '업데이트'를 참조하세요.
완성된 보드의 전원을 켜고 시간을 조정한 후 안정적으로 작동하는지 확인하기 위해 자리를 떠났습니다.
현재 이메일에 허용되는 파일 크기의 제한 때문에 시계가 작동하는 동영상을 컴퓨터로 보낼 방법을 찾지 못했습니다. 이 문제를 해결하려고 노력 중입니다.
이제 제 마음이 어떻게 작동하는지 알 수 있습니다. 하고 싶은 일이 있습니다. 목표를 정의합니다. 계획하고, 테스트하고. 제작. 버그 제거 및 마무리. 최종 결과는 상당히 복잡할 수 있지만 섹션으로 나누면 관리하기 쉬워집니다,
부품별로 보면 제작 비용이 그리 나쁘지는 않았지만 PCB 비용도 꽤 들었고, 중국에서 배송하는 운송비 때문에 전체 비용이 상당히 증가했습니다. 초기 설계와 제작, 테스트 등에 상당한 시간을 투자했습니다. 그래서 최종 결과물에는 어느 정도 가치가 있다고 느꼈습니다. 케이스 비용을 아끼다가 지금까지의 투자를 모두 헛되게 만드는 것은 안타까운 일입니다.
동네 액자 가게에 가서 액자를 골랐습니다. 몰딩뿐만 아니라 유리를 결정하는 데도 시간이 좀 걸렸습니다. 선택지는 3가지였습니다. 일반 유리, 반사 방지 유리, 초투명 반사 방지 유리였습니다. 일반 유리도 꽤 괜찮았습니다. LED가 확산되지 않아 부품을 상당히 잘 볼 수 있었습니다. 확산 유리는 좋지 않았습니다. LED가 확산되어 부품을 볼 수 없었습니다. 초투명 반사 방지 유리는 완벽했습니다. 유리가 있다는 것을 전혀 알 수 없을 정도였습니다. 문제는 이 유리가 일반 유리보다 8배나 비쌌다는 것입니다. 결국 초투명 유리를 사용하기로 했고, 그 결과 총비용은 £90에 조금 못 미쳤습니다.
전원은 USB 케이블을 통해 공급되므로 케이블이 통과할 수 있도록 케이스에 구멍을 뚫어야 했습니다. 시계 내부에는 짧은 연장 케이블을 사용하고 그 끝부분만 케이스 밖으로 나오게 했습니다. 이렇게 하면 전원 공급 장치까지 연결하는 USB 케이블의 길이를 필요한 만큼 정할 수 있습니다. (재정적인 제약으로 인해 이 단계는 아직 완료되지 않았습니다.)
시계가 빠르게 작동하는 문제 때문에 한참을 고민했습니다. 표준 회로입니다. 오실레이터를 구성하는 부품에서 플럭스를 제거하기까지 했습니다. 신뢰할 수 있는 다른 공급처에서 새 수정과 커패시터를 주문했지만 모두 소용이 없었습니다. 결국 부하 커패시터 중 하나의 용량을 두 배로 늘려 오실레이터를 크게 벗어나도록 조정해 보기로 했습니다. 예상과 달리 이제 시계가 완벽하게 작동합니다. 현재로서는 이를 설명할 수 없습니다.