산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino가 있는 Nixie 시계 | 가장 단순한 디자인

구성품 및 소모품

Arduino UNO
× 1
UTSOURCE 전자 부품
× 1

이 프로젝트 정보

긴 하루 작업 끝에 드디어 구입하기 어려운 Nixie 드라이버가 필요 없는 Arduino와 광절연 칩으로 Nixie 시계를 만드는 데 성공했습니다.

전체 지침을 보려면 비디오를 시청하십시오.

프로젝트를 만들 부품 목록:

1. 아두이노 UNO https://amzn.to/2P58O7s

2. 닉시 튜브 6개 https://amzn.to/3aHyJvX

3. 광 커플러 칩 TLP627

4. 12VDC에서 390VDC로의 DC 스텝업 모듈 https://amzn.to/30kpdK9

5. 브레드보드 https://amzn.to/2uCrnsW

6. 실시간 시계 모듈 DS3231 https://amzn.to/2SIyEzI

utsource.net에서 전자 부품 구매

1단계. 회로 설계

회로는 광절연 칩을 사용하여 Arduino(5VDC 사용)로 Nixie 튜브(150VDC 사용)를 제어합니다. 매트릭스 연결을 통해 6개의 닉시 튜브의 60개 조명을 제어하기 위해 Arduino의 16개 출력만 필요합니다. 실시간 클럭 모듈 DS3231은 시간을 유지하는 데 사용되며(전원을 끄더라도) I2C 네트워크를 통해 Arduino와 통신합니다. Arduino는 실시간으로 읽은 다음 고주파의 순서로 nixie 조명을 켜고 꺼서 인간의 눈이 6개의 숫자를 영구적으로 볼 수 있도록 합니다.

2단계. Arduino 코드

//Youtube 채널:engineer2you
#include
#include "DS3231.h"
RTClib RTC;
DS3231 시계;
int 시간;
int 분;
int 초;
const int nixie_0 =2;
const int nixie_1 =3;
const int nixie_2 =4;
const int nixie_3 =5;
const int nixie_4 =6;
const int nixie_5 =7,
const int nixie_6 =8,
const int nixie_7 =9,
const int nixie_8 =10;
const int nixie_9 =11;
const int row_1 =0;
const int row_2 =1;
const int row_3 =14;
const int row_4 =15;
const int row_5 =16;
const int row_6 =17;
const int time_on =2;
void setup() {
pinMode(nixie_0, OUTPUT);
pinMode(nixie_1, OUTPUT);
pinMode(nixie_2, OUTPUT);
pinMode(nixie_3, OUTPUT);
pinMode(nixie_4, OUTPUT);
pinMode( nixie_5, OUTPUT);
pinMode(nixie_6, OUTPUT);
pinMode(nixie_7, OUTPUT);
pinMode(nixie_8, OUTPUT);
pinMode(nixie_9, OUTPUT);
pinMode(row_1, OUTPUT);
pinMode(row_2, OUTPUT);
pinMode(row_3, OUTPUT);
pinMode(row_4, OUTPUT);
pinMode(row_5 , OUTPUT);
pinMode(row_6, OUTPUT);
//Serial.begin(9600); //serial println을 사용하면 안 됩니다. 출력 핀 D0 &D1에 영향을 미칩니다.
Wire.begin();
}
void loop() {
//--- ---------------- 시계 값 가져오기 ---------------------------
DateTime now =RTC.now();
hour =now.hour();
분 =now.minute();
초 =now.second();
/ /---------- 시계 번호 표시 ----------------------
int 제이; //오른쪽에서 두 번째 숫자
int k; //오른쪽에서 첫 번째 숫자
j =두 번째/10;
k =두 번째%10;
//-----------초의 첫 번째 숫자 표시
off_all();
on_number(0,k+2);
delay(time_on);
//-----------초의 초 표시
off_all();
on_number(1,j+2);
지연(time_on);

j =분/10;
k =분%10;
//-----------첫 번째 분 표시
off_all();
on_number(14,k+2);
delay(time_on);
//-------------초 단위 분 표시
off_all();
on_number(15,j+2 );
delay(time_on);
j =hour/10;
k =hour%10;
//-----------먼저 표시 시간 수
off_all();
on_number(16,k+2);
delay(time_on);
//-------------초 시간 표시
off_all();
on_number(17,j+2 );
delay(time_on);
}
void on_number(int row, int nixie){
digitalWrite(row, HIGH);
digitalWrite(nixie, HIGH) );
}
off_all(){
digitalWrite(row_1, LOW);
digitalWrite(row_2, LOW);
digitalWrite(row_3, LOW);
digitalWrite(row_4, LOW);
digitalWrite(row_5, LOW);
digitalWrite(row_6, LOW);
digitalWrite(nixie_0, LOW);
digitalWrite(nixie_1 , LOW);
digitalWrite(nixie_2, LOW);
digitalWrite(nixie_3, LOW);
digitalWrite(nixie_4, LOW);
digitalWrite(nixie_5, LOW);
digitalWrite(nixie_6, LOW);
digitalWrite(nixie_7, LOW);
digitalWrite(nixie_8, LOW);
digitalWrite(nixie_9, LOW);
delayMicroseconds(400); //다른 튜브에 "고스트" 효과를 방지하기 위해
}

