이 튜토리얼에서는 ESP32 마이크로컨트롤러와 트랜지스터를 사용하여 능동 부저를 제어하는 방법을 배웁니다. 이 프로젝트는 부저를 켜고 끄는 것을 포함하며, 삐 소리를 만들어냅니다. ESP32의 내장 Wi-Fi 및 Bluetooth 기능을 통해 이 프로젝트를 향후 더 복잡한 IoT 애플리케이션으로 확장할 수 있습니다.
사용할 부품에는 ESP32 보드, 능동 부저, 트랜지스터(S8050), 저항이 포함됩니다. 이러한 부품을 올바르게 배선하면 ESP32를 통해 부저의 소리를 제어할 수 있습니다. 또한 이 프로젝트를 실행하는 데 필요한 배선 및 코드에 대한 간략한 개요를 제공합니다. 더 자세한 설명이 필요하면 이 튜토리얼에 포함된 비디오(비디오 00:00)를 확인하세요.
S87050_transistor
하드웨어 설명
이 프로젝트의 주요 부품에는 ESP32 마이크로컨트롤러, 능동 부저, S8050 트랜지스터가 포함됩니다. ESP32는 Wi-Fi와 Bluetooth를 모두 갖춘 강력한 마이크로컨트롤러로, 다양한 IoT 프로젝트를 가능하게 합니다. 능동 부저는 전압이 인가되면 소리를 생성하며, S8050 트랜지스터는 ESP32의 저전압 신호로 부저를 제어하는 스위치 역할을 합니다.
트랜지스터에는 컬렉터, 베이스, 이미터의 세 개의 핀이 있습니다. 저항을 통해 베이스 핀에 전압이 인가되면 컬렉터에서 이미터로 전류가 흐를 수 있게 되어 부저에 전원이 공급됩니다. 이 설정을 통해 ESP32의 GPIO 핀에 과부하를 주지 않고 부저를 안전하게 제어할 수 있습니다.
ESP32-13-buzzer-schematic
데이터시트 세부 정보
제조업체
SunFounder
부품 번호
TMBB 12 A05
작동 전압
3–8 V
정격 전압
5 V
최대 전류
30 mA
발진 주파수
2700 ± 300 Hz
1 kΩ 저항을 사용하여 트랜지스터의 베이스로 흐르는 전류를 제한하세요.
능동 부저의 양극과 음극 단자를 올바르게 연결했는지 확인하세요.
단락을 방지하기 위해 핀 연결을 다시 확인하세요.
더 쉬운 연결과 조정을 위해 브레드보드를 사용하세요.
부저는 3.3V와 5V 모두에서 작동할 수 있지만, 회로 요구 사항에 따라 전원을 공급하세요.
배선 지침
ESP32-13-buzzer-wriing
부품을 배선하려면 먼저 능동 부저를 브레드보드에 삽입하세요. 부저의 양극 단자를 ESP32의 3.3V 핀에 연결합니다. 부저의 음극 단자는 S8050 트랜지스터의 컬렉터 핀에 연결해야 합니다. 다음으로 S8050 트랜지스터를 브레드보드에 삽입하고 평평한 면이 앞을 향하도록 합니다. 왼쪽 핀(컬렉터)은 부저의 음극 단자에 연결되고, 중간 핀(베이스)은 1 kΩ 저항에 연결되며, 오른쪽 핀(이미터)은 접지에 연결됩니다.
이제 1 kΩ 저항의 다른 쪽 끝을 ESP32의 GPIO 핀 14에 연결합니다. 마지막으로 트랜지스터의 이미터 핀을 브레드보드의 접지 레일에 연결합니다. 모든 연결이 안전한지 확인하고 회로에 전원을 공급하기 전에 핀 정렬을 다시 확인하세요.
코드 예제 및 설명
부저를 제어하는 코드에 대한 간략한 개요는 다음과 같습니다. 먼저 부저에 연결된 핀을 정의합니다:
const int buzzerPin = 14; // 부저 핀
이 줄은 부저를 제어하는 데 사용되는 ESP32의 핀 14를 참조하도록 buzzerPin 변수를 설정합니다.
다음으로 setup() 함수에서 부저 핀을 출력으로 설정합니다:
void setup()
{
pinMode(buzzerPin, OUTPUT); // 출력으로 설정
}
이렇게 하면 ESP32가 핀 14를 사용하여 부저를 켜고 끄는 신호를 보낼 수 있습니다.
loop() 함수에서는 for 루프를 만들어 부저를 여러 번 작동시킵니다:
for (int i = 0; i < 50; i++) // 50번 반복하고 각각 짧은 톤을 재생합니다
{
digitalWrite(buzzerPin, HIGH); // HIGH로 설정하여 부저가 울리게 합니다
delay(3); // 3밀리초 대기
digitalWrite(buzzerPin, LOW); // LOW로 설정하여 부저를 끕니다
delay(3); //
}
이 루프는 부저가 50번 울리게 하며, 각 울림은 3밀리초 동안 지속됩니다. 루프가 완료된 후 반복하기 전에 1초의 지연이 있습니다.
시연 / 예상 결과
배선과 코드가 올바르게 설정되면 ESP32에 전원을 공급하면 부저가 작동하여 일련의 삐 소리가 발생합니다. 부저가 울리지 않으면 연결, 특히 트랜지스터와 저항의 방향을 확인하세요. 코드에서 올바른 GPIO 핀이 사용되고 있는지, 전원 공급이 충분한지 확인하세요(비디오 01:30).
812-ESP32 Tutorial 13/55- Arduino code for controlling buzzer
언어: C++
const int buzzerPin = 14; // the buzzer pin
void setup()
{
pinMode(buzzerPin, OUTPUT); // Set as output
}
void loop()
{
for (int i = 0; i < 50; i++) // Loop 50 times and play a short tone each time
{
digitalWrite(buzzerPin, HIGH); // Set to HIGH to make the buzzer sound
delay(3); // Wait for 3 milliseconds
digitalWrite(buzzerPin, LOW); // LOW to turn off the buzzer
delay(3); //
}
delay(1000); // Wait for 1s before starting the next loop
}