Arduino Nano의 LED 시계. 우리는 우리 손으로 Arduino에서 전자 시계를 만듭니다. Arduino의 준비된 시계

사진은 이 전체 시설을 관리할 프로그램을 디버깅하기 위해 제가 조립한 프로토타입을 보여줍니다. 브레드보드 오른쪽 상단에 있는 두 번째 아두이노 나노는 프로젝트에 속하지 않고 그대로 튀어나와 있으므로 주의할 필요가 없습니다.

작동 원리에 대해 조금 설명합니다. Arduino는 DS323 타이머에서 데이터를 가져와 처리하고 포토레지스터를 사용하여 조명 수준을 결정한 다음 모든 것을 MAX7219로 전송합니다. 그러면 Arduino는 필요한 밝기로 필요한 세그먼트를 밝힙니다. 또한 3개의 버튼을 이용하여 연, 월, 일, 시간을 원하는대로 설정할 수 있습니다. 사진의 표시기는 디지털 온도 센서에서 가져온 시간과 온도를 표시합니다.

제 경우의 가장 큰 어려움은 2.7인치 표시기에 공통 양극이 있다는 점입니다. 먼저 공통 음극이 있는 표시기용으로 설계된 max7219와 친구가 되어야 하고 두 번째로 문제를 해결해야 했습니다. max7219만으로는 제공할 수 없는 발광을 위해 7.2V가 필요하기 때문에 전원 공급 장치입니다. 한 포럼에서 도움을 요청한 후 답변을 받았습니다.

스크린샷의 해결 방법:


신호를 반전시키는 max7219 세그먼트의 출력에 마이크로 회로가 부착되고, 각 출력에 3개의 트랜지스터 회로가 부착됩니다. 이는 디스플레이의 공통 음극에 연결되어야 하며, 이는 또한 신호를 반전시키고 증가시킵니다. 전압. 따라서 우리는 공통 양극과 5V 이상의 공급 전압을 가진 디스플레이를 max7219에 연결할 수 있는 기회를 얻습니다.

테스트를 위해 하나의 표시기를 연결했는데 모든 것이 작동하고 연기가 나지 않습니다.

수집을 시작해 보겠습니다.

모든 것이 하나의 보드에 있는 비뚤어진 발로 분리된 버전의 점퍼 수가 엄청나게 많기 때문에 회로를 두 부분으로 나누기로 결정했습니다. 시계는 디스플레이 장치와 전원 및 제어 장치로 구성됩니다. 후자를 먼저 수집하기로 결정되었습니다. 심미주의자와 숙련된 라디오 아마추어 여러분께 잔혹한 부품 취급으로 인해 기절하지 마시기 바랍니다. 저는 LUT를 위해 프린터를 사고 싶지 않기 때문에 옛날 방식대로 합니다. 종이에 연습하고, 템플릿에 따라 구멍을 뚫고, 마커로 경로를 그린 다음 에칭합니다.

표시기 부착 원리는 켜짐과 동일하게 유지되었습니다.

편의를 위해 제작된 플렉시글래스 템플릿을 사용하여 표시기와 구성 요소의 위치를 ​​표시합니다.

마크업 프로세스







그런 다음 템플릿을 사용하여 올바른 위치에 구멍을 뚫고 모든 구성 요소를 시험해 봅니다. 모든 것이 완벽하게 맞습니다.

우리는 길을 그리고 에칭합니다.




염화제이철로 목욕하기

준비가 된!
제어 보드:


표시 보드:


제어 보드는 훌륭했고 디스플레이 보드의 트랙은 심각하게 소모되지 않았으며 고칠 수 있습니다. 이제 납땜할 시간입니다. 이번에는 SMD 처녀성을 잃고 회로에 0805 구성 요소를 포함했습니다. 최소한 첫 번째 저항기와 커패시터는 제자리에 납땜되었습니다. 제 생각에는 점점 더 나아지고 쉬워질 것 같아요.
납땜에는 제가 구입한 플럭스를 사용했습니다. 그것으로 납땜하는 것은 즐겁습니다. 이제는 주석 처리에만 알코올 로진을 사용합니다.

