질문게시판 > ad9850 sin파 2

TODAY761 TOTAL2,325,631
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | ad9850 sin파 2

페이지 정보

작성자 opqr 작성일2022-07-21 14:03 조회1,221회 댓글6건

첨부파일

본문

	

#include

 

const int W_CLK_PIN = 7;

const int FQ_UD_PIN = 8;

const int DATA_PIN = 9;

const int RESET_PIN = 10;

 

double freq = 1000000;

double freq_2 = 2000000;

double freq_3 = 3000000;

double trimFreq = 124999500;

 

int phase = 0;

 

void setup(){

  DDSRe.begin(W_CLK_PIN, FQ_UD_PIN, DATA_PIN, RESET_PIN);

  DDSRe.calibrate(trimFreq);

}

 

void loop(){

  //DDSRe.setfreq(freq, phase);

  //delay(10000);

  //DDSRe.setfreq_2(freq, freq_2, phase, phase);

  //delay(10000);

  DDSRe.setfreq_3(freq, freq_2, freq_3, phase, phase, phase);

  delay(10000);

  while(1);

}

 

수정한 라이브러리 파일과

이 코드를 구동했을 때 나오는 파형 사진입니다. 

f13c98eff4109382cb03ce1e397c41cc_1658379411_7164.jpg
f13c98eff4109382cb03ce1e397c41cc_1658379419_5395.jpg
 

 

**float pi =3.1415629543;

float freqLow = 2.0;//Hz

float freqHigh = 4.0;//Hz

float freqHigh1 = 6.0;//Hz

float freqHigh2 = 8.0;//Hz

float sensorV[200];

float X[200];

float alpha =0.90;

 

void setup() {

Serial.begin(9600);

X[0] = 0.0;

for ( int i=1; i<201; i++ ) {

sensorV[i] = 1.0*sin(2.0*pi*freqLow*i/100.0)+1.0*sin(2.0*pi*freqHigh*i/100.0);//+1.0*sin(2.0*pi*freqHigh1*i/100.0)+1.0*sin(2.0*pi*freqHigh2*i/100.0);

Serial.println(sensorV[i]);

}

/*

for ( int i=201; i<401; i++ ) {

X[i-200] =alpha*X[i-201]+(1.0-alpha);sensorV[i-200];

Serial.println(X[i-200]);

}

*/

}

 

void loop() {}

 

f13c98eff4109382cb03ce1e397c41cc_1658381677_2024.png

헤르츠가 더해지는 것이 아니라 위 그래프처럼 파형이 합쳐지게 만들고 싶습니다. 
 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 6

조회수 1,221

master님의 댓글

master 작성일

우선, AD9850으로는 한 개의 사인파만 만들 수 있습니다.
여러개의 주파수가 다른 사인파를 각각의 시간마다 잘라서 이어 붙이면 복잡한 파형을 만들 수도 있겠지만
게인 설정이 안되므로 결국 FM 주파수 밖에 못 만듭니다.
이 또한 주파수가 달라져야 하는 시점에서 위상과 주파수를 일일이 재 설정 해줘야 하므로 보통 일이 아닙니다.
결론은 AD9850으로는 불가능합니다.

opqr님의 댓글

opqr 댓글의 댓글 작성일

ad9850으론 불가능한 거였군요..
그럼 다른 가능한 모듈이나 보드가 있을까요? 주파수가 낮아도 일단 복합파형을 만들 수 있는 모듈이 있으면 알고싶습니다.

master님의 댓글

master 댓글의 댓글 작성일

소프트웨어적으로 한다는 얘기는 코드로 계산해서 출력을 하면 됩니다만
실시간으로 계산하면 연산 시간 때문에 출력주파수가 현저하게 느려질 수 밖에 없으므로
빠른 출력을 하려면 미리 계산을 해서 결과를 만들고 이 것을 테이블로 만들어두고서 그 값을 출력하기만 하면 됩니다.
이런 용도의 모듈은 DAC 모듈을 사용하면 됩니다.
많은 코드 메모리가 소요되며
저가의 아두이노에서는 메가가 비교적 메모리가 크지만 이조차도 짧은 시간 출력밖에 하지 못합니다.
코드메모리가 큰 아두이노를 찾아보시기 바랍니다.

opqr님의 댓글

opqr 댓글의 댓글 작성일

알려주셔서 감사합니다! 조언 받은대로 한번 시도해보겠습니다.

master님의 댓글

