குறியீட்டை தேடு

ESP32 பயிற்சி 14/55 - SunFounder ESP32 IoT கற்றல் கிட் பயன்படுத்தி தனிப்பயன் இசை குறிப்பு வாசித்தல்

ESP32 பயிற்சி 14/55 - SunFounder ESP32 IoT கற்றல் கிட் பயன்படுத்தி தனிப்பயன் இசை குறிப்பு வாசித்தல்

இந்த டுடோரியலில், SunFounder ESP32 மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி, ஒரு செயலற்ற பஸர் (passive buzzer) மற்றும் ஒரு டிரான்சிஸ்டரைக் கொண்டு இசைக் குறிப்புகளை எவ்வாறு இசைப்பது என்பதைக் கற்றுக்கொள்வோம். ESP32 இன் GPIO பின்கள் மூலம் பஸரைக் கட்டுப்படுத்தி, குறிப்பிட்ட அதிர்வெண்களுடன் ஒலியை உருவாக்குவது எப்படி என்பதை இந்தத் திட்டம் நிரூபிக்கிறது.

ESP32 உடன் ஒரு செயலற்ற பஸரை இணைப்போம், இது நாம் வழங்கும் அதிர்வெண்ணின் அடிப்படையில் வெவ்வேறு இசைக் குறிப்புகளை உருவாக்க அனுமதிக்கும். இந்த அமைப்பில், பஸரை அதிவேகமாக இயக்க மற்றும் நிறுத்த ஒரு டிரான்சிஸ்டரைப் பயன்படுத்துகிறோம், இதன் மூலம் நாம் கேட்கக்கூடிய ஒலி அலைகளை உருவாக்குகிறோம். திட்டம் குறித்து மேலும் தெளிவுபடுத்த, வீடியோவைப் பார்க்கவும் (வீடியோவில் 00:30 இல்).

ESP32-13-பஸர்-சுற்று வரைபடம்

வன்பொருள் விளக்கம்

இந்தத் திட்டத்தில் பயன்படுத்தப்படும் முக்கிய கூறுகளில் SunFounder ESP32 மைக்ரோகண்ட்ரோலர், ஒரு செயலற்ற பஸர் மற்றும் ஒரு NPN டிரான்சிஸ்டர் (2N8050) ஆகியவை அடங்கும். ESP32 என்பது உள்ளமைக்கப்பட்ட Wi-Fi மற்றும் புளூடூத் திறன்களைக் கொண்ட ஒரு சக்திவாய்ந்த மேம்பாட்டு பலகை ஆகும், இது பல்வேறு IoT பயன்பாடுகளுக்கு ஏற்றதாக அமைகிறது. இந்த வழக்கில், இது பஸரைக் கட்டுப்படுத்த சிக்னல்களை உருவாக்கும்.

செயலற்ற பஸர், மாற்று மின்னழுத்தம் (alternating voltage) பயன்படுத்தப்படும்போது ஒலியை உருவாக்குவதன் மூலம் செயல்படுகிறது. உள்ளமைக்கப்பட்ட ஆஸிலேட்டரைக் கொண்ட செயலில் உள்ள பஸர்களைப் போலல்லாமல், செயலற்ற பஸர்கள் ஒலியை உருவாக்க வெளிப்புற சிக்னல் தேவைப்படுகிறது. டிரான்சிஸ்டர் ஒரு சுவிட்சாக செயல்படுகிறது, இது ESP32 பஸரை நேரடியாக இயக்காமல் கட்டுப்படுத்த அனுமதிக்கிறது, இதன் மூலம் மைக்ரோகண்ட்ரோலரின் மின்னோட்ட மதிப்பீடு (current rating) மீறப்படாமல் இருப்பதை உறுதி செய்கிறது.

S87050_டிரான்சிஸ்டர்

டேட்டாஷீட் விவரங்கள்

