« ตอบกลับ #2 เมื่อ: กุมภาพันธ์ 06, 2019, 09:34:35 AM »
ตัวอย่างโปรแกรมสร้างสัญญาณ
1. โปรแกรมสร้างสัญญาณรูปคลื่นซายน์ โดยสร้างรูปคลื่นจากการเปลี่ยนแปลงค่าทุก ๆ 1 องศา ส่งสัญญาณออกทางขา 25 (DAC1)
โค้ด
#define DAC1 25
int sine[360];
void setup() {
for (int deg = 0 ; deg < 360 ; deg++ ) {
sine[deg] = int(128 + 127 * sin(deg * PI / 180));
}
}
void loop() {
for (int deg = 0 ; deg < 360 ; deg ++ ) {
dacWrite(DAC1, sine[deg]);
}
}
ผลการรันที่ได้
2. โปรแกรมสร้างสัญญาณรูปคลื่นซายน์ โดยสร้างรูปคลื่นจากการเปลี่ยนแปลงค่าทุก ๆ 5 องศา ส่งสัญญาณออกทางขา 25 (DAC1)
โค้ด
#define DAC1 25
int sine[360];
void setup() {
for (int deg = 0 ; deg < 360 ; deg++ ) {
sine[deg] = int(128 + 127 * sin(deg * PI / 180));
}
}
void loop() {
for (int deg = 0 ; deg < 360 ; deg +=5 ) {
dacWrite(DAC1, sine[deg]);
}
}
ผลการรันที่ได้
3. โปรแกรมสร้างสัญญาณรูปคลื่นซายน์ โดยสร้างรูปคลื่นจากการเปลี่ยนแปลงค่าทุก ๆ 10 องศา ส่งสัญญาณออกทางขา 25 (DAC1)
โค้ด
#define DAC1 25
int sine[360];
void setup() {
for (int deg = 0 ; deg < 360 ; deg++ ) {
sine[deg] = int(128 + 127 * sin(deg * PI / 180));
}
}
void loop() {
for (int deg = 0 ; deg < 360 ; deg +=10 ) {
dacWrite(DAC1, sine[deg]);
}
}
ผลการรันที่ได้
3. โปรแกรมสร้างสัญญาณรูปคลื่นซายน์และรูปคลื่นฟันเลื่อยโดยสร้างรูปคลื่นจากการเปลี่ยนแปลงค่าทุก ๆ 1 องศา ส่งสัญญาณออกทางขา 25 (DAC1) และขา 26 (DAC2)
โค้ด
#define DAC1 25
#define DAC2 26
int sine[360];
int sawtooth[360];
void setup() {
for (int deg = 0 ; deg < 360 ; deg++ ) {
//----------------------------Sine wave----------------
sine[deg] = int(128 + 127 * sin(deg * PI / 180));
//------------------Sawtooth---------------------------
sawtooth[deg] = map(deg, 0, 360, 0, 255);
}
}
void loop() {
for (int deg = 0 ; deg < 360 ; deg ++ ) {
dacWrite(DAC1, sine[deg]);
dacWrite(DAC2, sawtooth[deg]);
}
}
ผลการรันที่ได้
« แก้ไขครั้งสุดท้าย: กุมภาพันธ์ 06, 2019, 09:46:01 AM โดย admin »
บันทึกการเข้า