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

조절 가능한 카운트다운 타이머

구성품 및 소모품

Arduino Mega 2560
모든 arduino가 작동해야 합니다.
× 1
4자리 7세그먼트 표시
× 1
푸시 버튼
× 4
부저
× 1
점퍼 와이어(일반)
× 21
무납땜 브레드보드 전체 크기
× 1

이 프로젝트 정보

카운트다운 타이머는 아마도 4자리 7세그먼트 디스플레이를 위한 가장 자연스러운 프로젝트일 것입니다. 온라인에서 사용할 수 있는 것을 탐색하는 동안 여러 프로젝트를 찾았지만 마음에 들었던 프로젝트, 즉 버튼으로 편리하게 조정할 수 있는 독립 실행형 조정 가능한 카운트다운 타이머(수정된 코드를 업로드하지 않음)를 찾지 못했습니다. 그래서 하나 만들기로 결정했습니다.

사용하기 쉽고 타이머를 조정하여 실제로 사용할 수 있도록 코드를 작성하는 시간을 가졌습니다.

포함된 코드는 4자리 7세그먼트 디스플레이가 있는 다른 프로젝트에서도 사용할 수 있습니다. 특히, 주어진 시간 간격 동안 주어진 숫자(0-9999)를 표시하는 기능이 있습니다. 이 기능이 일부 라이브러리에 있을 수 있지만 빠른 검색으로 이를 드러내지 않았습니다. 이 디스플레이를 프로그래밍하는 것은 약간 까다롭기 때문에(한 번에 한 자리만 표시할 수 있음) 이러한 기능은 정말 편리합니다.

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

코드

<울>
  • 4자리 7세그먼트 디스플레이 카운트다운 타이머
  • 4자리 7세그먼트 디스플레이 카운트다운 타이머C/C++
    코드에는 4자리 7세그먼트 디스플레이에 표시된 카운트다운을 시작하는 카운트다운 타이머 기능이 포함되어 있습니다. 또한 주어진 시간 동안 디스플레이에 주어진 4자리 숫자를 표시하는 유용한 기능 PrintNumber가 있습니다. 다른 프로젝트에서 사용할 수 있습니다.
    #include int digit_pin[] ={6, 9, 10, 11}; // PWM 디스플레이 숫자 핀을 왼쪽에서 오른쪽으로int speakerPin =15;#define DIGIT_ON LOW#define DIGIT_OFF HIGHint segA =2; 정수 세그먼트B =3; 정수 세그먼트C =4; 정수 세그먼트 D =5; 정수 세그먼트E =A0; //핀 6은 pwm 기능에 대해 bij 디스플레이 1에 사용됩니다. int segF =7; 정수 세그먼트G =8; //int segPD =; int button1=13;int button2=12;int button3=16;int button4=17;int countdown_time =60;struct struct_digits { int digit[4]; }; 무효 설정() { pinMode(segA, OUTPUT); 핀모드(세그B, 출력); 핀모드(segC, OUTPUT); 핀모드(세그D, 출력); 핀모드(세그, 출력); 핀모드(segF, 출력); 핀모드(세그G, 출력); for (int i=0; i<4; i++) { pinMode(digit_pin[i], OUTPUT); } 핀모드(스피커핀, 출력); 핀모드(버튼1,INPUT_PULLUP); 핀모드(버튼2,INPUT_PULLUP); 핀모드(버튼3,INPUT_PULLUP); pinMode(button4,INPUT_PULLUP);}void playTone(int tone, int duration) { for (long k =0; k 0; q--){ PrintNumber(q,del); if (digitalRead(button2)==LOW) { 반환 거짓; } } 인쇄 번호(0,0); 플레이톤(1519,1000); return true;}void reset() { 정수 m, 0, d, 눌림3 =0, 눌림4 =0; m=카운트다운_시간; 구조체 struct_digits 파기; dig =IntToDigits(countdown_time); while (digitalRead(button1)==HIGH) { for (int j=0; j<4; j++) { SwitchDigit(j); lightNumber(dig.digit[j]); 지연(5); } if (digitalRead(button3)==LOW) { if (pressed3 ==0 || press3> 30) { if (countdown_time> 0) { countdown_time -=1; } dig =IntToDigits(countdown_time); } 눌림3 +=1; } else if (digitalRead(button4)==LOW) { if (pressed4 ==0 || press4> 30) { if (countdown_time <9999) { countdown_time +=1; } dig =IntToDigits(countdown_time); } 눌림4 +=1; } if (digitalRead(button3)==HIGH) { 눌림3=0; } if (digitalRead(button4)==HIGH) { 눌림4=0; } }}무효 루프(){ 리셋(); 동안 (!Countdown(countdown_time,962)) { 재설정(); } 동안 (digitalRead(button2)==1){};}

    회로도


    제조공정

    1. 액정 디스플레이(LCD)
    2. C# 메서드 오버로딩
    3. 전시:원시 전시
    4. Kuman TFT 3.5 RetroPie 2018
    5. Verilog 작업
    6. Arduino Pong 게임 - OLED 디스플레이
    7. 감시 타이머란 무엇입니까?
    8. ATmega 외계인 테마 슬롯 머신
    9. Nextion 디스플레이로 재생
    10. 조정 가능한 충격 흡수 장치에 대한 간략한 설명