உற்பத்தியாளர் SunFounder
பகுதி எண் செயலற்ற பஸர்
இயக்க மின்னழுத்தம் 3.3 V - 5 V
அதிர்வு அதிர்வெண் 2 kHz - 4 kHz
மின்னோட்ட நுகர்வு ≤ 30 mA
ஒலி அழுத்த நிலை ≥ 70 dB
பேக்கேஜ் துளை வழியாக (Through-hole)
குறிப்புகள் / மாறுபாடுகள் எதுவும் இல்லை

 

  • பஸரை இணைக்கும்போது சரியான துருவமுனைப்பை (polarity) உறுதி செய்யவும்.
  • டிரான்சிஸ்டர் அடிப்பகுதிக்கு (base) மின்னோட்டத்தைக் கட்டுப்படுத்தும் மின்தடையத்தை (current-limiting resistor) பயன்படுத்தவும்.
  • பஸரை அதன் மின்னழுத்த மதிப்பீட்டிற்கு ஏற்ற மின்சார விநியோகத்துடன் இணைக்கவும்.
  • டிரான்சிஸ்டரின் அதிகபட்ச மின்னோட்ட மதிப்பீட்டை மீறாமல் கவனமாக இருங்கள்.
  • குறுக்கீடுகளை (short circuits) தவிர்க்க வயரிங்கை சுத்தமாக வைத்திருங்கள்.
  • கூறுகள் சேதமடைவதைத் தவிர்க்க குறியீட்டைப் பதிவேற்றும் முன் சுற்று வரைபடத்தை சோதிக்கவும்.
  • எளிதான கூறு இணைப்புகளுக்கு பிரெட்போர்டைப் பயன்படுத்தவும்.
  • பொத்தான்களைப் பயன்படுத்தினால், உள்ளீடுகளை டீபவுன்ஸ் (debounce) செய்வதை உறுதி செய்யவும்.
  • அதிக மின்னோட்டத்தில் பயன்படுத்தினால், டிரான்சிஸ்டருக்கு ஹீட் சிங்க் (heat sink) சேர்க்கவும்.

வயரிங் வழிமுறைகள்

ESP32-13-buzzer-wriing

கூறுகளை இணைக்க, செயலற்ற பஸரின் நேர்மறை முனையத்தை ESP32 இன் 3.3V பின்னுடன் இணைப்பதன் மூலம் தொடங்கவும். பஸரின் எதிர்மறை முனையம் NPN டிரான்சிஸ்டரின் சேகரிப்பான் (collector) உடன் இணைக்கப்பட வேண்டும். டிரான்சிஸ்டரின் உமிழ்ப்பான் (emitter) பின் ESP32 இன் தரை (GND) உடன் இணைக்கப்பட வேண்டும்.

அடுத்து, டிரான்சிஸ்டரின் அடிப்பகுதியிலிருந்து ESP32 இன் GPIO பின் 14 க்கு 1 kΩ மின்தடையத்தை இணைக்கவும். இந்த மின்தடையம் டிரான்சிஸ்டரின் அடிப்பகுதிக்குள் செல்லும் மின்னோட்டத்தைக் கட்டுப்படுத்துகிறது. இறுதியாக, அனைத்து தரை இணைப்புகளும் ஒன்றாக இணைக்கப்பட்டு, சுற்றுக்கு பொதுவான குறிப்பை (common reference) வழங்குவதை உறுதி செய்யவும்.

குறியீடு எடுத்துக்காட்டுகள் & விளக்கம்

const int buzzerPin = 14; // பஸர் பின்

void setup()
{
  pinMode(buzzerPin, OUTPUT); // வெளியீடாக அமைக்கவும்
}

குறியீட்டில், buzzerPin என்ற மாறிலி மாறியை வரையறுக்கிறோம், இது 14 ஆக அமைக்கப்பட்டுள்ளது, இது டிரான்சிஸ்டரின் அடிப்பகுதியுடன் இணைக்கப்பட்ட GPIO பின்னைக் குறிக்கிறது. setup() செயல்பாட்டில், இந்த பின்னை OUTPUT ஆக அமைக்கிறோம், இது ESP32 பஸரைக் கட்டுப்படுத்த அனுமதிக்கிறது.

void loop()
{
  for (int i = 0; i < 50; i++) // 50 முறை லூப் செய்து ஒவ்வொரு முறையும் ஒரு குறுகிய டோனை இசைக்கவும்
  {
    digitalWrite(buzzerPin, HIGH); // பஸர் ஒலிக்க HIGH ஆக அமைக்கவும்
    delay(3); // 3 மில்லி விநாடிகள் காத்திருக்கவும்
    digitalWrite(buzzerPin, LOW); // பஸரை அணைக்க LOW
    delay(3); // 
  }
  delay(1000); // அடுத்த லூப்பைத் தொடங்குவதற்கு முன் 1 விநாடி காத்திருக்கவும்
}

