모든 디지털 시계에는 시간을 추적하기 위해 내부에 크리스탈이 있습니다. 이 크리스탈은 시계뿐만 아니라 모든 실시간 컴퓨팅 시스템에도 존재합니다. 이 크리스탈은 타이밍 계산에 필요한 클럭 펄스를 생성합니다. 더 높은 정확도와 주파수를 위해 클럭 펄스를 얻는 다른 방법이 있지만 가장 선호되는 방법은 크리스털을 사용하여 시간을 추적하는 것입니다. 여기에서는 DS3231 RTC IC를 사용하여 Atmega16 기반 디지털 벽시계를 구축합니다. DS3231 RTC는 내부에 매우 정확한 크리스털이 있으므로 외부 크리스털 발진기가 필요하지 않습니다.
이 디지털 시계 프로젝트 에서는 0.8 인치의 공통 양극 7 세그먼트 디스플레이 10 개를 사용하여 시간과 날짜를 표시합니다. 여기서 7 개의 세그먼트 디스플레이는 시간, 분, 날짜, 월 및 연도를 표시하는 데 사용됩니다. 또한 PCB 설계에는 초와 온도를 표시하는 옵션이 있으며 이는 더 많은 디스플레이 장치를 추가하여 표시 할 수 있습니다.
필요한 구성 요소
- ATmega16 AVR 마이크로 컨트롤러
- DS3231 RTC IC
- 일반 양극 0.8 인치 Seven Segment 디스플레이 (일반 크기 디스플레이 (0.56 인치)보다 더 큼)
- 누름 단추
- 버튼 셀 3v
- 7805 전압 조정기
- 1000uf 커패시터
- 부저 (옵션)
- 트랜지스터 BC547 및 BC557
- 10uf 커패시터
- 100 Ohm 저항
- 1k 저항
- 10k 저항
- PCB 보드
- 점퍼 와이어
- Burgstips
- 전원 어댑터
사용자는 Hex를 생성하기 전에 컴파일러에서 구성해야하는 Atmega32를 사용할 수도 있습니다.
회로도 및 설명
이 디지털 벽시계 회로에는 두 부분이 있습니다. 하나는 5 개의 서로 다른 PCB 보드에 5 쌍의 7- 세그먼트 가있는 디스플레이 부분 이고 다른 하나는 RTC 칩에서 시간을 가져 와서 데이터와 시간을 보내는 제어 장치 부분 입니다. 7 세그먼트 디스플레이. 10 개의 7 개의 세그먼트 디스플레이를 사용했기 때문에 각 디스플레이를 별도의 IO 포트에 연결할 수 없습니다. 따라서 여기서 멀티플렉싱 기술은 더 적은 수의 마이크로 컨트롤러 핀을 사용하여 여러 개의 7 개 세그먼트를 연결하는 데 사용됩니다.
7 세그먼트 디스플레이의 LED 핀 a, b, c, d, e, f, g, h는 atmega16 병렬의 PORTB에 연결됩니다. 여기에서는 7 개의 세그먼트 디스플레이 10 개를 사용 했으므로 PORTD, PORTA 및 PORTC에 연결된 10 개의 제어 핀이 필요합니다.
내부 크리스탈이있는 RTC DS3231은이 칩이 I2C 통신에서 작동하기 때문에 PORTC의 SDA 및 SCL 핀에 연결됩니다. 이 칩의 인터페이스 방식은 DS1307과 동일합니다. Arduino, Raspberry Pi 및 8051 MCU와 함께 DS1307을 사용했습니다. DS3231 및 DS1307 모두에 동일한 코드를 사용할 수 있습니다.
2 개의 10k 풀업 저항이 SDA 및 SCL 라인에 연결됩니다. 3v 코인 셀은 RTC 칩에 전원을 공급하는 데 사용되어 주 전원이 꺼져 있어도 시간을 추적합니다. 전원이 다시 돌아올 때마다 7 세그먼트 디스플레이에 시간이 표시되기 시작합니다. 이제 PORT A에 시간을 설정하기위한 몇 가지 푸시 버튼이 있습니다. 전체 과정은 마지막에 제공된 비디오에서 설명합니다. 5v 전압 조정기는 입력 전압을 5v로 변환하는 데 사용됩니다. 모든 연결은 아래 회로도에 나와 있습니다.
하나의 디스플레이 보드에는 2 개의 7 개 세그먼트 디스플레이와 2 개의 LED가 사용됩니다. 여기에는 시간과 분 (HH-MM)을 표시하고 DD-MM-YY로 날짜를 표시하는 5 개의 다른 디스플레이 보드가 있습니다.
디지털 시계를위한 PCB 설계 및 제작
이 Atmega16 기반 벽시계 프로젝트 를 위해 두 개의 PCB를 설계했습니다. 하나는 프로젝트의 모든 작업을 제어하는 데 사용되는 제어 장치 용이고 두 번째 부분은 7 개의 세그먼트 디스플레이에 시간과 날짜를 표시하기위한 것입니다. 디스플레이 부분은 5 쌍의 0.8 인치 7 세그먼트 디스플레이를 포함합니다. 따라서 5 개의 조각을 조립하면 완전한 디지털 시계가됩니다. 7- 세그먼트 디스플레이를 다중화하기 위해 5 개의 PCB의 데이터 라인은 제어 장치의 동일한 포트에 연결되고 제어 라인은 제어 장치의 다른 핀에 연결됩니다.
다음은 두 개의 7 개 세그먼트 디스플레이로 구성된 한 디스플레이 보드의 PCB 레이아웃에 대한 상단 및 하단보기입니다.
아래는 제어 장치 PCB 의 상단 및 하단보기입니다.
여기에 두 보드에 대한 Gerber 파일이 첨부되어 있습니다.
- Atmega16 기반 제어 장치 용 Gerber 파일
- Seven Segment 디스플레이 보드 용 Gerber 파일
PCBGoGo를 사용하여 PCB 주문
많은 PCB 제조 서비스가 온라인으로 제공되지만 이전에 다른 프로젝트 중 하나에서 PCBGoGo를 사용했기 때문에 다른 공급 업체에 비해 저렴하고 번거롭지 않습니다.
PCBGoGo에서 PCB를 주문하는 단계는 다음과 같습니다.
1 단계: www.pcbgogo.com에 접속하여 처음이라면 가입하십시오. 그런 다음 PCB 프로토 타입 탭에서 PCB 치수, 레이어 수 및 필요한 PCB 수를 입력합니다.
2 단계: 지금 견적 버튼 을 클릭하여 진행 합니다. 트랙 간격 등을 사용하는 재료와 같이 필요한 경우 몇 가지 추가 매개 변수를 설정할 수있는 페이지로 이동합니다. 그러나 대부분 기본값은 정상적으로 작동합니다. 여기서 고려해야 할 유일한 것은 가격과 시간입니다. 보시다시피 빌드 시간은 2 ~ 3 일이며 PSB 비용은 5 달러입니다. 그런 다음 요구 사항에 따라 선호하는 배송 방법을 선택할 수 있습니다.
3 단계: 마지막 단계는 Gerber 파일을 업로드하고 결제를 진행하는 것입니다. 프로세스가 원활하게 진행되도록 PCBGOGO는 결제를 진행하기 전에 Gerber 파일이 유효한지 확인합니다. 이렇게하면 PCB가 제작에 친숙하고 약속 된대로 도달 할 수 있음을 확인할 수 있습니다.
이제 PCBGoGo는 Gerber 파일을 검토하는 데 약 10 분에서 1 시간이 걸립니다. 검토가 완료되면 결제를 진행할 수 있습니다.
PCB 조립
보드를 주문한 후 며칠 후에 깔끔하게 잘 포장 된 상자에 택배를 보내어 항상 PCB의 품질이 훌륭했습니다. 당신이 판단 할 수 있도록 아래 보드 사진을 몇 장 공유하고 있습니다.
납땜 봉을 켜고 보드 조립을 시작했습니다. 풋 프린트, 패드, 비아 및 실크 스크린이 완벽한 모양과 크기이므로 보드를 조립하는 데 문제가 없었습니다. 상자 포장을 풀고 10 분만에 보드가 준비되었습니다.
납땜 후 보드의 몇 가지 사진이 아래에 나와 있습니다.
디지털 시계 테스트
이 튜토리얼의 끝에 완전한 코드가 제공됩니다. 회로도에 표시된대로 PCB를 연결하고 코드를 Atmega16에 업로드하기 만하면됩니다. 10 개의 7 개 세그먼트 디스플레이에 시간과 날짜가 표시됩니다.
시간과 날짜는 아래의 비디오에 나와있는 것처럼 제어 장치에있는 4 개의 푸시 버튼을 사용하여 설정할 수 있습니다.