ESP32 பயிற்சி 33/55 - SunFounder இன் ESP32 IoT கற்றல் கிட் பயன்படுத்தி டிஜிட்டல் பகடை
இந்த டுடோரியலில், SunFounder இன் IoT கற்றல் கிட்டில் இருந்து ESP32 மற்றும் ஏழு-பிரிவு காட்சியைப் பயன்படுத்தி டிஜிட்டல் பகடை ஒன்றை உருவாக்குவோம். இந்த திட்டம் ஒரு பொத்தானை அழுத்துவதன் மூலம் 1 முதல் 6 வரையிலான எண்களை உருவாக்கி, மெய்நிகர் பகடையை உருட்ட உங்களை அனுமதிக்கும். காட்சிகள் மற்றும் பொத்தான்களுடன் இடைமுகம் குறித்து கற்றுக்கொள்ளும்போது ESP32 இன் திறன்களை ஆராய இது ஒரு சிறந்த வழியாகும். கூடுதல் தெளிவுக்காக, (0:00 இல் உள்ள வீடியோவில்) வீடியோவைப் பார்க்கவும்.
வன்பொருள் விளக்கம்
இந்த திட்டத்தின் முக்கிய கூறுகளில் ESP32 மைக்ரோகண்ட்ரோலர், 74HC595 ஷிப்ட் ரெஜிஸ்டர், ஏழு-பிரிவு காட்சி மற்றும் ஒரு புஷ் பொத்தான் ஆகியவை அடங்கும். ESP32 என்பது Wi-Fi மற்றும் புளூடூத்தை ஒருங்கிணைக்கும் ஒரு சக்திவாய்ந்த மைக்ரோகண்ட்ரோலர் ஆகும், இது IoT பயன்பாடுகளுக்கு ஏற்றதாக அமைகிறது. 74HC595 ஷிப்ட் ரெஜிஸ்டர் ஒவ்வொரு பிரிவையும் நேரடியாக இணைப்பதை விட குறைவான பின்களைப் பயன்படுத்தி ஏழு-பிரிவு காட்சியைக் கட்டுப்படுத்த அனுமதிக்கிறது.
ஏழு-பிரிவு காட்சி எண்களைக் காட்டுகிறது மற்றும் ஷிப்ட் ரெஜிஸ்டரிலிருந்து தரவை அனுப்புவதன் மூலம் கட்டுப்படுத்தப்படுகிறது. பகடை உருட்டலைத் தூண்டுவதற்கு புஷ் பொத்தான் பயன்படுத்தப்படுகிறது, இது காட்டப்படும் சீரற்ற எண்ணை உருவாக்குகிறது. அழுத்தும் போது, பொத்தான் ESP32 இல் உள்ள பின் 13 உடன் இணைகிறது, இது அழுத்தாத போது அதை உயர் நிலையில் வைத்திருக்க உள் புல்-அப் மின்தடையத்தைக் கொண்டுள்ளது.
டேட்டாஷீட் விவரங்கள்
| உற்பத்தியாளர் | டெக்சாஸ் இன்ஸ்ட்ரூமென்ட்ஸ் |
|---|---|
| பகுதி எண் | 74HC595 |
| லாஜிக்/IO மின்னழுத்தம் | 2 V முதல் 6 V |
| வழங்கல் மின்னழுத்தம் | 4.5 V முதல் 5.5 V |
| வெளியீட்டு மின்னோட்டம் (ஒரு சேனலுக்கு) | அதிகபட்சம் 6 mA |
| உச்ச மின்னோட்டம் (ஒரு சேனலுக்கு) | அதிகபட்சம் 35 mA |
| PWM அதிர்வெண் வழிகாட்டுதல் | பொருந்தாது |
| உள்ளீட்டு லாஜிக் வரம்புகள் | VIH ≥ 2 V, VIL ≤ 0.8 V |
| மின்னழுத்த வீழ்ச்சி / RDS(on) / செறிவு | அதிகபட்சம் 0.5 V |
| வெப்ப வரம்புகள் | 150 °C |
| பேக்கேஜ் | DIP-16 |
| குறிப்புகள் / மாறுபாடுகள் | டிஜிட்டல் காட்சிகளில் பொதுவாகப் பயன்படுத்தப்படுகிறது |
- நம்பகமான செயல்பாட்டிற்கு சரியான மின்னழுத்த அளவுகளை (4.5 V முதல் 5.5 V) உறுதி செய்யவும்.
- ஷிப்ட் ரெஜிஸ்டரை சேதப்படுத்தாமல் இருக்க வெளியீட்டு மின்னோட்டத்தை வரம்பிடவும்.
- மின்னழுத்தத்தை நிலைப்படுத்த மின் பின்களுக்கு அருகில் டிகப்பிளிங் மின்தேக்கிகளைப் பயன்படுத்தவும்.
- எண்களின் தவறான பிரதிநிதித்துவத்தைத் தவிர்க்க ஏழு-பிரிவு காட்சியை சரியாக இணைக்கவும்.
- எதிர்பாராத நடத்தைக்கு வழிவகுக்கும் தளர்வான இணைப்புகளுக்கு வயரிங்கை சரிபார்க்கவும்.
வயரிங் வழிமுறைகள்