loop() செயல்பாடு 50 முறை இயங்கும் ஒரு for-லூப்பைக் கொண்டுள்ளது. ஒவ்வொரு மறுமுறையும் பஸரை விரைவாக இயக்கி அணைத்து, ஒரு டோனை உருவாக்குகிறது. 3 மில்லி விநாடிகளின் தாமதங்கள் பஸர் எவ்வளவு நேரம் இயக்கப்படுகிறது மற்றும் நிறுத்தப்படுகிறது என்பதைக் கட்டுப்படுத்துகின்றன, அதே நேரத்தில் லூப்பின் முடிவில் 1 விநாடி தாமதம் மீண்டும் செய்வதற்கு முன் ஒரு இடைவெளியை வழங்குகிறது.

செயல்விளக்கம் / என்ன எதிர்பார்க்கலாம்

வயரிங் முடிந்து குறியீடு பதிவேற்றப்பட்டவுடன், பஸரால் உருவாக்கப்படும் தொடர்ச்சியான குறுகிய டோன்களை நீங்கள் கேட்க வேண்டும். பஸர் ஒலிக்கவில்லை என்றால், உங்கள் இணைப்புகளை, குறிப்பாக டிரான்சிஸ்டரின் திசை மற்றும் மின்தடைய மதிப்பைச் சரிபார்க்கவும். குறியீட்டில் சரியான பின் பயன்படுத்தப்பட்டுள்ளதா மற்றும் ESP32 சரியாக இயக்கப்படுகிறதா என்பதை உறுதி செய்யவும்.

செயல்விளக்கத்தின் போது, சிக்கல்கள் ஏற்பட்டால், அது தவறான வயரிங் அல்லது பஸருக்கு தவறான பின்னைப் பயன்படுத்துவதால் இருக்கலாம். வழிமுறைகளுடன் வயரிங்கைச் சரிபார்த்து, மின்சார விநியோகம் போதுமானதாக இருப்பதை உறுதி செய்யவும் (வீடியோவில் 08:15 இல்).

வீடியோ நேர முத்திரைகள்

  • 00:00 தொடக்கம்
  • 1:52 திட்டத்திற்கான அறிமுகம்
  • 4:11 வயரிங் விளக்கம்
  • 8:11 Arduino IDE இல் ESP32 பலகை மற்றும் COM போர்ட்டைத் தேர்ந்தெடுத்தல்
  • 9:53 Arduino குறியீடு விளக்கம்
  • 13:17 திட்ட செயல்விளக்கம்
  • 13:58 திட்டம் 2 குறியீடு மற்றும் செயல்விளக்கம்

படங்கள்

ESP32-13-buzzer-wriing
ESP32-13-buzzer-wriing
ESP32-13-buzzer-schematic
ESP32-13-buzzer-schematic
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
S87050_transistor
S87050_transistor
813-ESP32 Tutorial 14/55- Arduino code for custom music tone
மொழி: C++
const int buzzerPin = 14; //buzzer pin
const int resolution = 8; 

// Frequencies of the 7 musical notes (in Hz)
int frequencies[] = {262, 294, 330, 349, 392, 440, 494};


// Function to play a frequency on the buzzer for a given duration
void playFrequency(int frequency, int duration) {
  ledcWriteTone(buzzerPin, frequency); // Start the tone
  delay(duration); // Wait for the specified duration
  ledcWriteTone(buzzerPin, 0); // Stop the buzzer
}

void setup() {
  ledcAttach(buzzerPin, 2000, 8); // Set up the PWM pin
}

void loop() {
  for (int i = 0; i < 7; i++) {
    playFrequency(frequencies[i], 300); // Play each note for 300ms
    delay(50); // Add a brief pause between the notes
  }
  delay(1000); // Wait for 1 second before replaying the sequence
}

வளங்கள் மற்றும் மேற்கோள்கள்

கோப்புகள்📁

தரவியல் அட்டவணை (பிடிஎப்)