งานที่ 5
- รับลิงก์
- X
- อีเมล
- แอปอื่นๆ
สอนใช้งาน NodeMCU ESP8266 สัญญาณ Digital InPut รับค่าการกดปุ่มสวิตช์ ควบคุมเปิดปิดหลอดไฟ LED
2 ปีที่ผ่านมา
โดย เจ้าของร้าน
สอนใช้งาน NodeMCU ESP8266 สัญญาณ Digital InPut รับค่าการกดปุ่มสวิตช์ ควบคุมเปิดปิดหลอดไฟ LED

บทความนี้จะสอนใช้งาน NodeMCU ESP8266 อ่านค่าการกดปุ่ม โดยใช่คำสั่ง digitalRead()
การต่อสวิตช์มี 2 แบบ คือ pull up โดยจ่ายสัญญาณ 1 ให้กับสวิตช์ อีกแบบคือ pull down โดยจ่ายสัญญาณ 0 ให้กับสวิตช์ โดยผ่านตัวต้านทานเพื่อใช้คงค่าสถานะ ป้องกันไฟ 5V และ 0V ชนกันลัดวงจร

เป็นคำสั่งที่ใช้อ่าค่าสถานะขาดิจิตอลของ Arduino ว่าเป็น 5V หรือ 0V
HIGH คือลอจิก 1 ปล่อยไฟออกแรงดัน 5V
LOW คือลอจิก 0 กำหนดขานั้นให้เป็นกราว์ด 0V
digitalRead(PiN)
PiN หมายถึง ขา Digital ของ Arduino ที่ต้องการอ่าน
ตัวอย่างคำสั่ง Digital Read
ต้องการอ่านค่า สถานะขา 13 ว่าเป็น 1 หรือ 0 เก็บในตัวแปล Val
Val = digitalRead(13)
อุปกรณ์ที่ต้องใช้ สอนใช้งาน NodeMCU ESP8266 สัญญาณ Digital InPut รับค่าการกดปุ่มสวิตช์ ควบคุมเปิดปิดหลอดไฟ LED
วิธีการต่ออุปกรณ์ สอนใช้งาน NodeMCU ESP8266 สัญญาณ Digital InPut รับค่าการกดปุ่มสวิตช์ ควบคุมเปิดปิดหลอดไฟ LED
NodeMCU ESP8266 -> หลอดไฟ LED

ให้ต่ออุปกรณ์ตามรูปข้างบน แล้ว อัพโหลด โค๊ดตัวอย่างด้านล่างลง NodeMCU ESP8266
เลือกรุ่นบอร์ด NodeMCU ESP8266 ที่จะอัพโหลด

เลือก Port ที่บอร์ด NodeMCU ESP8266 เชื่อมต่อ แล้วกดอัพโหลดโค้ด

ถ้าอัพโหลดสำเร็จ จะขึ้นตามรูปด้างล่าง

ให้เปิด Serial Monitor ขึ้นมาแล้วกำหนดอัตราการส่งข้อมูลให้ตรงกับโปรแกรมที่อัพโหลดลง NodeMCU ESP8266

ในคอมพิวเตอร์กำหนดอัตราการส่งข้อมูลเป็น 9600

ถ้ายังไม่กดสวิตช์ ไฟ LED จะไม่สว่าง สถานะขา 3 ที่ต่อกับสวิตช์ จะเป็น LOW หรือ ลอจิก 0 ไฟ LED จะไม่ติด

ถ้ากดสวิตช์ สถานะขา D1 ที่ต่อกับสวิตช์ จะเป็น HIGH หรือ ลอจิก 1 ไฟ LED จะติด NodeMCU ESP8266 จะอ่านค่าการกดปุมของเรา ไปสั่งให้ไฟ LED ติด

จากตัวอย่างจะ เห็นว่าเราจะใช้คำสั่ง
buttonState = digitalRead(buttonPin); ในการอ่านค่าสวิตช์ที่ต่ออยู่กับ ขาD1 มาเก็บในสตัวแปล buttonState
เพื่อเอาไปตรวจสอบการกดสวิตช์
แล้วใช้คำสั่ง if (buttonState == HIGH) และ else ในการสั่งงานให้ LED ติดหรือดับ
digitalWrite(led1, HIGH); ถ้ากำหนด HIGH ไฟจะติด
digitalWrite(led1, LOW); ถ้ากำหนด LOW ไฟจะดับ

บทความนี้จะสอนใช้งาน NodeMCU ESP8266 อ่านค่าการกดปุ่ม โดยใช่คำสั่ง digitalRead()
การต่อสวิตช์มี 2 แบบ คือ pull up โดยจ่ายสัญญาณ 1 ให้กับสวิตช์ อีกแบบคือ pull down โดยจ่ายสัญญาณ 0 ให้กับสวิตช์ โดยผ่านตัวต้านทานเพื่อใช้คงค่าสถานะ ป้องกันไฟ 5V และ 0V ชนกันลัดวงจร

