제조공정
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 4 | ||||
| × | 4 | ||||
![]() |
| × | 2 | |||
![]() |
| × | 4 | |||
![]() |
| × | 2 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
![]() |
| |||
![]() |
|
![]() |
|
이번에는 멋진 레트로 스타일의 Numitron 튜브 시계를 만드는 방법을 보여 드리겠습니다. 정확한 시간 외에도 장치는 30초마다 날짜, 연도 및 현재 온도를 간략하게 표시합니다.
주어진 Github 페이지(https://github.com/remotheman/simple_numitron_clock_with_4_shift_registers_and_rtc3231)에서 이 시계를 만들 생각을 했습니다.
먼저 사이트의 지침에 따라 프로젝트를 만들었고 많은 결함이 있음을 발견했습니다.
74HC595를 사용한 첫 번째 프로토타입은 다음과 같습니다.
74HC595 IC의 경우 데이터시트에 따른 총 최대 전류는 70밀리암페어이며, 이 경우 몇 배 초과(숫자 8의 경우 약 160밀리암페어)되어 잠시 후 IC가 과열되어 제대로 작동하지 않습니다. 또 다른 결점은 코드 루프에 너무 많은 지연이 있어서 60초에 한 번만 시간을 읽는다는 것입니다. 그림에서 주로 위 페이지의 지침에 따라 만들어진 완성된 시계를 볼 수 있습니다. 처음에는 완전히 정상적으로 작동하지만 잠시 후 임의의 세그먼트가 활성화되고 IC, numitron 또는 마이크로 컨트롤러가 매우 쉽게 연소될 수 있습니다. 첫 번째 경우에는 더 큰 전류를 위해 제공되는 74HC595 대신 TPIC6C595 IC를 사용하여 문제를 해결했습니다. 또한 이 두 집적 회로는 핀 호환이 되지 않는다는 점에 주의해야 합니다.
-------------------------------------------------- --------------------------------
https://www.pcbgogo.com/promo/from_MirkoPavleskiMK
-------------------------------------------------- ----------------------------------
그리고 새로운 코드는 delay() 함수 대신 millis()를 사용하여 생성되었으므로 이제 실시간 시계를 지속적으로 읽습니다. 또한 뉴미트론의 광도를 변경하여 수명을 변경하는 스위치를 추가했습니다. 보시다시피, 장치는 상대적으로 빌드가 간단하고 이것이 튜브 시계를 만드는 가장 간단한 방법이라고 생각합니다. Numitrons는 저렴하고 쉽게 구할 수 있으며 추가 고전압 전원 공급 장치를 사용하지 않습니다.
이 시계를 만드는 데 몇 가지 구성 요소만 필요합니다.
- 4개의 Numitron 튜브 IV9
- 4개의 집적 회로 TPIC6C595
- 아두이노 마이크로컨트롤러
- DS3231 실시간 클록 모듈
- 초 동안 2개의 LED
- 스위치
- 및 4개의 디커플링 커패시터
실시간 모듈에는 온도계도 포함되어 있어 보다 정확한 온도 표시를 위해 상자 외부에 메쉬로 보호되어 있습니다. 먼저 실시간 클록을 PC 클록과 동기화하는 것이 바람직하며 DS1307RTC 라이브러리를 사용하여 이를 수행합니다. 그런 다음 코드를 업로드하면 장치가 준비됩니다. 버튼의 도움으로 시간을 설정할 수 있도록 코드를 수정하는 것이 남아 있으며 다음 기간에 프로젝트 업데이트로 됩니다.
마지막으로 시계는 적절한 상자에 장착되어 모든 쇼케이스의 아름다운 장식입니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">#include섹션>// ds3231RTC_DS3231에 대한 온도가 있는 rtc rtc; //사용할 rtc 모듈 설정#include //wiring#include //time lib#include //time function#include //rtc #include #define led 7const int latchPin =13; //latchconst int clockPin =10; // clockconst int dataPin =11; //dataunsigned long previousMillis =0; // 마지막으로 저장한 시간 Led 깜박임 간격 =30000; // 깜박일 간격(밀리초) unsigned long previousMillisDiode =0; // 마지막 시간을 저장합니다. Led 깜박임 long intervalDiode =500; // 깜박일 간격(밀리초) const int nums[12] ={ //디스플레이 배열 설정 - 문서에 따르면 핀1은 공통이고 핀2는 도트(스케치에서는 사용되지 않음), 나머지는 시프트 레지스터에 하나씩 연결해야 합니다. 하나 0b10111110, //0 0b00000110, //1 0b01111010, //2 0b01101110, //3 0b11000110, //1 ,1010, //4 0b11101100, //5 0b111110b0, //3 9 0b11001010, //st. 0b10111000 //celz.};int hour1; //시 첫 번째 숫자int hour2; //시초 숫자int min1; //분 첫 번째 숫자int min2; //분초 숫자int day1; // 첫째 날 숫자int day2; //일초숫자intmonth1; //월 첫 번째 숫자intmonth2; //월 초 숫자int year1; //연도 첫 번째 숫자 - 상수 2int year2; //연도 초 숫자 - 상수 0 (당신은 그것을 바꾸기 위해 오래 살고 싶습니까?)int year3; //세 번째 연도 숫자int year4; //연도 4번째 숫자int hourDecimal; // hourint의 10진수 구문 분석 minDecimal; //minint dayDecimal의 10진수 파싱; // dayint monthDecimal의 10진수 구문 분석; //monthint year70의 10진수 구문 분석; // 유닉스 epochint 이후 연도 temp1; //첫 번째 온도 숫자int temp2; //두 번째 온도 숫자int tempDecimal; //온도의 10진수 파싱(처음 두 숫자)void setup() { pinMode(led,OUTPUT); 핀모드(래치핀, 출력); // 시프트 레지스터를 제어할 수 있도록 핀을 출력으로 설정합니다. pinMode(clockPin, OUTPUT); // 시프트 레지스터를 제어할 수 있도록 핀을 출력으로 설정합니다. pinMode(dataPin, OUTPUT); //시프트 레지스터를 제어할 수 있도록 핀을 출력으로 설정합니다. Serial.begin(9600); // SPI 초기화:SPI.begin(); // SS 핀을 로우로 설정하여 칩을 선택합니다. digitalWrite(clockPin,LOW); } 무효 루프() { tmElements_t tm; //DS1307RTC 라이브러리에서 이름 지정 RTC.read(tm); // rtc 시간/날짜/년 읽기 minDecimal =tm.Minute / 10; //10으로 나누어 읽을 수 있도록(짧게) 출력을 구문 분석 hourDecimal =tm.Hour / 10; //10으로 나누어 읽을 수 있도록(짧게) 출력을 구문 분석 dayDecimal =tm.Day / 10; //10으로 나누어 읽을 수 있도록(짧게) 출력을 구문 분석합니다.monthDecimal =tm.Month / 10; //10으로 나누어 읽을 수 있도록(짧게) 출력을 구문 분석 year70 =tm.Year - 30; //유닉스 epoch(1970)에서 빼서 실제 연도를 표시합니다. hour1 =hourDecimal; // 간단합니다. hour2 =tm.Hour - 10 * hourDecimal; // 두 자리 숫자에서 두 번째 숫자만 표시하도록 계산합니다. string minute1 =minuteDecimal; //단순한 분2 =tm.Minute - 10 * minDecimal; // 두 자리 숫자에서 두 번째 숫자만 표시하도록 계산합니다. string day1 =dayDecimal; // 단순 day2 =tm.Day - 10 * dayDecimal; // 두 자리 문자열에서 두 번째 숫자만 표시하도록 계산합니다. month1 =monthDecimal; //단순 월2 =tm.Month - 10 * monthDecimal; // 두 자리 문자열에서 두 번째 숫자만 표시하도록 계산합니다. year1 =2; //첫 해 번호, 정말로 변경해야 합니까? 당신은 비행 자동차 등을 가지고 있습니까? 연도2 =0; // 2년차 숫자, 변경해야 하는 경우 손자와 함께 놀아야 합니다. year3 =year70 / 10; //10으로 나누어 읽을 수 있도록(짧게) 출력을 구문 분석 year4 =year70 - 10 * year3; // 두 자리 문자열에서 두 번째 숫자만 표시하도록 계산 tempDecimal =rtc.getTemperature()/10; //10으로 나누어 읽을 수 있도록(짧게) 출력을 구문 분석 temp1 =tempDecimal; // 단순 temp2 =rtc.getTemperature() - 10 * tempDecimal; //두 자리 문자열에서 두 번째 숫자만 표시하도록 계산 if (millis() - previousMillisDiode>=intervalDiode) { previousMillisDiode =millis(); digitalWrite(led, !digitalRead(led)); //LED 상태 변경}if (millis() - previousMillis>=간격) { previousMillis =millis(); 디지털 쓰기(clockPin, LOW); SPI.전송(0b00000000); SPI.전송(0b00000000); SPI.전송(0b00000000); SPI.전송(0b00000000); 디지털 쓰기(clockPin, HIGH); 지연(500); // '호흡' 효과를 만들기 위해 0.5초 동안 numitron을 끈다. digitalWrite (clockPin, LOW); SPI.transfer(숫자[month2]); SPI.transfer(숫자[month1]); SPI.transfer(숫자[day2]); SPI.transfer(숫자[day1]); 디지털 쓰기(clockPin, HIGH); 지연(1500); 디지털 쓰기(clockPin, LOW); SPI.전송(0b00000000); SPI.전송(0b00000000); SPI.전송(0b00000000); SPI.전송(0b00000000); 디지털 쓰기(clockPin, HIGH); 지연(500); // '호흡' 효과를 만들기 위해 0.5초 동안 numitron을 끈다. digitalWrite (clockPin, LOW); SPI.transfer(숫자[연도4]); SPI.transfer(숫자[년3]); SPI.transfer(숫자[연도2]); SPI.전송(숫자[연도1]); 디지털 쓰기(clockPin, HIGH); 지연(1500); 디지털 쓰기(clockPin, LOW); SPI.전송(0b00000000); SPI.전송(0b00000000); SPI.전송(0b00000000); SPI.전송(0b00000000); 디지털 쓰기(clockPin, HIGH); 지연(500); // '호흡' 효과를 만들기 위해 0.5초 동안 numitron을 끈다. digitalWrite (clockPin, LOW); SPI.전송(0b10111000); SPI.전송(0b11001010); SPI.transfer (nums[temp2]); SPI.transfer(숫자[temp1]); 디지털 쓰기(clockPin, HIGH); 지연(1500); 디지털 쓰기(clockPin, LOW); SPI.전송(0b00000000); SPI.전송(0b00000000); SPI.전송(0b00000000); SPI.전송(0b00000000); 디지털 쓰기(clockPin, HIGH); 지연(500); // '호흡' 효과를 만들기 위해 0.5초 동안 numitron이 꺼짐 } else { digitalWrite (clockPin, LOW); SPI.transfer(숫자[분2]); SPI.전송(숫자[분1]); SPI.전송(숫자[시간2]); SPI.전송(숫자[시간1]); 디지털 쓰기(clockPin, HIGH); }}
제조공정
이 튜토리얼에서는 Arduino와 릴레이 모듈을 사용하여 고전압 장치를 제어하는 방법을 배웁니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 릴레이를 사용하여 고전압 전자 장치를 제어할 수 있습니다. 릴레이는 실제로 전자석에 의해 전기적으로 작동되는 스위치입니다. 전자석은 예를 들어 마이크로컨트롤러의 5볼트와 같은 저전압으로 활성화되고 접점을 당겨 고전압 회로를 만들거나 끊습니다. HL-52S 릴레이 모듈 이 Arduino 릴레이 튜토리얼의 예로서 10A @ 250 및 125 V AC 및 1
이 튜토리얼에서는 이전 비디오 중 하나에서 제작한 DIY 3D Printed SCARA 로봇 팔을 레이저 조각기로 변환하는 방법을 보여 드리겠습니다. 동영상 다음 동영상을 보거나 아래 기사를 읽을 수 있습니다. 프로젝트 개요 SCARA 로봇은 4개의 NEMA 17 스테퍼 모터로 구동되고 Arduino 보드를 사용하여 제어되는 4개의 자유도를 가지고 있습니다. 원본 비디오에서는 Arduino UNO 보드를 CNC Shield와 조합하여 사용했지만 이제는 Arduino MEGA 보드와 RAMP 보드를 함께 사용합니다. 로봇을 제어하