9833 칩을 이용한 함수발생기 제작
Jump to navigation
Jump to search
AD 9833 칩을 위한 라이브러리를 설치하도록 합니다.
아두이노는 다음의 자료를 참고하여 회로를 구성하였습니다.
코드는 다음과 같습니다.
- include <AD9833.h> // Include the library
- define FNC_PIN 10 // Can be any digital IO pin
- define WAVE_PIN 7
- define FREQ_PIN 8
int Wave_Mode = 0; float FREQ =300.0;
AD9833 gen(FNC_PIN); // Defaults to 25MHz internal reference frequency
void setup() {
gen.Begin(); gen.ApplySignal(TRIANGLE_WAVE,REG0,FREQ); gen.EnableOutput(true); Serial.begin(115200); pinMode(WAVE_PIN,INPUT); pinMode(FREQ_PIN,INPUT);
}
void loop() {
//Serial.println(analogRead(A0)); int buttonState = digitalRead(WAVE_PIN); int buttonState1 = digitalRead(FREQ_PIN); Serial.print(buttonState); Serial.println(buttonState1); Serial.print(Wave_Mode); if(buttonState == HIGH){ Wave_Mode++; delay(10); } if(buttonState1 == HIGH){ FREQ =FREQ-10.0; if(FREQ<10) FREQ =300.0; delay(10); } Serial.println(FREQ); if(Wave_Mode>3) Wave_Mode=0; else if(Wave_Mode==0) gen.ApplySignal(SINE_WAVE,REG0,FREQ); else if(Wave_Mode==1) gen.ApplySignal(TRIANGLE_WAVE,REG0,FREQ); else if(Wave_Mode==2) gen.ApplySignal(SQUARE_WAVE,REG0,FREQ); else gen.ApplySignal(HALF_SQUARE_WAVE,REG0,FREQ); delay(100);
}
7,8 번의 입력이 버튼의 입력을 받아 파형을 바꾸거나 주파수를 순차적으로 바꾸도록 만들었습니다.