டிஜிட்டல் பகடையை வயர் செய்ய, மின் இணைப்புகளை அமைப்பதன் மூலம் தொடங்கவும். உங்கள் பிரெட்போர்டில் உள்ள தரை (நீல கோடு) ESP32 இல் உள்ள தரை பின்னுடன் இணைத்து, அனைத்து தரை புள்ளிகளும் ஒன்றோடொன்று இணைக்கப்பட்டுள்ளதை உறுதி செய்யவும். அடுத்து, ESP32 இலிருந்து ஒரு 3.3V பின்னை பிரெட்போர்டில் உள்ள மின் ரெயிலுடன் (சிவப்பு கோடு) இணைக்கவும்.
74HC595 ஷிப்ட் ரெஜிஸ்டருக்கு, பின் 1 3.3V ரெயிலுடன் இணைக்கப்பட்டுள்ளதையும், பின் 8 தரையுடன் இணைக்கப்பட்டுள்ளதையும் உறுதி செய்யவும். தரவு வெளியீட்டு பின்னை (DS) ESP32 இல் உள்ள பின் 25 உடன், ஷிப்ட் கடிகார பின்னை (SHCP) பின் 26 உடன், மற்றும் சேமிப்பு கடிகார பின்னை (STCP) பின் 27 உடன் இணைக்கவும். புஷ் பொத்தான் ESP32 இல் உள்ள பின் 13 க்கும் தரைக்கும் இடையில் இணைக்கப்பட வேண்டும், இது அழுத்தும் போது பின்னை குறைந்த நிலைக்கு இழுக்க அனுமதிக்கிறது.
குறியீடு எடுத்துக்காட்டுகள் & விளக்கம்
குறியீட்டில், ஷிப்ட் ரெஜிஸ்டர் மற்றும் பொத்தானுக்குப் பயன்படுத்தப்படும் பின்களை முதலில் வரையறுக்கிறோம். பொத்தான் பின் buttonPin என வரையறுக்கப்பட்டு ESP32 இல் பின் 13 ஆக அமைக்கப்பட்டுள்ளது. datArray தரவு வரிசை ஏழு-பிரிவு காட்சிக்கான 0-9 எண்களின் பைனரி பிரதிநிதித்துவங்களைக் கொண்டுள்ளது.
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP
const int DS = 25; //DS
const int buttonPin = 13;
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
setup() செயல்பாட்டில், பொத்தான் பின்னை உள்ளீட்டு முறைக்கும், ஷிப்ட் ரெஜிஸ்டர் பின்களை வெளியீட்டு முறைக்கும் அமைக்கிறோம். இது பொத்தானிலிருந்து உள்ளீட்டைப் படிக்கவும், காட்சிக்கு தரவை அனுப்பவும் பின்களை தயார்படுத்துகிறது.
void setup ()
{
pinMode(buttonPin,INPUT);
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
நிரலின் முக்கிய தர்க்கம் loop() செயல்பாட்டில் காணப்படுகிறது. இது பொத்தான் அழுத்தப்பட்டுள்ளதா என்பதைச் சரிபார்த்து, சீரற்ற எண்ணை உருவாக்கி, ஏழு-பிரிவு காட்சியில் எண்ணைக் காட்ட show_number() செயல்பாட்டை அழைக்கிறது.
void loop()
{
if(digitalRead(buttonPin) == LOW)
{
int diceNumber = random(1, 7);
show_number(diceNumber);
delay(50);
}
}
show_number() செயல்பாடு தரவு வரிசையிலிருந்து பொருத்தமான மதிப்பை ஷிப்ட் ரெஜிஸ்டருக்கு அனுப்புகிறது, இது உருவாக்கப்பட்ட எண்ணைக் காட்ட காட்சியின் பிரிவுகளைக் கட்டுப்படுத்துகிறது. பொத்தான் அழுத்தப்படும் போது காட்சி பின்னூட்டத்திற்கு இந்த செயல்பாடு முக்கியமானது.
செயல்விளக்கம் / என்ன எதிர்பார்க்கலாம்
அமைப்பு முடிந்து குறியீடு பதிவேற்றப்பட்டதும், பொத்தானை அழுத்தினால் 1 முதல் 6 வரையிலான சீரற்ற எண் உருவாக்கப்படும், அது ஏழு-பிரிவு காட்சியில் காட்டப்படும். எல்லாம் சரியாக இணைக்கப்பட்டிருந்தால், பொத்தானை அழுத்தும் ஒவ்வொரு முறையும் காட்சியில் ஒரு எண் தோன்ற வேண்டும். மிதக்கும் உள்ளீடுகள் குறித்து எச்சரிக்கையாக இருங்கள்; ஒழுங்கற்ற நடத்தையைத் தவிர்க்க பொத்தான் சரியாக தரையுடன் (ground) இணைக்கப்பட்டுள்ளதை உறுதிசெய்யவும் (வீடியோவில் 1:30 இல்).
வீடியோ நேரக்குறியீடுகள்
- 00:00 தொடக்கம்
- 1:48 திட்ட அறிமுகம்
- 3:40 டிஜிட்டல் டைஸ் இணைப்பு விளக்கம்
- 13:16 டிஜிட்டல் டைஸ்க்கான Arduino குறியீடு விளக்கம்
- 19:19 Arduino IDE இல் ESP32 போர்டு மற்றும் COM போர்ட்டைத் தேர்ந்தெடுத்தல்
- 21:00 டிஜிட்டல் டைஸ் செயல்விளக்கம்
- 22:15 Arduino குறியீட்டைச் சரிசெய்தல்
// Define the pins used for the 74hc595 and button
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP
const int DS = 25; //DS
const int buttonPin = 13;
// Define an array of values to display numbers on a 7-segment display
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int buttonState = false;
void setup ()
{
// Set the button pin to input mode
pinMode(buttonPin,INPUT);
//Set pins to 74hc595
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
void loop()
{
// Check if the button is pressed
if(digitalRead(buttonPin) == LOW)
{
// Generate a random number between 1 and 6
int diceNumber = random(1, 7);
// Display the number on the 7-segment display
show_number(diceNumber);
// Delay for 50 milliseconds
delay(50);
}
}
// Function to display a number on a 7-segment display
void show_number(int num)
{
// Ground ST_CP and hold low for as long as you are transmitting
digitalWrite(STcp, LOW);
// Send the data for the number to the shift register
shiftOut(DS, SHcp, MSBFIRST, datArray[num]);
// Pull the ST_CP to save the data
digitalWrite(STcp, HIGH);
}
Common Course Links
Common Course Files
வளங்கள் மற்றும் மேற்கோள்கள்
-
ஆவணங்கள்ESP32 Tutorial 33/55 - SunFounder doc page for digital dicedocs.sunfounder.com
கோப்புகள்📁
கோப்புகள் கிடைக்கவில்லை.