esp32 내장 DAC와 트랜지스터로 파형음 재생
ArduinoIDE로 진행합니다.
환경
MacOS v10.14.3
ArduinoIDE v1.8.8
ESP32 (Arduino 보드) v1.0.2
ESP32-DevKitC htp // 아키즈키덴시. 코 m/가타 g/g/gM-11819/
트랜지스터 2SA1015GR htp // 아키즈키덴시. 코 m/타타 g/g/기-00882/
이 트랜지스터는 뭔가 근처에 있었기 때문에 이것을 사용해 보겠습니다.
esp32의 내장 DAC 사용
참고 사이트
참고 사이트
샘플 코드
dacTest1.ino
double i=0.0;
void setup() {
Serial.begin(115200);
}
void loop() {
// Serial.println(128+128*sin(i));
dacWrite(25, 128+128*sin(i));
i+=0.01;
}
매우 간단했습니다.
esp32의 내장 dac는 gpio25와 26 고정답게, 이번에는 25를 이용했습니다
참고 사이트 위의 녀석은 dac.h를 포함하고 있으며, 그것을 사용하면 DAC_CHANNEL_1이라는 상수를 사용할 수 있습니다.
그리고 단순히 sin()을 이용하여 0~255의 값으로 sin파를 생성하고 dacWrite()로 출력하고 있습니다
배선
결과
소리는 되었지만 작
그리고 pwm에서 내는 경고음과 별로 변하지 않는 느낌이 ...
sin 파 이외에도 시도
참고 사이트
샘플 코드
참고 사이트의 만마입니다.
dacTest2.ino
void setup() {
Serial.begin(115200);
}
void loop() { // Generate a Sine wave
for (int deg = 0; deg < 360; deg = deg + 8){
dacWrite(25, int(128 + 80 * (sin(deg*PI/180)+1/pow(3,2)*sin(3*deg*PI/180)+1/pow(5,2)*sin(5*deg*PI/180)+1/pow(7,2)*sin(7*deg*PI/180)+1/pow(9,2)*sin(9*deg*PI/180)))); // Triangle
}
}
참고 사이트의 「ESP32_DAC_Simple.ino」에서 Square에서 Triangle로 바꾸어 보았습니다.
결과
왠지 바뀐 것 같지만 역시 작다?
트랜지스터를 사용할거야!
참고 사이트
여기의 사이트가 왠지 재미있을 것 같았기 때문에 똑같이 해 본다!
사람이 단자를 양손으로 만져서 미량의 전류를 트랜지스터의 베이스에 보내 음량을 변화시키고 싶다.
방금 전 소스 코드에서 변경하지 않고 배선 만 변경합니다.
배선
참고 사이트와 다른 곳은 5v 출력인 곳과 저항을 120Ω으로 하고 있습니다
사진 왼쪽과 아래쪽으로 뻗어있는 빨간색과 노란색을 만지면 소리가 나올 것입니다.
결과
결국 소리는 작지만 동영상을 부디
소리가 작지만 단자를 만져 소리가 나오거나 만지는 느낌으로 볼륨 변화 트랜지스터의 연습~ 피 c. 라고 r. 코 m / 아 6 m m Dm — 루시완 (@tkyko13)
너무 굉장히 만지면 전류가 흐르지 않을까 반대로 소리가 작아지는 것 같아서 재미있네요
아~ 처음부터 만들고 싶었던 것에서 멀어지는 느낌이 들겠지만~ 재미있었어요~
Reference
이 문제에 관하여(esp32 내장 DAC와 트랜지스터로 파형음 재생), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tkyko13/items/2a2dec7180fd2430bb08텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)