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

아날로그 스타일 LED POV 시계

구성품 및 소모품

Arduino Nano R3
× 1
LED(일반)
× 17
홀 효과 센서
× 1
저항 100옴
× 17
DC 모터(일반)
× 1
부스트(스텝 업) 스위칭 레귤레이터, 고정
× 1

필요한 도구 및 기계

납땜 인두(일반)

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

POV(Persistence of Vision) 디스플레이는 일반적으로 주어진 시간에 이미지의 한 부분을 빠르게 연속적으로 표시하여 이미지를 '보여주는' LED 디스플레이입니다. 인간의 두뇌는 이것을 연속적인 이미지의 표시로 인식합니다.

"취미 프로젝트" 웹사이트에는 비교적 단순하지만 시각적으로 효과적인 아날로그 스타일의 시계가 있습니다. 전자 부품에는 Arduino Nano 17 LED 다이오드와 홀 효과 센서가 포함되어 있습니다. LED 다이오드 그룹 d1-d11, d12-d16 및 d17은 시각적 효과를 높이기 위해 색상이 다릅니다. 이 장치는 승압 변환기를 통해 리튬 이온 배터리로 구동됩니다.

저에게 프로젝트의 가장 어려운 부분은 기계적 안정성이었습니다. 첫 번째 시도에서는 배터리가 편심하게 설정되어 더 높은 회전 속도에서 큰 진동이 발생했습니다. 그런 다음 수정을 가하고 배터리를 회전 중심에 배치했습니다.

회전을 위해 장치의 회전 속도를 쉽게 제어할 수 있도록 가변 전원 공급 장치에 연결된 12V 전기 모터를 사용합니다. 장치의 회전 속도에 따라 코드에서 "delayMicroseconds" 값을 결정된 값으로 설정해야 합니다.

이 목적을 위해서는 더 나은 초당 프레임을 가진 카메라가 필요하기 때문에 제시된 비디오가 충분히 명확하지 않습니다.

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

코드