완성된 보드는 다음과 같습니다. 제어 보드에는 Arduino nano용 시트, 시계, 디스플레이 보드 및 센서(자동 밝기용 포토레지스터 및 디지털 온도계 ds18s20)에 연결하기 위한 출력과 조정 가능한 출력 전압이 있는 전원 공급 장치(대형용)가 있습니다. 7세그먼트 장치) 그리고 시계와 Arduino에 전원을 공급하기 위해 디스플레이 보드에는 디스플레이용 장착 소켓, max2719 및 uln2003a용 소켓, 4개의 대형 7세그먼트 장치와 여러 개의 점퍼에 전원을 공급하기 위한 솔루션이 있습니다.




후면 제어 보드

후면 디스플레이 보드:

끔찍한 smd 설치:


시작하다

모든 케이블, 버튼 및 센서를 납땜한 후 이제 모든 것을 켤 차례입니다. 첫 번째 출시에서는 몇 가지 문제가 드러났습니다. 마지막 큰 표시등은 켜지지 않았고 나머지는 희미하게 빛났습니다. 첫 번째 문제는 SMD 트랜지스터의 다리를 납땜하여 처리했고 두 번째 문제는 lm317에서 생성된 전압을 조정하여 처리했습니다.
살아있어!

초보자가 Arduino 보드를 사용하여 구축하는 첫 번째 프로젝트 중 하나는 시간을 유지하는 간단한 시계입니다. 기본적으로 이러한 시계는 Arduino에 연결된 RTC(Real Time Clock) 모듈을 기반으로 합니다. 오늘날 전자 부품은 시장에 나와 있습니다. 다른 모델정확도와 가격이 다양한 RTC. 일반적인 모델에는 DS1302, DS1307, DS3231이 포함됩니다.



하지만 RTC를 사용하지 않고도 Arduino에서 시계를 만들 수 있습니다. 특히 그러한 모듈을 구할 수 없는 경우에는 더욱 그렇습니다. 물론, 이 경우 정확도가 낮기 때문에 오히려 교육 프로젝트로 간주해야 합니다.


이러한 시계의 작동 원리는 매우 간단합니다. 이 Arduino 시계를 켤 때마다 아날로그 시계와 마찬가지로 현재 시간으로 설정해야 합니다. 그러한 시계를 귀하의 업무에 사용하지 않는 것이 확실히 좋습니다. 일상 생활재부팅 및 추가 구성 없이 오랫동안 활동을 수행할 수 있습니다. 장기간 작동 중에는 현재 시간과의 비동기화가 중요할 수 있기 때문입니다.


이 시계는 많은 부품이 필요하지 않기 때문에 일반 브레드보드에 조립할 수 있습니다. 여기의 주요 링크는 Arduino Uno 보드입니다. 시간을 표시하려면 16x2 LCD 디스플레이를 사용할 수 있습니다. 시간 설정을 변경하려면 두 개의 버튼(시간 및 분)을 연결해야 합니다. 버튼은 10KΩ 저항을 통해 Aduino에 연결됩니다. 디스플레이의 밝기를 변경하려면 10kOhm 전위차계가 필요합니다. Arduino Uno 보드에 대한 이러한 모든 구성 요소의 연결 다이어그램은 아래에 나와 있습니다.



이제 Arduino를 프로그래밍해야 합니다. LCD 화면에 시간을 표시할 수 있는 간단한 코드(스케치)는 다음과 같습니다.


