วันเสาร์ที่ 27 กุมภาพันธ์ พ.ศ. 2559

esp8266-12e ใช้งาน GPIO9

โมดูล ESP8266-12e เป็นโมดูลที่พัฒนามาจากรุ่น 12 โดยจะมีขาใช้งานเพิ่มขึ้นอีก 6 ขา และมี GPIO เพิ่มอีก 2 ขา คือ GPIO9 และ GPIO10 ตามหลักการสามารถนำมาใช้งานได้ แต่เท่าที่ลองแล้วพบว่า ผู้เขียนยังไม่สามารถนำเอาขา GPIO10 มาใช้งานได้เลย ซึ่งจะหาทางศึกษาการนำมาใช้งานต่อไป

ตัวอย่างการต่ออุปกรณ์เพื่อทดสอบใช้งานขา GPIO9 โดยบอร์ดจะใช้ไฟเลี้ยงจากข้างนอก


เดิมใช้ ESP8266-12 เพื่อใช้งานพบว่ามีขา I/O น้อยไปนิดสำหรับโปรเจกต์ที่กำลังทำ พอรุ่น 12E ออกมามีขาเพิ่มจึงสนใจที่จะนำมาใช้งาน ซึ่งได้เพิ่มมาเพียงขาเดียว ก็พอดีกับขาที่ขาดไป

การเรียกใช้ขา GPIO9 ก็เรียกใช้ได้ทันทีโดยไม่ต้องต่อวงจรหรือดัดแปลงอะไรอีก โดยตัวอย่างที่นำเสนอนี้เป็นการทดสอบการกดปุ่ม SW เพื่อรับค่า HIGH เข้าที่ขา GPIO9 ซึ่งต่อวงจรดังนี้

การต่อวงจรปกติ GPIO9 จะต่อลงกราวน์ผ่าน R 10K 

การต่อวงจรตามรูปข้างบนจะอัพโหลดโปรแกรมที่เขียนใน Arduino IDE ผ่าน USB TTL เข้าขา UART โดยต่อไขว้จาก ESP8266-12E ไปยัง USB TTL ดังนี้

Tx  -  Rx
Rx  - Tx
Gnd - Gnd
ที่ตัวโมดูลจะใช้ไฟเลี้ยง 3.3V เข้าขา VCC และขา CH_PD ส่วนขา Reset จะต่อเข้ากับไฟเลี้ยงโดยมี R 470 โอห์ม คั่นไว้ตัวหนึ่ง และต่อสวิทช์เพื่อลงกราวด์ เมื่อกดปุ่ม Reset (สวิทช์กดติดปล่อยดับ)

ที่ขา GPIO0 จะต่อสวิทช์ ลงกราวน์ด้วยตัวหนึ่ง สำหรับกดเลือกโปรแกรม เป็นสวิทช์ปิดเปิด

เมื่อต้องการอัพโหลดโปรแกรมให้เปิดสวิทช์ Program เพื่อให้ขา GPIO0 ลงกราวน์ และกดสวิทช์ Reset ครั้งหนึ่ง แล้วสั่งอัพโหลดจาก Arduino IDE ได้ทันที

โค้ดสำหรับทดสอบในครั้งนี้

int inputPin = 9;
int outputPin = 10;
long tme = 0;              
long debounce = 750;
void setup(){
  Serial.begin(9600);
  Serial.println("");
  Serial.println("Use GIPO9...");
  pinMode(inputPin, INPUT);
}
void loop(){
  if(digitalRead(inputPin) == HIGH && (millis()-tme) > debounce){
    Serial.println("1"); //Print 1 for HIGH state.
    digitalWrite(outputPin, HIGH); //turn led on
    tme = millis();
  }else{
    Serial.println("0"); //Print 1 for HIGH state.
    digitalWrite(outputPin, LOW); //turn led on
  }
}

หลังจากอัพโหลดแล้วก็ลองเข้าไปที่ Tools-> Serial แล้วลองกดปุ่ม SW ที่ต่อกับขา GPIO9 ดูถ้าหน้าจอมีเลข 1 ปรากฏขึ้นก็ถือว่าใช้ได้แล้ว


ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Gtk4 ตอนที่ 6 Defining a Child object

Defining a Child object A Very Simple Editor ในบทความที่ผ่านมาเราสร้างโปรแกรมอ่านไฟล์ชนิดข้อความ และในบทความนี้ก็จะมาปรับแต่งโปรแกรมกันสักหน...