กระโดดไปยัง:
บทเรียน ESP32 1/55 - แนะนำชุดเรียนรู้ IoT ESP32 ของ SunFounder ซอฟต์แวร์และ Arduino IDE บทช่วยสอน ESP32 2/55 - ESP32 คืออะไร, บอร์ดขยายกล้อง, แกะกล่องชุด IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 3/55 - โครงการตัวต้านทาน, LED, Breadboard: สวัสดี LED - ชุดเรียนรู้ IoT ESP32 บทเรียน ESP32 4/55 - ชนิดข้อมูล การกำหนดตัวแปร Int, bool, char, Serial Monitor - ชุด IoT ESP32 บทเรียน ESP32 5/55 - การหรี่แสง LED, ควบคุมความสว่างของ LED - ชุดเรียนรู้ IoT ESP32 บทช่วยสอน ESP32 6/55 - การใช้โปรเจกต์ RGB LED 2.3 - ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 7/55 - การใช้ Array กับการเขียนโปรแกรม ESP32 Arduino - ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 Tutorial 8/55 -Walking Light 74HC595 Shift register -SunFounder's ESP32 IoT Learning kit บทเรียน ESP32 9/55 - การใช้ปุ่มกดเพื่อสลับเปิด-ปิด LED, กดเปิด, กดปิด - ชุด IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 10/55 - ตัวนับดิจิทัลโดยใช้จอแสดงผลเซเว่นเซกเมนต์ 74HC595 - ชุดเรียนรู้ IoT สำหรับ ESP32 บทเรียน ESP32 11/55 - การใช้ LCD1602 LCD2004 กับ ESP32 - ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 12/55 - โปรเจกต์แถบ RGB WS2812 4 ร่วมกับชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 13/55 - Arduino ส่งเสียงบี๊บด้วย Active Buzzer | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 14/55 - การเล่นโน้ตเพลงที่กำหนดเองโดยใช้ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 15/55 - การควบคุมความเร็วมอเตอร์ DC ด้วย ESP32 L293D | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 16/55 - ปั๊มน้ำขนาดเล็กโดยใช้ ESP32 และ L293D | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 17/55 - การควบคุมเซอร์โวมอเตอร์โดยใช้ ESP32 และโพเทนชิโอมิเตอร์ - ชุดการเรียนรู้ IoT สำหรับ ESP32 บทเรียน ESP32 18/55 - การตรวจจับการเอียงโดยใช้ ESP32 | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 19/55 - การตรวจจับสิ่งกีดขวางโดยใช้เซนเซอร์อินฟราเรด | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 20/55 - โมดูลติดตามเส้น | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 21/55 - การตรวจจับมนุษย์ด้วยเซนเซอร์ตรวจจับการเคลื่อนไหว PIR | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 22/55 - รับรู้แสงโดยใช้ LED Arduino | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 23/55 - การอ่านแรงดันไฟฟ้าของโพเทนชิโอมิเตอร์โดยใช้ ESP32 | ชุด IoT ESP32 ของ SunFounder ESP32 บทเรียน 24/55 - การวัดความชื้นในดินเพื่อการชลประทาน | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 25/55 - การวัดอุณหภูมิโดยใช้ NTC และ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 26/55 - การใช้จอยสติ๊กกับ Arduino ลงมือปฏิบัติ | ชุด IoT ESP32 ของ SunFounder บทเรียน ESP32 27/55 - การวัดระยะทางด้วยเซนเซอร์อัลตราโซนิก | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 28/55 - เซนเซอร์วัดอุณหภูมิ DHT11 พร้อมจอ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 29/55 - การอ่านการกดปุ่มรีโมทอินฟราเรดด้วย ESP32| ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 30/55 - ควบคุมเซอร์โวผ่านเว็บโดยใช้ MQTT ผ่านบริการ Adafruit IO | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 31/55 - โปรเจกต์แถบ LED พร้อมการหลบหลีกสิ่งกีดขวาง | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 32/55 - คำเตือนระยะการถอยรถด้วย LCD และออด | ชุดเรียนรู้ IoT ของ SunFounder บทเรียน ESP32 33/55 - ลูกเต๋าดิจิทัลโดยใช้ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 34/55 - การไล่เฉดสีด้วย RGB LED และปุ่มหมุน | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 35/55 - เครื่องตรวจวัดพืช ดิน อุณหภูมิ และแสง | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 36/55 - เกมทายตัวเลข | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 37/55 - การใช้แอปบลูทูธกับ ESP32 BLE | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 38/55 - การควบคุม RGB LED จากโทรศัพท์มือถือของคุณ | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 39/55 - การใช้ ESP32 เป็นเครื่องเล่นเพลงบลูทูธ | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 40/55 - การอ่านและเขียนลงการ์ด Micro SD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 41/55 - เครื่องเล่น MP3 โดยใช้การ์ด Micro SD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 42/55 - ถ่ายภาพด้วยกล้องแล้วบันทึกลง Micro SD CAM-1 | ชุด ESP32 ของ SunFounder ESP32 บทเรียน 43/55 - สถานีตรวจอากาศอินเทอร์เน็ต IoT | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 44/55 - ESP32 กล้องเว็บเซิร์ฟเวอร์สตรีมวิดีโอผ่าน Wifi CAM-2 | ชุด ESP32 ของ SunFounder บทช่วยสอน ESP32 45/55 - เซิร์ฟเวอร์สตรีมมิงแบบกำหนดเองพร้อมการควบคุม LED CAM-3 l ชุดเรียนรู้ ESP32 ของ SunFounder บทช่วยสอน ESP32 46/55 - การตรวจวัดอุณหภูมิระยะไกลโดยใช้ HiveMQ MQTT | ชุด ESP32 ของ SunFounder บทเรียน ESP32 47/55 - WS2812 CheerLights โดยใช้ MQTT ผ่านอินเทอร์เน็ต | ชุด IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 48/55 - การตรวจวัดอุณหภูมิระยะไกลและการควบคุม LED ด้วย MQTT | ชุด IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 49/55 - ควบคุมมอเตอร์ DC ผ่านอินเทอร์เน็ตโดยใช้ Adafruit IoT | ชุด ESP32 ของ SunFounder ESP32 บทเรียน 50/55 - ควบคุม RGB LED จากที่ใดก็ได้ในโลก | ชุด ESP32 ของ SunFounder ESP32 Tutorial 51/55 - Temperature and Humidity over WiFi with DHT | SunFounder's ESP32 IoT Learning Kit บทช่วยสอน ESP32 52/55 - การซิงค์ระดับโลกของ WS2812 CheerLights ผ่าน MQTT พร้อมจอ LCD | ชุด IoT ESP32 ของ SunFounder บทเรียน ESP32 53/55 - สร้างนาฬิกาอินเทอร์เน็ตบนจอ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 54/55 - ตั้งค่าสีแถบ LED WS2812 ผ่าน Wifi | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 55/55 - วิธีวัดแรงดันไฟฟ้ากระแสตรง 12V, 24V หรือ 100V | ชุดเรียนรู้ IoT ESP32 ของ SunFounder
ESP32 บทเรียนที่ 10/55 - ตัวนับดิจิทัลโดยใช้จอแสดงผลเซเว่นเซกเมนต์ 74HC595 - ชุดเรียนรู้ IoT สำหรับ ESP32
ในบทช่วยสอนนี้ เราจะสร้างตัวนับดิจิทัลโดยใช้จอแสดงผลเซเวนเซกเมนต์ที่ควบคุมโดยไมโครคอนโทรลเลอร์ ESP32 ตัวนับจะเพิ่มค่าจาก 0 ถึง 9 แล้วลดกลับไปที่ 0 ซึ่งให้ภาพที่ชัดเจนของกระบวนการนับ เราจะสำรวจวิธีการเปิดเซกเมนต์แต่ละส่วนและแสดงตัวอักษรบนจอแสดงผลเซเวนเซกเมนต์ด้วย
ESP32_Animte7Segment-segments
โปรเจกต์นี้ใช้ชิฟต์รีจิสเตอร์ 74HC595 เพื่อควบคุมจอแสดงผล ทำให้เราสามารถจัดการเซกเมนต์ได้อย่างมีประสิทธิภาพโดยไม่ต้องใช้พิน GPIO ของ ESP32 มากเกินไป โดยการส่งค่าไบนารีไปยังชิฟต์รีจิสเตอร์ เราสามารถทำให้เซกเมนต์ที่เกี่ยวข้องติดสว่างเพื่อแสดงตัวเลขและตัวอักษร เพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับกระบวนการนี้ คุณสามารถอ้างอิงวิดีโอ (ในวิดีโอที่ 03:15)
ESP32_Animte7Segment-letters
อธิบายฮาร์ดแวร์
ส่วนประกอบหลักของโปรเจกต์นี้ประกอบด้วยไมโครคอนโทรลเลอร์ ESP32 ชิฟต์รีจิสเตอร์ 74HC595 และจอแสดงผลเซเวนเซกเมนต์ ESP32 เป็นไมโครคอนโทรลเลอร์ที่ทรงพลังพร้อมความสามารถ Wi-Fi และ Bluetooth ในตัว ทำให้เหมาะสำหรับโปรเจกต์ IoT 74HC595 เป็นชิฟต์รีจิสเตอร์ที่ช่วยให้เราควบคุมเอาต์พุตหลายตัวโดยใช้พินอินพุตเพียงไม่กี่ตัว มันทำงานโดยรับข้อมูลอนุกรมและแปลงเป็นเอาต์พุตขนาน ซึ่งเหมาะสำหรับการขับจอแสดงผลเซเวนเซกเมนต์
จอแสดงผลเซเวนเซกเมนต์ประกอบด้วย LED แต่ละดวงเจ็ดดวงที่จัดเรียงเป็นรูปแบบเลขแปด แต่ละเซกเมนต์สามารถเปิดหรือปิดได้โดยการส่งค่าไบนารีที่เหมาะสมไปยังชิฟต์รีจิสเตอร์ ตัวอย่างเช่น เพื่อแสดงหมายเลข 0 เซกเมนต์ทั้งหมดยกเว้นเซกเมนต์กลาง (G) ต้องติดสว่าง
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-counter-1
รายละเอียดดาต้าชีต
ผู้ผลิต
Texas Instruments
หมายเลขชิ้นส่วน
74HC595
แรงดันไฟฟ้าลอจิก/IO
2 V ถึง 6 V
แรงดันไฟฟ้าจ่าย
2 V ถึง 6 V
กระแสเอาต์พุต (ต่อช่อง)
6 mA
กระแสสูงสุด (ต่อช่อง)
35 mA
คำแนะนำความถี่ PWM
สูงถึง 1 kHz
เกณฑ์ลอจิกอินพุต
0.3 VCC ถึง 0.7 VCC
แรงดันตก / RDS(on) / ความอิ่มตัว
สูงสุด 0.2 V
ขีดจำกัดความร้อน
125 °C
แพ็คเกจ
DIP-16
หมายเหตุ / รุ่นต่างๆ
มีให้เลือกหลายแพ็คเกจ
ตรวจสอบให้แน่ใจว่าแรงดันไฟฟ้าจ่ายถูกต้อง (2 V ถึง 6 V)
จำกัดกระแสเอาต์พุตเพื่อป้องกันความร้อนสูงเกินไป
ใช้ตัวต้านทานแยกสำหรับแต่ละเซกเมนต์เพื่อความสว่างที่เหมาะสมที่สุด
ระมัดระวังการเดินสายไฟเพื่อหลีกเลี่ยงการลัดวงจรและการเชื่อมต่อที่ผิดพลาด
ปฏิบัติตามผังพินอย่างระมัดระวังเพื่อหลีกเลี่ยงการกำหนดค่าที่ผิดพลาด
คำแนะนำการเดินสายไฟ
ESP32-10-seven-segment-wiring
เริ่มต้นด้วยการจัดเตรียมเบรดบอร์ดของคุณ เชื่อมต่อรางกราวด์ (เส้นสีน้ำเงิน) และรางไฟ (เส้นสีแดง) กราวด์ควรเชื่อมต่อกับเส้นสีน้ำเงินที่ด้านหนึ่งของเบรดบอร์ด ในขณะที่ไฟควรเชื่อมต่อกับเส้นสีแดงที่ด้านตรงข้าม ใช้สายสีดำเพื่อเชื่อมต่อกราวด์ของ ESP32 กับรางกราวด์ และสายสีแดงเพื่อเชื่อมต่อพิน 3.3V ของ ESP32 กับรางไฟ
จากนั้น ใส่ชิฟต์รีจิสเตอร์ 74HC595 ลงในเบรดบอร์ด โดยตรวจสอบให้แน่ใจว่ารอยบากอยู่ในทิศทางที่ถูกต้อง เชื่อมต่อพิน 11 (DS) เข้ากับพิน 25 บน ESP32 พิน 12 (SH_CP) เข้ากับพิน 26 และพิน 14 (ST_CP) เข้ากับพิน 27 เชื่อมต่อกราวด์ (พิน 8) ของชิฟต์รีจิสเตอร์เข้ากับรางกราวด์ และพิน 10 (MR) เข้ากับรางไฟเพื่อเปิดใช้งาน
สำหรับจอแสดงผลเซเวนเซกเมนต์ ให้เชื่อมต่อพินที่สอดคล้องกับเซกเมนต์ (a-g) เข้ากับพินเอาต์พุตของชิฟต์รีจิสเตอร์ ใช้ตัวต้านทาน (220 โอห์ม) อนุกรมสำหรับแต่ละเซกเมนต์เพื่อจำกัดกระแส ตรวจสอบให้แน่ใจว่ามีการเชื่อมต่อที่ถูกต้องสำหรับพินร่วม ซึ่งอาจเป็นแอโนดร่วมหรือแคโทดร่วมขึ้นอยู่กับประเภทจอแสดงผลของคุณ
ตัวอย่างโค้ดและคำอธิบาย
ในฟังก์ชัน setup เราเริ่มต้นด้วยการกำหนดพินที่เชื่อมต่อกับชิฟต์รีจิสเตอร์เป็นเอาต์พุต เพื่อให้แน่ใจว่า ESP32 ของเราสามารถควบคุมข้อมูลที่ส่งไปยังจอแสดงผลได้
void setup ()
{
//set pins to output
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
ที่นี่ เรากำหนด STcp, SHcp และ DS เป็นพินที่เชื่อมต่อกับ ST_CP, SH_CP และ DS ของชิฟต์รีจิสเตอร์ตามลำดับ การตั้งค่าพินเหล่านี้เป็นเอาต์พุตช่วยให้เราควบคุมชิฟต์รีจิสเตอร์ได้
ลูปหลักของโปรแกรมนับจาก 0 ถึง 9 โดยส่งค่าที่เกี่ยวข้องไปยังจอแสดงผลโดยใช้ฟังก์ชัน shiftOut
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //กราวด์ ST_CP และค้างไว้ต่ำตราบเท่าที่คุณกำลังส่งข้อมูล
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //ดึง ST_CP ขึ้นสูงเพื่อบันทึกข้อมูล
delay(1000);
}
ลูปนี้จะเพิ่มค่าตัวแปร num ทีละหนึ่ง และส่งค่าที่สอดคล้องกันจาก datArray ไปยังจอแสดงผลทุกวินาที ฟังก์ชัน shiftOut จะส่งข้อมูลไปยังชิฟต์รีจิสเตอร์ ซึ่งจะทำให้ส่วนที่เหมาะสมติดสว่างขึ้น
การสาธิต / สิ่งที่คาดหวัง
เมื่อต่อสายเสร็จเรียบร้อยและอัปโหลดโค้ดแล้ว คุณควรเห็นจอแสดงผลเจ็ดส่วนนับจาก 0 ถึง 9 หยุดชั่วครู่ก่อนจะนับกลับลงไปที่ 0 แต่ละตัวเลขจะแสดงเป็นเวลาหนึ่งวินาที หากต้องการให้การนับเร็วขึ้น คุณสามารถปรับค่า delay ในลูปได้ (ในวิดีโอที่ 15:30)
เมื่อจัดการกับแต่ละส่วนแยกกัน อย่าลืมส่งค่าไบนารีที่ถูกต้องเพื่อแสดงตัวอักษรหรือส่วนเฉพาะ หากจอแสดงผลดูมืดลง ให้พิจารณาเพิ่มตัวต้านทานแยกสำหรับแต่ละส่วนเพื่อให้ความสว่างสม่ำเสมอทั่วทั้งจอ
ไทม์สแตมป์ของวิดีโอ
00:00 เริ่มต้น
1:53 แนะนำเจ็ดส่วน
4:38 อธิบายการต่อสาย
13:15 โค้ด Arduino-1
17:01 การเลือกพอร์ต COM และบอร์ด ESP32
18:43 การสาธิต-1
20:13 การแสดงตัวเลขเพียงหลักเดียว
21:38 ตัวนับขึ้นและลง
23:07 การเปิด/ปิดแต่ละส่วน
24:53 การแสดง A, B, C, D, E และ F
ภาพ
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
รหัส
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment
ภาษา: C++
ดูโค้ด
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP
const int DS = 25; //DS
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void setup ()
{
//set pins to output
pinMode(STcp,OUTPUT);
pinMode(SHcp,OUTPUT);
pinMode(DS,OUTPUT);
}
void loop()
{
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
delay(1000);
}
}
แหล่งข้อมูลและเอกสารอ้างอิง
ไฟล์📁
ไม่มีไฟล์ที่พร้อมใช้งาน