#포함하다 LiquidCrystal LCD(12,11,5,4,3,2); 정수 h=12; int m; 정수 s; int 플래그; 정수 시간; const int hs=8; const int ms=9; int 상태1; int 상태2; void setup() ( lcd.begin(16,2); ) void loop() ( lcd.setCursor(0,0); s=s+1; lcd.print("TIME:"); lcd.print(h ); lcd.print(":"); lcd.print(m); lcd.print(":"); lcd.print(s); if(플래그<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("오후"); if(플래그==24)플래그=0; 지연(1000); lcd.clear(); if(s==60)( s=0; m=m+1; ) if(m==60) ( m=0; h=h+1; 플래그=flag+1; ) if(h==13 ) ( h=1; ) lcd.setCursor(0,1); lcd.print("좋은 하루 보내세요"); //-------시간 // 설정-------// state1=digitalRead(hs); if(state1==1) ( h=h+1; 플래그=플래그+1; if(플래그<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("오후"); if(플래그==24)플래그=0; if(h==13)h=1; ) 상태2=디지털읽기(ms); if(state2==1)( s=0; m=m+1; ) )

   관심 가져주셔서 감사합니다 정보 프로젝트웹사이트.
   흥미롭고 유용한 자료를 더 적은 광고로 더 자주 게시하고 싶다면,
   개발을 위해 어떤 금액이든 기부하여 프로젝트를 지원할 수 있습니다.

Arduino 마이크로컨트롤러에 LED 백라이트와 진동하는 분침이 있는 시계
LED 백라이트와 진동하는 분침을 갖춘 이 독특한 시계는 TLC5940 PWM 컨트롤러 칩을 사용하여 제작되었습니다. 주요 임무는 PWM 변조 접점 수를 확장하는 것입니다. 이 시계의 또 다른 특징은 아날로그 전압계를 분을 측정하는 장치로 변환했다는 것입니다. 이를 위해 표준 프린터로 새 저울을 인쇄하고 이전 저울 위에 붙여넣었습니다. 따라서 5분은 계산되지 않으며 단지 5분 동안 시간 카운터에 눈금 끝(눈금 초과)을 가리키는 화살표가 표시됩니다. 메인 컨트롤은 Arduino Uno 마이크로컨트롤러에서 구현됩니다.

어두운 방에서 시계 백라이트가 너무 밝게 빛나지 않도록 조도에 따라 자동으로 밝기를 조절하는 회로를 구현했습니다(포토레지스터 사용).

1단계: 필수 구성 요소



필요한 것은 다음과 같습니다.

  • 5V DC 아날로그 전압계 모듈;
  • Arduino UNO 마이크로컨트롤러 또는 기타 적합한 Arduino;
  • Arduino 회로 기판(프로토 기판);
  • DS1307 실시간 클록(RTC) 모듈;
  • PWM 컨트롤러 TLC5940이 포함된 모듈;
  • 꽃잎 LED 백라이트 – 12개;
  • 자동 밝기 제어(LDR) 회로를 조립하기 위한 구성 요소입니다.

또한 프로젝트의 다른 구성 요소를 생산하려면 3D 프린터와 레이저 절단기를 사용하는 것이 바람직합니다. 귀하에게 이러한 액세스 권한이 있다고 가정하므로 지침에는 적절한 단계의 제조 도면이 포함됩니다.

2단계: 다이얼




다이얼은 3mm MDF 시트를 레이저 절단기로 절단한 세 부분(층)으로 구성되며, 이 부분은 볼트로 고정됩니다. 슬롯이 없는 플레이트(그림의 오른쪽 하단)가 다른 플레이트 아래에 배치되어 LED(왼쪽 하단)를 배치합니다. 그런 다음 개별 LED를 적절한 슬롯에 배치하고 전면 패널을 상단(그림의 상단)에 배치합니다. 다이얼 가장자리를 따라 4개의 구멍이 뚫려 있으며, 이 구멍을 통해 세 부분이 모두 함께 볼트로 고정됩니다.

  • 이 단계에서 LED 성능을 테스트하기 위해 CR2032 코인 셀 배터리가 사용되었습니다.
  • LED를 고정하기 위해 LED 뒷면에 접착된 작은 접착 테이프 스트립이 사용되었습니다.
  • 이에 따라 모든 LED 다리가 미리 구부러졌습니다.
  • 가장자리를 따라 구멍을 다시 뚫고 이를 통해 볼트 체결이 수행되었습니다. 이것이 훨씬 더 편리하다는 것이 밝혀졌습니다.