<울>
  • 코드
  • 코드Arduino
    //hobbyprojects// ArduinoNanoPropellerLEDAnalogClock20190403Aint LED1 =2;int LED2 =3;int LED3 =4;int LED4 =5;int LED5 =6;int LED6 =7;int LED7 =8;int LED8 =9;int LED9 =10,int LED10 =11,int LED11 =12,int LED12 =A1,int LED13 =A2,int LED14 =A3,int LED15 =A4,int LED16 =A5,int sensorPin =A0,unsigned int n,ADCvalue,propeller_posn;부호 없는 긴 이전 시간 =0;바이트 시간 =12; // 시간 바이트 분 설정 =15; // 분 바이트 초 설정 =00; // 초 설정int val;void setup() { pinMode(LED1,OUTPUT); 핀모드(LED2, 출력); 핀모드(LED3, 출력); 핀모드(LED4, 출력); 핀모드(LED5, 출력); 핀모드(LED6, 출력); 핀모드(LED7, 출력); 핀모드(LED8, 출력); 핀모드(LED9, 출력); 핀모드(LED10, 출력); 핀모드(LED11, 출력); 핀모드(LED12, 출력); 핀모드(LED13, 출력); 핀모드(LED14, 출력); 핀모드(LED15, 출력); 핀모드(LED16, 출력); 핀모드(센서핀,INPUT_PULLUP); if(시간 ==12) 시간 =0;} 무효 루프() { val =digitalRead(sensorPin); 동안 (val ==LOW) { val =digitalRead(sensorPin); } if (millis()>=(이전시간)) { 이전시간 =이전시간 + 1000; 초 =초+1; if (초 ==60) { 초 =0; 분 =분+1; } if (분 ==60) { 분 =0; 시간 =시간+1; } if (시간 ==12) { 시간 =0; } } propeller_posn=30; n=0; while(n <60) { drawMinuteMarker(); if ((propeller_posn==0) || (propeller_posn==5) || (propeller_posn==10) || (propeller_posn==15) || (propeller_posn==20) || (propeller_posn==25) || (propeller_posn==30) || (propeller_posn==35) || (propeller_posn==40) || (propeller_posn==45) || (propeller_posn==50) || (propeller_posn==55)) drawHourMarker(); if ((propeller_posn==0) || (propeller_posn==15) || (propeller_posn==30) || (propeller_posn==45)) drawQuarterMarker(); if((propeller_posn ==시간*5) || (( propeller_posn ==0 ) &&(시간 ==0))) drawHoursHand(); if(propeller_posn ==분) drawMinutesHand(); if(propeller_posn ==초) drawSecondsHand(); 지연마이크로초(140); // LED 픽셀 너비의 경우 (모터 속도에 따라 값 변경. 저속은 증가, 고속 모터는 감소) displayClear(); drawInner_Circle(); 지연마이크로초(600); // LED 픽셀/분 마커 사이의 간격(모터 속도에 따라 값 변경. 저속은 증가, 고속 모터는 감소) n++; propeller_posn++; if(propeller_posn ==60) propeller_posn=0; } 발 =디지털 읽기(센서 핀); 동안 (val ==HIGH) { val =digitalRead(sensorPin); } }//=========================무효 displayClear() { digitalWrite(LED1,LOW); 디지털 쓰기(LED2, LOW); 디지털 쓰기(LED3, LOW); 디지털 쓰기(LED4,LOW); 디지털 쓰기(LED5, LOW); 디지털 쓰기(LED6, LOW); 디지털 쓰기(LED7, LOW); 디지털 쓰기(LED8, LOW); 디지털 쓰기(LED9, LOW); 디지털 쓰기(LED10,LOW); 디지털 쓰기(LED11,LOW); 디지털 쓰기(LED12,LOW); 디지털 쓰기(LED13,LOW); 디지털 쓰기(LED14,LOW); 디지털 쓰기(LED15,낮음); 디지털 쓰기(LED16, LOW); } 무효 drawMinuteMarker() { digitalWrite(LED16,HIGH); } 무효 drawHourMarker() { digitalWrite(LED15,HIGH); 디지털 쓰기(LED14, 높음); } 무효 drawQuarterMarker() { digitalWrite(LED13,HIGH); 디지털 쓰기(LED12, 높음); } 무효 drawHoursHand() { digitalWrite(LED1, HIGH); 디지털 쓰기(LED2, 높음); 디지털 쓰기(LED3, 높음); 디지털 쓰기(LED4, 높음); 디지털 쓰기(LED5, 높음); 디지털 쓰기(LED6, 높음); 디지털 쓰기(LED7, 높음); } 무효 drawMinutesHand() { digitalWrite(LED1,HIGH); 디지털 쓰기(LED2, 높음); 디지털 쓰기(LED3, 높음); 디지털 쓰기(LED4, 높음); 디지털 쓰기(LED5, 높음); 디지털 쓰기(LED6, 높음); 디지털 쓰기(LED7, 높음); 디지털 쓰기(LED8, 높음); 디지털 쓰기(LED9, 높음); } 무효 drawSecondsHand() { digitalWrite(LED1,HIGH); 디지털 쓰기(LED2, 높음); 디지털 쓰기(LED3, 높음); 디지털 쓰기(LED4, 높음); 디지털 쓰기(LED5, 높음); 디지털 쓰기(LED6, 높음); 디지털 쓰기(LED7, 높음); 디지털 쓰기(LED8, 높음); 디지털 쓰기(LED9, 높음); 디지털 쓰기(LED10, 높음); 디지털 쓰기(LED11, 높음); } 무효 drawInner_Circle() { digitalWrite(LED1,HIGH); 지연마이크로초(30); 디지털 쓰기(LED1, LOW); } 

    회로도


    제조공정

    1. LED 시퀀서
    2. 뻐꾸기 시계
    3. DIY LUMAZOID Arduino 뮤직 비주얼라이저
    4. Arduino 관점 시계
    5. 아날로그 센서가 있는 기압 측정 장치
    6. DIY 37 LED 룰렛 게임
    7. 마스터 시계
    8. 3D RGB Arduclock
    9. FlightGear 아날로그 트림 탭 휠
    10. LED 매트릭스 + 모션 센서 도어 디스플레이 [Arduino Holiday]