บทช่วยสอนที่ 2 เกี่ยวกับอินพุตขั้นสูงสําหรับบอร์ด Intel® Galileo
วงจรที่คุณสร้างมีอินพุตสองตัว (ไมโครโฟนและตัวเก็บประจุแบบสัมผัส) และเอาต์พุตสองตัว (ไฟ LED สองตัว) ก่อนเดินสายทุกอย่างมาดูประเภทของอินพุตที่เราใช้
เซ็นเซอร์ไมโครโฟน
เซ็นเซอร์ไมโครโฟนของเราเป็นอินพุตแบบอะนาล็อก อินพุตประเภทนี้หมายถึงการใช้ค่าจากโลกทางกายภาพและแปลงเป็นค่าที่อ่านได้ด้วยเครื่อง จากนั้นเราจะใช้ค่านิยมเหล่านี้ในโปรแกรมของเรา
เซ็นเซอร์สัมผัสแบบ Capacitive
เซ็นเซอร์สัมผัสของเราคืออินพุตดิจิตอล อินพุตประเภทนี้หมายความว่าจะตีความเฉพาะค่าขาเข้า HIGH และ LOW (true/false, 0/1) เท่านั้น
การทําความเข้าใจความแตกต่างระหว่างอินพุตทั้งสองประเภทเป็นสิ่งสําคัญ บอร์ด Intel® Galileo มีป้ายอินพุตอะนาล็อกหกตัว A0-A5 พินอะนาล็อกใส่เท่านั้น พินอะนาล็อกแมปสัญญาณแรงดันไฟฟ้าขาเข้า (0 ถึง 5 V) เป็นค่าจํานวนเต็มระหว่าง 0 และ 1023 ในโค้ด เราอ่านและเขียนค่าอะนาล็อกโดยใช้ฟังก์ชันอะนาล็อก
ประกาศและกําหนด "val" ให้กับมูลค่าที่เข้ามาจากพิน A0 (ตั้งแต่ 0-1023)
int val = analogRead(A0);
เขียนค่าขาเข้าจาก A0 (ตั้งแต่ 0-255 หลังการแมปค่า)
analogWrite(13, val);
หากต้องการทราบรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการและเวลาในการใช้ฟังก์ชันอะนาล็อก โปรดดูคู่มืออ้างอิง:
ข้อมูลอ้างอิงของ analogRead
ข้อมูลอ้างอิงอะนาล็อกWrite
ทําไมจึงมีฟังก์ชันอะนาล็อกWrite เราเขียนถึงอะไร
ที่นี่เราใช้พิน Pulse Width Modulation (PWM) เราจะไปดูว่า PWM ทํางานอย่างไร และจะใช้งานอย่างไรและเมื่อใดในส่วนถัดไป
ค่าอินพุตการทดสอบ
- เพิ่มพลังให้เบรดบอร์ด:
- เชื่อมต่อจัมเปอร์สองสายเข้ากับพิน 5 V และ GND บนบอร์ด Galileo ตามลําดับ
- เชื่อมต่อปลายทั้งสองด้านของสายเหล่านั้นเข้ากับแถบแนวตั้งของ breadboard ที่มีเครื่องหมาย + ( ซึ่งแสดงถึง PWR และ GND)
- การเชื่อมต่อนี้จะมอบขุมพลังให้กับแถบแนวตั้งทั้งหมดเพื่อให้โมดูลอื่นๆ สามารถเชื่อมต่อได้
- เชื่อมต่อไมโครโฟน:
- เชื่อมต่อจัมเปอร์สองสายจากพิน PWR และ GND ของไมโครโฟนเข้ากับแทร็กแนวตั้งที่เกี่ยวข้องบนเบรดบอร์ด
- เชื่อมต่อจัมเปอร์ที่เหลือจากไมโครโฟนเข้ากับแถวที่ส่วนในของเบรดบอร์ด
- แล้วต่อสายจัมเปอร์จากแถวเดียวกันเข้ากับพิน A0
- เชื่อมต่อเซ็นเซอร์สัมผัส:
- เชื่อมต่ออินพุต PWR และ GND ของเซ็นเซอร์สัมผัส (เช่นเดียวกับที่คุณทําด้วยสายเคเบิลของไมโครโฟน) แล้วต่อสายปลายเข้ากับแถบ PWR และ GND แนวตั้ง
- ต่อสายสุดท้ายเข้ากับแถวที่ส่วนด้านในของเบรดบอร์ด
- ซึ่งต้องเป็นแถวที่แตกต่างจากไมโครโฟน ในท้ายที่สุด ให้เชื่อมต่อสายจัมเปอร์ที่เหลืออยู่จากแถวเดียวกันกับพิน 2
อัปโหลดภาพสเก็ตช์ต่อไปนี้ เปิดจอภาพซีเรียลของคุณเพื่อดูว่าเกิดอะไรขึ้น:
ประกาศและกําหนดตัวแปรสองตัวที่แสดงถึงพินสําหรับเซ็นเซอร์
หมาย เหตุ | คําว่า const ที่ด้านหน้าของการประกาศตัวแปรบอกคอมไพเลอร์ว่าโปรแกรมไม่สามารถอัปเดตตัวแปรนี้ได้ |
const int touch = 2;
const int sound = A0;
การตั้งค่าที่เป็นโมฆะ (){
Serial.begin(57600);
ตั้งค่าโหมดพินสําหรับเซ็นเซอร์สัมผัส
pinMode (touch, INPUT);
}
หมาย เหตุ | เนื่องจากเซ็นเซอร์เสียงเป็นอินพุตอะนาล็อก เราจึงไม่จําเป็นต้องตั้งค่าโหมดพิน |
void loop(){ // ประกาศและกําหนดสองตัวแปรที่แสดงถึงการอ่านอินพุตจากเซ็นเซอร์
int touch_input = digitalRead(touch);
int sound_input = analogRead (เสียง);
พิมพ์ค่าไปยังจอภาพซีเรียล
Serial.print ("เสียง:");
Serial.println (sound_input);
Serial.print ("touch:"): ");
Serial.println (touch_input);
Serial.println("");
รอ 10 มิลลิวินาทีก่อนการอ่านครั้งต่อไป
ความล่าช้า(10);
}