다이얼 부품의 기술 도면은 다음에서 확인할 수 있습니다.

3단계: 회로 설계



이 단계에서 개발되었다. 전기 다이어그램. 이를 위해 다양한 교과서와 가이드가 사용되었습니다. 이 프로세스를 너무 깊이 다루지는 않겠습니다. 아래 두 파일은 이 프로젝트에 사용된 완성된 전기 회로를 보여줍니다.

4단계: Arduino 회로 기판 연결





  1. 첫 번째 단계는 회로 기판과 섹션 보드의 모든 바늘 접점을 분리하는 것입니다.
  2. 또한 많은 보드에서 5V 전원과 GND를 사용하기 때문에 주변기기, 신뢰성을 위해 5V 및 GND용 두 개의 와이어가 회로 기판에 납땜되었습니다.
  3. 다음으로 TLC5940 PWM 컨트롤러가 사용된 접점 옆에 설치되었습니다.
  4. 그런 다음 TLC5940 컨트롤러가 연결 다이어그램에 따라 연결됩니다.
  5. 배터리를 사용할 수 있도록 회로 기판 가장자리에 RTC 모듈을 설치했습니다. 보드 중앙에 납땜하면 핀 표시가 보이지 않습니다.
  6. RTC 모듈은 연결 다이어그램에 따라 연결되었습니다.
  7. 자동 밝기 조절(LDR) 회로가 조립되었습니다. 링크에서 확인하실 수 있습니다.
  8. 전압계의 전선은 전선을 핀 6과 GND에 연결하여 연결됩니다.
  9. 마지막으로 LED용 와이어 13개를 납땜했습니다(실제로는 3단계로 진행하기 전에 납땜하는 것이 더 나은 것으로 나타났습니다).

5단계: 코드

아래 코드는 인터넷에서 찾은 다양한 시계 구성 요소를 모아 컴파일한 것입니다. 완전히 디버깅되어 이제 완벽하게 작동하며, 꽤 자세한 설명이 추가되었습니다. 그러나 마이크로컨트롤러에 로드하기 전에 다음 사항을 고려하십시오.

  • Arduino 펌웨어를 플래시하기 전에 시간을 설정하는 줄의 주석 처리를 제거해야 합니다.
    rtc.adjust(날짜시간(__DATE__, __TIME__))
    이 줄로 컨트롤러를 플래싱한 후(시간이 설정됨) 다시 주석 처리하고 컨트롤러를 다시 플래싱해야 합니다. 이를 통해 RTC 모듈은 주 전원이 손실되는 경우 배터리를 사용하여 시간을 기억할 수 있습니다.
  • "Tlc.set()"을 사용할 때마다 "Tlc.update"를 사용해야 합니다.

6단계: 외부 링

외부 시계 링은 Replicator Z18 프린터를 사용하여 3D 프린팅되었습니다. 시계 앞면의 나사를 사용하여 시계에 부착합니다. 아래는 3D 프린터로 출력하기 위한 반지의 3D 모델이 포함된 파일입니다.

7단계: 시계 조립


다른 모든 전자 장치가 포함된 Arduino 마이크로 컨트롤러는 나사와 너트를 스페이서로 사용하여 시계 뒷면에 고정되었습니다. 그런 다음 모든 LED, 아날로그 전압계 및 LDR을 이전에 회로 기판에 납땜했던 전선에 연결했습니다. 모든 LED는 한쪽 다리로 상호 연결되고 TLC5940 컨트롤러의 VCC 핀에 연결됩니다(와이어 조각은 단순히 원 안에 납땜됩니다).

지금까지 이 모든 것은 단락으로부터 잘 절연되지 않았지만 이에 대한 작업은 향후 버전에서 계속될 것입니다.




맨 위