기본적으로 코드는 모듈 DS3231에서 실시간으로 수신되고 광절연 칩을 통해 6개의 nixie 튜브에 표시됩니다.

3단계. 회로 구축

이건 그냥 실험용이라 브레드보드로 다 만들었습니다. 다행히 처음에는 작동하며 문제가 없습니다.

다음 단계에서는 내 방에 놓을 수 있도록 MDF 케이스에 닉시 시계를 멋지게 장식해 보겠습니다.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • 코드 스니펫 #1
  • 코드 스니펫 #1일반 텍스트
    //유튜브 채널:engine2you#include #include "DS3231.h"RTClib RTC;DS3231 Clock;int hour;int minute;int second;const int nixie_0 =2;const int nixie_1 =3; const int nixie_2 =4; const int nixie_3 =5; const int nixie_4 =6, const int nixie_5 =7, const int nixie_6 =8, const int nixie_7 =9, const int nixie_8 =10, const int nixie_9 =11, const int row_1 =_0 row_3 =14, const int row_4 =15, const int row_5 =16, const int row_6 =17, const int time_on =2, void setup() { pinMode(nixie_0, OUTPUT); 핀모드(nixie_1, 출력); 핀모드(nixie_2, 출력); 핀모드(nixie_3, 출력); 핀모드(nixie_4, 출력); 핀모드(nixie_5, 출력); 핀모드(nixie_6, 출력); 핀모드(nixie_7, 출력); 핀모드(nixie_8, 출력); 핀모드(nixie_9, 출력); 핀모드(행_1, 출력); 핀모드(row_2, 출력); 핀모드(row_3, 출력); 핀모드(행_4, 출력); 핀모드(row_5, 출력); 핀모드(6행, 출력); //Serial.begin(9600); //serial println을 사용하면 안 됩니다. 출력 핀 D0 &D1에 영향을 미칩니다. Wire.begin();}void loop() { //------------------- 시계 값 가져오기 --------------------------- DateTime now =RTC.now(); 시간 =now.hour(); 분 =지금.분(); 두 번째 =now.second(); //-------------------시계 번호 표시 ---------------------- int j; //오른쪽에서 두 번째 숫자 int k; //오른쪽에서 첫 번째 숫자 j =두 번째/10; k =두 번째%10; //-----------두 번째의 첫 번째 숫자 표시 off_all(); on_number(0,k+2); 지연(time_on); //-----------초의 두 번째 숫자 표시 off_all(); on_number(1,j+2); 지연(time_on); j =분/10; k =분%10; //-----------분의 첫 번째 숫자 표시 off_all(); on_number(14,k+2); 지연(time_on); //-----------초의 분 표시 off_all(); on_number(15,j+2); 지연(time_on); j =시간/10; k =시간%10; //-----------첫 번째 시간 표시 off_all(); on_number(16,k+2); 지연(time_on); //-----------두 번째 시간 표시 off_all(); on_number(17,j+2); delay(time_on);} 무효 on_number(int 행, int nixie){ digitalWrite(행, HIGH); digitalWrite(nixie, HIGH);}off_all() 무효화{ digitalWrite(row_1, LOW); digitalWrite(row_2, LOW); digitalWrite(row_3, LOW); digitalWrite(row_4, LOW); digitalWrite(row_5, LOW); digitalWrite(row_6, LOW); digitalWrite(nixie_0, LOW); digitalWrite(nixie_1, LOW); digitalWrite(nixie_2, LOW); digitalWrite(nixie_3, LOW); digitalWrite(nixie_4, LOW); digitalWrite(nixie_5, LOW); digitalWrite(nixie_6, LOW); digitalWrite(nixie_7, LOW); digitalWrite(nixie_8, LOW); digitalWrite(nixie_9, LOW); 지연마이크로초(400); //다른 튜브에 "고스트" 효과를 방지하기 위해}

    제조공정

    1. Arduino 관점 시계
    2. Arduino로 DIY 가장 간단한 IV9 Numitron 시계
    3. E3 시리즈를 사용한 하네스 디자인
    4. 단순 워드 클럭(Arduino)
    5. 이슬람 기도 시간이 있는 Arduino 시계
    6. 마스터 시계
    7. Arduino로 코인 억셉터 제어
    8. Arduino Temp. 3.2 디스플레이가 있는 모니터 및 실시간 시계
    9. Bluetooth가 탑재된 Arduino로 LED 제어!
    10. DS1302 RTC가 있는 간단한 알람 시계