บทเรียน ESP32 23/55 - การอ่านแรงดันไฟฟ้าของโพเทนชิโอมิเตอร์โดยใช้ ESP32 | ชุด IoT ESP32 ของ SunFounder
ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีการวัดแรงดันไฟฟ้ากระแสตรงจากโพเทนชิโอมิเตอร์โดยใช้โมดูล ESP32 จาก SunFounder โปรเจกต์นี้จะสาธิตวิธีการปรับความสว่างของ LED ตามตำแหน่งของโพเทนชิโอมิเตอร์ด้วย เมื่อคุณหมุนโพเทนชิโอมิเตอร์ทวนเข็มนาฬิกา ค่าแรงดันไฟฟ้าจะลดลงและ LED จะหรี่ลงตามไปด้วย แบบฝึกหัดนี้จะให้ความเข้าใจเชิงปฏิบัติเกี่ยวกับการใช้ตัวแปลงแอนะล็อกเป็นดิจิทัล (ADC) ใน ESP32
โพเทนชิโอมิเตอร์
โพเทนชิโอมิเตอร์หรือตัวต้านทานปรับค่าได้
ESP32 เป็นไมโครคอนโทรลเลอร์ที่ทรงพลังพร้อมความสามารถ Wi-Fi และ Bluetooth ในตัว ทำให้เหมาะสำหรับโปรเจกต์ IoT ในบทช่วยสอนนี้ เราจะใช้คุณสมบัติอินพุตแอนะล็อกเพื่ออ่านระดับแรงดันไฟฟ้าจากโพเทนชิโอมิเตอร์ พร้อมกับควบคุมความสว่างของ LED ตามค่าที่อ่านได้ ผลลัพธ์ที่ได้คือ LED ที่ตอบสนองโดยเปลี่ยนความเข้มของแสงเมื่อคุณปรับโพเทนชิโอมิเตอร์
อธิบายฮาร์ดแวร์
สำหรับโปรเจกต์นี้ เราจะต้องใช้ส่วนประกอบต่อไปนี้:
- โมดูล ESP32: ไมโครคอนโทรลเลอร์หลักที่จะอ่านแรงดันไฟฟ้าจากโพเทนชิโอมิเตอร์และควบคุม LED
- โพเทนชิโอมิเตอร์: ตัวต้านทานปรับค่าได้ที่ใช้ปรับแรงดันไฟฟ้า มีสามขา: สองขาสำหรับตัวต้านทานคงที่และหนึ่งขาที่ปรับค่าได้
- LED: ไดโอดเปล่งแสงที่ความสว่างจะถูกควบคุมตามตำแหน่งของโพเทนชิโอมิเตอร์
- ตัวต้านทาน: ตัวต้านทาน 220 โอห์มเพื่อจำกัดกระแสที่ผ่าน LED
โพเทนชิโอมิเตอร์ทำงานโดยการเปลี่ยนความต้านทานระหว่างขาของมัน ทำให้สามารถสร้างแรงดันไฟฟ้าที่ ESP32 สามารถอ่านได้ผ่าน ADC ความสว่างของ LED ถูกควบคุมโดยใช้การมอดูเลตความกว้างพัลส์ (PWM) เพื่อปรับพลังงานที่จ่ายให้กับมันตามค่าที่อ่านได้จากแอนะล็อก
รายละเอียดจากดาต้าชีต
คำแนะนำการเดินสายไฟ
ESP32-23-fading-LED_pot-wiring
ในการเดินสายไฟส่วนประกอบ ให้เริ่มต้นด้วยการเชื่อมต่อโพเทนชิโอมิเตอร์ เชื่อมต่อขานอกด้านหนึ่งเข้ากับแหล่งจ่ายไฟ 3.3V บน ESP32 เชื่อมต่อขานอกอีกด้านเข้ากับกราวด์ (GND) ขากลางของโพเทนชิโอมิเตอร์จะเชื่อมต่อกับขา 35 บน ESP32 ซึ่งใช้สำหรับอ่านแรงดันไฟฟ้าแอนะล็อก
ถัดไป สำหรับ LED ให้เชื่อมต่อขาที่ยาวกว่า (แอโนด) เข้ากับขา 26 บน ESP32 ผ่านตัวต้านทาน 220 โอห์ม เชื่อมต่อขาที่สั้นกว่า (แคโทด) ของ LED เข้ากับกราวด์ ตรวจสอบให้แน่ใจว่าการเชื่อมต่อทั้งหมดแน่นหนาและตรวจสอบทิศทางของ LED อีกครั้งเพื่อป้องกันความเสียหาย
ตัวอย่างโค้ดและคำอธิบาย
ตัวอย่างโค้ดต่อไปนี้สาธิตวิธีการตั้งค่า ESP32 เพื่ออ่านค่าโพเทนชิโอมิเตอร์และควบคุม LED:
const int potPin = 35; // โพเทนชิโอมิเตอร์เชื่อมต่อกับ
const int ledPin = 26; // LED เชื่อมต่อกับ
// การตั้งค่า PWM
const int freq = 5000; // ความถี่ PWM
const int resolution = 12; // ความละเอียด PWM (บิต)
ในส่วนนี้ เรากำหนดขาสำหรับโพเทนชิโอมิเตอร์และ LED ความถี่และความละเอียดของ PWM ถูกตั้งค่าไว้ด้วย ซึ่งจะกำหนดระดับความสว่างของ LED
ถัดไป เราจะเริ่มต้นการตั้งค่า:
void setup() {
Serial.begin(115200);
// กำหนดค่า PWM
ledcAttach(ledPin, freq, resolution);
}
ในฟังก์ชัน setup เราจะเริ่มต้นการสื่อสารแบบอนุกรมและกำหนดค่าการตั้งค่า PWM สำหรับ LED การตั้งค่านี้จะทำงานครั้งเดียวเมื่อโปรแกรมเริ่มทำงาน
สุดท้าย ฟังก์ชัน loop จะอ่านค่าโพเทนชิโอมิเตอร์อย่างต่อเนื่องและปรับความสว่างของ LED:
void loop() {
int potValue = analogRead(potPin); // อ่านค่าโพเทนชิโอมิเตอร์
uint32_t voltage_mV = analogReadMilliVolts(potPin); // อ่านแรงดันไฟฟ้าเป็นมิลลิโวลต์
ledcWrite(ledPin, potValue);
// เอาต์พุตอนุกรมถูกละไว้เพื่อความกระชับ
}
ใน loop เราจะอ่านค่าแอนะล็อกจากโพเทนชิโอมิเตอร์และแปลงเป็นค่าควบคุมความสว่างของ LED เอาต์พุตอนุกรมแสดงค่าโพเทนชิโอมิเตอร์และแรงดันไฟฟ้า ซึ่งช่วยในการตรวจสอบค่าที่อ่านได้
การสาธิต / สิ่งที่คาดหวัง
เมื่อวงจรถูกตั้งค่าอย่างถูกต้องและอัปโหลดโค้ดแล้ว การหมุนโพเทนชิโอมิเตอร์ควรส่งผลให้ค่าแรงดันไฟฟ้าที่แสดงในซีเรียลมอนิเตอร์เปลี่ยนแปลงตามไปด้วย LED ควรค่อยๆ สว่างและหรี่ลงอย่างนุ่มนวลเมื่อปรับโพเทนชิโอมิเตอร์ หาก LED ไม่ตอบสนองตามที่คาดหวัง ให้ตรวจสอบการเชื่อมต่อสายไฟและตรวจสอบให้แน่ใจว่าโพเทนชิโอมิเตอร์ทำงานอย่างถูกต้อง (ในวิดีโอที่เวลา 11:30)
ไทม์สแตมป์ของวิดีโอ
- 00:00 เริ่มต้น
- 2:02 โพเทนชิโอมิเตอร์คืออะไร
- 4:15 การวัดความต้านทานของโพเทนชิโอมิเตอร์
- 6:59 หน้าคู่มือเอกสาร
- 8:56 อธิบายการเดินสายไฟ
- 12:28 อธิบายโค้ด Arduino
- 15:58 การเลือกบอร์ด ESP32 และพอร์ต COM ใน Arduino IDE
- 17:40 การสาธิตการอ่านค่าโพเทนชิโอมิเตอร์ด้วย ESP32
ภาพ
Potentiometer or variable resistor
ESP32-23-fading-LED_pot-schematic
ESP32-23-fading-LED_pot-wiring
potentiometer
Potentiometer or variable resistor
ESP32-23-fading-LED_pot-schematic
ESP32-23-fading-LED_pot-wiring
822-ESP32 Tutorial 23/55- Arduino code for fading LED
ภาษา: C++
const int potPin = 35; // Potentiometer connected to
const int ledPin = 26; // LED connected to
// PWM settings
const int freq = 5000; // PWM frequency
const int resolution = 12; // PWM resolution (bits)
void setup() {
Serial.begin(115200);
// Configure PWM
ledcAttach(ledPin, freq, resolution);
}
void loop() {
int potValue = analogRead(potPin); // read the value of the potentiometer
uint32_t voltage_mV = analogReadMilliVolts(potPin); // Read the voltage in millivolts
ledcWrite(ledPin, potValue);
Serial.print("Potentiometer Value: ");
Serial.print(potValue);
Serial.print(", Voltage: ");
Serial.print(voltage_mV / 1000.0); // Convert millivolts to volts
Serial.println(" V");
delay(100);
}
แหล่งข้อมูลและเอกสารอ้างอิง
ไฟล์📁
ไม่มีไฟล์ที่พร้อมใช้งาน