กระโดดไปยัง:
บทเรียน 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 9/55 - การใช้ปุ่มกดเพื่อสลับเปิด-ปิด LED, กดเปิด, กดปิด - ชุด IoT ESP32 ของ SunFounder
ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ปุ่มกดเพื่อสลับเปิดและปิด LED กับไมโครคอนโทรลเลอร์ ESP32 โปรเจกต์นี้จะสาธิตวิธีการอ่านสถานะของปุ่มกดและควบคุม LED ตามนั้น เมื่อกดปุ่ม LED จะติด และเมื่อปล่อยปุ่ม LED จะดับ แนวคิดนี้เป็นพื้นฐานสำหรับโปรเจกต์แบบอินเทอร์แอกทีฟต่างๆ มากมายที่ใช้ ESP32
ESP32 เป็นไมโครคอนโทรลเลอร์ที่มีประสิทธิภาพพร้อมความสามารถ Wi-Fi และ Bluetooth ในตัว ทำให้เหมาะสำหรับการใช้งาน IoT ต่างๆ ในบทเรียนนี้ เราจะใช้ ESP32 จากชุดเริ่มต้น SunFounder ESP32 Starter Kit ซึ่งมีส่วนประกอบสำคัญ เช่น ตัวต้านทานและ LED เพื่อสร้างวงจรอย่างง่าย สำหรับคำอธิบายโดยละเอียดเกี่ยวกับการเดินสายไฟและโค้ด โปรดดูวิดีโอ (ในวิดีโอที่ 00:00)
อธิบายฮาร์ดแวร์
ส่วนประกอบสำคัญสำหรับโปรเจกต์นี้ ได้แก่ ไมโครคอนโทรลเลอร์ ESP32 ปุ่มกด LED และตัวต้านทาน ESP32 ทำหน้าที่เป็นสมองของโปรเจกต์ ควบคุม LED ตามสถานะของปุ่มกด ปุ่มกดช่วยให้ผู้ใช้โต้ตอบกับวงจรได้ ในขณะที่ LED ให้การตอบสนองทางภาพเมื่อกดปุ่ม
ปุ่มกดทำงานโดยการปิดวงจรเมื่อกด ทำให้กระแสไฟฟ้าไหลได้ การกระทำนี้ส่งสัญญาณ HIGH ไปยังพินอินพุตที่กำหนดของ ESP32 ซึ่งสามารถอ่านได้ในโค้ด ตัวต้านทานที่เชื่อมต่อกับปุ่มช่วยให้พินมีสถานะที่ชัดเจนเมื่อไม่ได้กดปุ่ม ป้องกันพฤติกรรมที่ผิดปกติ
ปุ่มกดพร้อมตัวต้านทาน
คำแนะนำการเดินสายไฟ
ในการเดินสายวงจร ให้เริ่มต้นโดยเชื่อมต่อขาที่ยาวกว่าของ LED (ขั้วแอโนด) เข้ากับตัวต้านทาน 220 โอห์ม เชื่อมต่อปลายอีกด้านของตัวต้านทานเข้ากับพิน GPIO 26 บน ESP32 ขาที่สั้นกว่าของ LED (ขั้วแคโทด) ควรเชื่อมต่อกับกราวด์ จากนั้นนำปุ่มกดมาเชื่อมต่อด้านหนึ่งเข้ากับแหล่งจ่ายไฟ 3.3V บนบอร์ด อีกด้านหนึ่งของปุ่มกดเชื่อมต่อกับพิน GPIO 14
ปุ่มกดโดยไม่มีตัวต้านทาน
ปุ่มกดโดยไม่มีตัวต้านทาน
ปุ่มกดพร้อมตัวต้านทาน
ปุ่มกดพร้อมตัวต้านทาน
นอกจากนี้ ให้วางตัวต้านทาน 10k โอห์มจากพิน GPIO 14 ไปยังกราวด์เพื่อให้แน่ใจว่าพินอ่านค่า LOW เมื่อไม่ได้กดปุ่ม สุดท้าย เชื่อมต่อสายกราวด์จาก ESP32 เข้ากับกราวด์ร่วมบนเบรดบอร์ด การตั้งค่านี้จะช่วยให้ ESP32 อ่านสถานะของปุ่มและควบคุม LED ได้ตามนั้น
ตัวอย่างโค้ดและคำอธิบาย
แกนหลักของโปรแกรมเริ่มต้นด้วยการกำหนดหมายเลขพินสำหรับปุ่มและ LED โดยใช้ค่าคงที่ เพื่อให้แน่ใจว่าการกำหนดพินยังคงไม่เปลี่ยนแปลงตลอดการทำงานของโปรแกรม
// กำหนดหมายเลขพิน
const int buttonPin = 14; // พินปุ่ม
const int ledPin = 26; // พิน LED
ในฟังก์ชัน setup() เราจะเริ่มต้นซีเรียลมอนิเตอร์และตั้งค่าพินปุ่มเป็นอินพุต ในขณะที่กำหนดค่าพิน LED เป็นเอาต์พุต ซึ่งเป็นการเตรียม ESP32 ให้อ่านค่าจากปุ่มและควบคุม LED
void setup() {
Serial.begin(115200);
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
ภายในฟังก์ชัน loop() โปรแกรมจะอ่านสถานะของปุ่มอย่างต่อเนื่องและพิมพ์ไปยังซีเรียลมอนิเตอร์ หากกดปุ่ม LED จะติด มิฉะนั้น LED จะดับ ตรรกะนี้จำเป็นสำหรับการสลับ LED ตามสถานะของปุ่ม
void loop() {
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
delay(100);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
ฟังก์ชันพื้นฐานนี้ช่วยให้ LED ตอบสนองต่อปุ่มกดได้โดยตรง สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับโปรเจกต์และโค้ดที่สมบูรณ์ โปรดดูวิดีโอที่ให้ไว้ (ในวิดีโอที่ 14:00)
การสาธิต / สิ่งที่คาดหวัง
เมื่อเดินสายไฟเสร็จสมบูรณ์และอัปโหลดโค้ดแล้ว การกดปุ่มควรทำให้ LED ติด และการปล่อยปุ่มจะทำให้ LED ดับ พฤติกรรมนี้ยืนยันว่าสถานะของปุ่มถูกอ่านอย่างถูกต้อง หาก LED ไม่ตอบสนองตามที่คาดหวัง ให้ตรวจสอบการเดินสายไฟและตรวจสอบให้แน่ใจว่าปุ่มทำงานอย่างถูกต้อง
ระหว่างการทดสอบ ควรสังเกตซีเรียลมอนิเตอร์สำหรับการอ่านสถานะของปุ่ม คุณควรเห็น '1' เมื่อกดปุ่มและ '0' เมื่อปล่อยปุ่ม หากการอ่านค่าผันผวนอย่างไม่คาดคิด อาจบ่งบอกถึงปัญหาการเดินสายไฟหรือความจำเป็นต้องเพิ่มตรรกะดีบาวซ์ในโค้ด
ไทม์สแตมป์ของวิดีโอ
00:00 เริ่มต้น
1:48 แนะนำโปรเจกต์
3:10 อธิบายสวิตช์และปุ่มกด
7:19 อธิบายการเดินสายไฟ
12:25 อธิบายโค้ด Arduino สำหรับปุ่มกด
15:56 การเลือกบอร์ด ESP32 และพอร์ต COM
17:38 การสาธิตโปรเจกต์
18:33 โปรเจกต์ที่ 2 การสลับสถานะและ LED
19:09 โค้ด Arduino สำหรับการสลับสถานะ LED
21:16 การสาธิตการสลับสถานะ LED
ภาพ
Push button with resistor
Push button with resistor
Push button without resistor
Push button without resistor
Push button with resistor
Push button with resistor
Push button with resistor
Push button without resistor
Push button without resistor
Push button with resistor
รหัส
808-ESP32 Tutorial 9/55 - Arduino code push button
ภาษา: C++
ดูโค้ด
// set pin numbers
const int buttonPin = 14; // Button pin
const int ledPin = 26; // LED pin
// variable for storing the button status
int buttonState = 0;
void setup() {
Serial.begin(115200);
// initialize the button pin as an input
pinMode(buttonPin, INPUT);
// initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the state of the button value
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
delay(100);
// if the button is pressed
if (buttonState == HIGH) {
// turn LED on
digitalWrite(ledPin, HIGH);
} else {
// turn LED off
digitalWrite(ledPin, LOW);
}
}
แหล่งข้อมูลและเอกสารอ้างอิง ยังไม่มีทรัพยากรเลย
ไฟล์📁
ไม่มีไฟล์ที่พร้อมใช้งาน