ESP8266 เป็นชื่อของชิปไอซีบนบอร์ดของโมดูล ซึ่งไอซี ESP8266 ไม่มีพื้นที่โปรแกรม (flash memory) ในตัว ทำให้ต้องใช้ไอซีภายนอก (external flash memory) ในการเก็บโปรแกรม ที่ใช้การเชื่อมต่อผ่านโปรโตคอล SPI ซึ่งสาเหตุนี้เองทำให้โมดูล ESP8266 มีพื้นที่โปรแกรมมากกว่าไอซีไมโครคอนโทรลเลอร์เบอร์อื่นๆและมันยังถูกเอาไปรวมกับเจ้าตัว Node MCU จนกลายเป็น Node MCU ESP8266 จากโมดูลไวไฟธรรมดากลายเป็นบอร์ดที่รองรับงานในระบบ IoT (ไอโอที) , microcontroler,ระบบสมองกลฝังตัวและที่สำคัญราคาในท้องตลาดเพียงแค่หลักร้อยเท่านั้น!!!
สัญญาณ Analog คืออะไร
สัญญาณแอนะล็อก (Analog Signal) เป็นสัญญาณแบบต่อเนื่อง มีลักษณะเป็นไซน์เวฟ ในแต่ละรูปคลื่นอาจซ้ำหรือต่างกันก็ได้ เราสามารถพบ สัญญาณอนาล็อกได้ในรูปแบบที่เป็นรูปร่างของสัญญาณได้เช่น การนำสโคปไปวัดแรงดันไฟจากแหล่งจ่ายปรับค่าได้จะเห็นว่า คลื่นจะค่อยๆขึ้นหรือค่อยๆลง คล้ายไซน์เวฟ (กรณีแหล่งจ่ายไฟเริ่มจาก 0 โวลท์) ตัวอย่างการใช้งานที่เราเห็นได้ง่ายๆคือ การเอาไปประยุกต์ใช้กับไมโครโฟนเพื่อรับสัญญาณเสียงในรูปแบบของสัญญาณอนาล็อกแล้วไปขยายออกลำโพง
การใช้ Node MCU ESP8266 อ่านค่าสัญญาณ Analog (อะนาล็อก)
ใน Node MCU จะมีขาใช้งานสำหรับการอ่านค่าสัญญาณ อนาล็อกมาให้อยู่แล้วนั่นก็คือ ขา A0 โดยในบทความนี้จะสาธิตต่อใช้งานกับตัวต้านทานปรับค่าได้
โดยต่อวงจรดังนี้
และนี่คือโค้ดตัวอย่างการอ่านค่าจากสัญญาณอนาล็อก
#hardware platform: FireBeetle-ESP8266
from machine import ADC #อิมพอร์ตคลาส ADC
import time
adc0=ADC(0) #สร้างออพเจค adc0 เพื่อรองรับ คลาส ADC() เลข0 คือขาA0
while True:
print("Volts= %.1f โวลต์"%((adc0.read())*3.3/1023.00)) # ปริ้นค่าที่อ่านได้ซึ่งเรานั้นได้ใช้สมาการในการแปลงจากอนาลอกมาเป็นแรงดันไฟ
time.sleep(2)
หมายเหตุ: adc0.read() จะอ่านค่าตั้งแต่ 0-1023.00 (แรงดันตั้งแต่0-3.3โวลต์)
ผลการรัน
อ้างอิงรูปภาพ: netpie