master 댓글의 댓글 작성일

간단하게 계산하는 방법을 설명 해드리면
출력의 정밀도를 높이기 위해서는
데이터의 정밀도를 8비트(1바이트)가 아닌 12비트(2바이트)를 사용하는 방법이 있고
샘플링 주파수를 높이는 방법이 있습니다.
두 가지 모두 메모리가 더 커야 가능하며, 두 가지를 모두 사용한다면 더욱 많은 메모리가 필요하게 됩니다.
10KHz 파형도 출력해야 한다고 했는데요 (주기는 100us)
1개의 파형을 10개의 출력으로 구현한다고 하면 샘플링 주파수는 100KHz(주기는 10us)
12비트(2바이트)로 출력한다면
100KHz 샘플링 주파수는 초당 100000개, 2바이트로 출력한다면 초당 200000 바이트가 필요하며
100초 출력한다고 하면 20000000바이트(20M바이트)가 필요하게 됩니다.

참고로 우노는 32K바이트, 메가는 256K 바이트의 코드메모리 사이즈입니다.
SD메모리 인터페이스를 사용하면 수십M바이트 크기를 가질 수 있지만 SD에서 메모리를 읽어서 10us 주기로 출력 할 수 있는지도 체크 하셔야 합니다.

opqr님의 댓글

opqr 댓글의 댓글 작성일

감사합니다 참조하겠습니다!

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 아두이노 메가 외부전원공급댓글[1] 이미지첨부파일 sdwxkw12 22-09-19 72
질문 아두이노 ESP32-CAM 사용 관련 질문댓글[1] 으리둥절 22-09-19 79
질문 아두이노 코드 합치기댓글[3] 면지지 22-09-19 93
질문 빗방울 감지센서 코드 맞나 확인해주세요댓글[2] 메이트 22-09-18 101
질문 아두이노 메모리 줄여주세요! master 22-09-17 81
질문 아두이노 우노 외부 전원공급댓글[1] 니노링 22-09-17 89
질문 nodemcu와 esp8266 junwoo 22-09-16 99
답변 답변글 답변 : nodemcu와 esp8266댓글[1] master 22-09-16 45
질문 DC 모터다수를 ON/OFF 구동에 관한 질문입니다.댓글[5] asdjw44 22-09-15 146
질문 아케이드 버튼 아두이노 연결 회로도 도와주세용 이미지첨부파일 퍼피 22-09-15 90
답변 답변글 답변 : 아케이드 버튼 아두이노 연결 회로도 도와주세용 이미지 master 22-09-15 78
질문 5V 모터 100개를 구동댓글[1] asdjw44 22-09-15 78
질문 아두이노랑 아케이드 버튼 연결 회로도 한번만 봐주세요!댓글[1] 첨부파일 퍼피 22-09-15 60
질문 아두이노코드 합치기 문의드립니다! 첨부파일 Linie 22-09-13 92
답변 답변글 답변 : 아두이노코드 합치기 문의드립니다! master 22-09-14 83
질문 아두이노 우노로 키보드명령댓글[1] 차따뚜이 22-09-09 132
질문 attiny85 코딩 질문입니다.댓글[2] 무야더싱 22-09-08 93
질문 코딩 질문합니다. 에그젤리 22-09-07 104
답변 답변글 답변 : 코딩 질문합니다. master 22-09-07 80
질문 아두이노 스텝다운 모듈댓글[2] junwoo 22-09-06 133
질문 라즈베리파이 코드 질문이 있습니다댓글[1] mint 22-09-06 339
질문 hal_delay에서 못 빠져나오고 있습니다.댓글[6] 하리 22-09-06 205
질문 아두이노 코딩좀 봐주세요댓글[3] 차따뚜이 22-09-05 181
질문 아두이노 출력전압에 대하여댓글[3] 홍어123 22-09-02 267
질문 아두이노 와이파이 모듈 응답 에러댓글[1] 뱅이주인 22-09-01 135
질문 uart 파일전송댓글[1] 하리 22-08-30 145
질문 아두이노 인체감지센서 알림댓글[1] 면지지 22-08-28 179
질문 이산화탄소센서와 브래드보드를 연결하려고합니다.댓글[2] 이미지첨부파일 생물공학도 22-08-26 178
질문 진동 센서댓글[4] 첨부파일 공부하좌 22-08-25 218
질문 esp32를 활용한 시간 별 데이터 전송댓글[2] cansad 22-08-24 114
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기