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

최대 1MHz의 DIY 단순 구형파 발생기

구성품 및 소모품

Arduino Nano R3
× 1
Adafruit Standard LCD - 파란색 바탕에 16x2 흰색
× 1
푸시버튼 스위치, 순간
× 3
단일 회전 전위차계 - 10k 옴
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

이것은 기본적으로 TimerOne 라이브러리를 사용하여 약 5Hz에서 1Mhz 범위의 핀 9에서 PWM 신호를 생성할 수 있는 간단한 구형파 발생기이며 듀티 사이클을 0에서 100%까지 조정할 수 있습니다.

장치는 구축이 매우 간단하고 몇 가지 구성 요소로 구성됩니다.

- 아두이노 나노 마이크로컨트롤러

- LCD 디스플레이

- 3개의 풀업 저항

- 및 3개의 푸시 버튼

펄스 발생기는 Arduino의 디지털 입력 6과 7에 연결된 버튼을 사용하여 펄스 반복 주기를 조정할 수 있는 기능이 있습니다. 13 입력 핀을 사용하여 듀티 사이클을 조정할 수 있습니다. 지속 시간 및 듀티 사이클 판독값은 LCD 16 × 2 표시기의 첫 번째 행에 표시되고 주파수 판독값은 두 번째 행에 표시됩니다. 펄스 반복 주기를 조정하는 최소 단계는 1μs이므로 주파수는 개별적으로 변경됩니다. 예를 들어 1μs는 1MHz, 2μs는 500kHz, 3μs는 333.333Hz 등 주파수가 감소함에 따라 , 조정의 부드러움이 증가합니다. 이것은 더 높은 주파수에서 매우 비실용적이지만 단순함의 대가입니다. 이전 비디오 중 하나에서 유사한 장치의 구성을 설명했지만 이러한 단점이 없고 범위가 훨씬 더 넓지만 구축이 더 복잡한 특수 DDS 칩의 도움을 받았습니다.

출력 신호를 시각화하기 위해 작은 단일 채널 오실로스코프를 사용합니다. 마지막으로 장치는 적절한 상자에 장착되며 전자 연구실에서 또 다른 유용한 도구입니다.

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

코드

<울>
  • Arduino 코드
  • Arduino 코드C/C++
    #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// RS,E,D4,D5,D6,D7unsigned long t=1000 ,f,k=512;// 기본 1000μs(1000Hz), 미앤더, 펄스 바이트 k1,kn,kn1,kn2;int drive,drive0;void setup(){ lcd.begin(16, 2);// LCD 16X2 핀 모드(9, 출력); pinMode(6,INPUT);//입력 6의 버튼 pinMode(7,INPUT);//입력 7의 버튼 pinMode(13,INPUT);//입력 13의 버튼}void loop(){ Timer1.initialize(t ); // 주기 Timer1.pwm(9, k); // k - 채우기 비율 0-1023. kn=digitalRead(6);// 버튼 입력 6(- 펄스 주기) kn1=digitalRead(7);// 버튼 입력 7(+ 펄스 주기) kn2=digitalRead(13);// 버튼 입력 13(+ 원 채우기 factor) if(kn==HIGH){ // 주기 감소 drive++; if(드라이브<30){ t=t-1; } // 버튼을 오래 누르고 있으면 펄스 수정 else if(drive>30 &&drive<60 ){ t=t-10; } else if(드라이브>=60 &&드라이브<100){ t=t-100; } else if(드라이브>=100){ t=t-1000; } } else{ 드라이브=0; } if(kn1==HIGH){// 마침표 추가 drive0++; if(드라이브0<30){ t=t+1; // 버튼을 오래 누르고 있으면 수정 } else if(drive0>30 &&drive0<60 ){ t=t+10; } else if(drive0>=60 &&drive0<100){ t=t+100; } else if(드라이브0>=100){ t=t+1000; } } else{ 드라이브0=0; } if(t==0 || t>300000){ // t=1인 경우 펄스 지속 시간을 최소로 제한합니다. } if(t>200000 &&t<300000){ // 펄스 지속 시간을 t=200000으로 제한합니다. } f=1000000/t; // 주파수 계산 k1=k*100/1024; // % 채우기 비율 계산 if(kn2==HIGH){// 채우기 비율 조정 버튼(k=k+16의 원에서;// 1024 중 16단계(더 부드러운 조정을 위해 8을 수행할 수 있음) } if(k==1024){ k=0; } // 표시기 정보 표시 lcd.setCursor(0,0); lcd.print("T="); lcd.print(t); lcd.print( "우리"); lcd.setCursor(12,0); lcd.print(k1); lcd.print(" %"); lcd.setCursor(0,1); lcd.print("F="); lcd .print(f), lcd.print("Hz"), 지연(300), lcd.setCursor(0,0), lcd.print(" "), lcd.setCursor(0,1), lcd.print( " ");}

    회로도


    제조공정

    1. 구형파 신호
    2. DIY LUMAZOID Arduino 뮤직 비주얼라이저
    3. 단순 워드 클럭(Arduino)
    4. Nokia 5110 LCD의 DIY Simple 20kHz Arduino 오실로스코프
    5. Arduino와 스마트폰을 사용한 DIY 전압계
    6. JX 웨이브 생성기
    7. Arduino를 사용한 간단한 장애물 센서
    8. DIY 가상 현실 스케이트보드
    9. 간단한 UNO 계산기
    10. 로터리 인코더가 있는 DIY 간단한 측정 휠