การต่อสวิตช์มี 2 แบบคือ
1. Pull UP คือการคงค่าสัญญาณ 1 ให้กับขา Digital Arduino ที่มาต่อกับสวิตช์ เมื่อสวิตช์ถูกกดจะให้สัญญาณ 0
2. Pull Down คือ การคงค่าสัญญาณ 0 ให้กับขา Digital Arduino ที่มาต่อกับสวิตช์ เมื่อสวิตช์ถูกกดจะให้สัญญาณ 1
คำสั่ง Digital Readเป็นคำสั่งที่ใช้อ่าค่าสถานะขาดิจิตอลของ Arduino ว่าเป็น 5V หรือ 0V
HIGH คือลอจิก 1 ปล่อยไฟออกแรงดัน 5V
LOW คือลอจิก 0 กำหนดขานั้นให้เป็นกราว์ด 0V
digitalRead(PiN)
PiN หมายถึง ขา Digital ของ Arduino ที่ต้องการอ่าน
ตัวอย่างคำสั่ง Digital Read
ต้องการอ่านค่า สถานะขา 13 ว่าเป็น 1 หรือ 0 เก็บในตัวแปล Val
Val = digitalRead(13)
อุปกรณ์ที่ต้องใช้ สอนใช้งาน NodeMCU ESP8266 สัญญาณ Digital InPut รับค่าการกดปุ่มสวิตช์ ควบคุมเปิดปิดหลอดไฟ LED
วิธีการต่ออุปกรณ์ สอนใช้งาน NodeMCU ESP8266 สัญญาณ Digital InPut รับค่าการกดปุ่มสวิตช์ ควบคุมเปิดปิดหลอดไฟ LED
NodeMCU ESP8266 -> หลอดไฟ LED
- ขาD0 -> LED1
- ขาD1 -> สวิตช์

ให้ต่ออุปกรณ์ตามรูปข้างบน แล้ว อัพโหลด โค๊ดตัวอย่างด้านล่างลง NodeMCU ESP8266
int led1 = D0; // กำหนดขาใช้งาน | |
int buttonPin = D1; | |
int buttonState = 0; | |
void setup() | |
{ | |
pinMode(led1, OUTPUT); // กำหนดขาทำหน้าที่ให้ขา D0 เป็น OUTPUT | |
pinMode(buttonPin, INPUT);// กำหนดขาทำหน้าที่ให้ขา D1 เป็น INPUT รับค่าจากสวิตช์ | |
digitalWrite(led1, LOW); | |
Serial.begin(9600); | |
} | |
void loop() | |
{ | |
buttonState = digitalRead(buttonPin); // อ่านค่าสถานะขาD0 | |
if (buttonState == HIGH) { //กำหนดเงื่อนไขถ้าตัวแปล buttonState เก็บ ค่า 1(HIGH) ให้ทำในปีกกา | |
digitalWrite(led1, HIGH); // ไฟ LED 1ติด | |
Serial.print("LED : "); | |
Serial.println(buttonState); | |
} | |
else { //ถ้าตัวแปล buttonState ไม่ได้เก็บ ค่า 1(HIGH) คือ ตัวแปล buttonState เก็บค่า 0(LOW) อยู่ ให้ทำปีกกาข้างล่าง | |
digitalWrite(led1, LOW); // ไฟ LED 1ดับ | |
Serial.print("LED : "); | |
Serial.println(buttonState); | |
} | |
} |
เลือกรุ่นบอร์ด NodeMCU ESP8266 ที่จะอัพโหลด

เลือก Port ที่บอร์ด NodeMCU ESP8266 เชื่อมต่อ แล้วกดอัพโหลดโค้ด

ถ้าอัพโหลดสำเร็จ จะขึ้นตามรูปด้างล่าง

ให้เปิด Serial Monitor ขึ้นมาแล้วกำหนดอัตราการส่งข้อมูลให้ตรงกับโปรแกรมที่อัพโหลดลง NodeMCU ESP8266

ในคอมพิวเตอร์กำหนดอัตราการส่งข้อมูลเป็น 9600

ถ้ายังไม่กดสวิตช์ ไฟ LED จะไม่สว่าง สถานะขา 3 ที่ต่อกับสวิตช์ จะเป็น LOW หรือ ลอจิก 0 ไฟ LED จะไม่ติด

ถ้ากดสวิตช์ สถานะขา D1 ที่ต่อกับสวิตช์ จะเป็น HIGH หรือ ลอจิก 1 ไฟ LED จะติด NodeMCU ESP8266 จะอ่านค่าการกดปุมของเรา ไปสั่งให้ไฟ LED ติด

จากตัวอย่างจะ เห็นว่าเราจะใช้คำสั่ง
buttonState = digitalRead(buttonPin); ในการอ่านค่าสวิตช์ที่ต่ออยู่กับ ขาD1 มาเก็บในสตัวแปล buttonState
เพื่อเอาไปตรวจสอบการกดสวิตช์
แล้วใช้คำสั่ง if (buttonState == HIGH) และ else ในการสั่งงานให้ LED ติดหรือดับ
digitalWrite(led1, HIGH); ถ้ากำหนด HIGH ไฟจะติด
digitalWrite(led1, LOW); ถ้ากำหนด LOW ไฟจะดับ
- รับลิงก์
- X
- อีเมล
- แอปอื่นๆ
ความคิดเห็น
แสดงความคิดเห็น