วันจันทร์ที่ 7 กันยายน พ.ศ. 2563

ตอนที่ 9 วัดอุณหภูมิกับ KidBright องศาเซลเซียสหรือองศาฟาเรนไฮต์

    สวัสดีอีกครั้งทุกคน หายไปหลายวันเพราะออฟฟิศซินโดรมปวดคอปวดหัวอย่างมาก ตาลายมึนหัวตามมาอี๊ก...เลยหนีไปเลี้ยงสัตว์ปลูกต้นไม้กินยานอน  แต่ก็กลับมาแล้วอะนะ

    จากสองตอนที่แล้วเราใช้เซ็นเซอร์แสงบนบอร์ด KidBright เปิดปิดไฟได้แล้วครั้งนี้ถ้าจะไม่พูดถึงเซ็นเซอร์ออนบอร์ดอีกตัวนั่นคือเซ็นเซอร์วัดอุณหภูมินี่ก็ยังไง ๆ อยู่เนาะ มันจะไม่ครบถ้วนน่ะสิ

    เซ็นเซอร์วัดอุณหภูมิตัวนี้จะอยู่แถวๆ ด้านบนเยื้องไปทางซ้ายของบอร์ดมีสัญญลักษณ์รูปปรอทวัดอุณหภูมิกะลูกศรชี้ไปใปที่ชิปวัดอุณหภูมิตัวสี่เหลี่ยมเล็ก ๆ การใช้งานก็ง่ายแสนง่าย แค่ลากบล็อกอ่านค่าอุณหภูมิมาติดกับจอแสดงผลเท่านี้ก็เรียบร้อยใช้รูปแบบคำสั่งเหมือนเซ็นเซอร์แสงเลย ดูตามภาพด้านล่างจ้ะ

    ค่าที่อ่านได้เป็นอุณหภูมิในหน่วยองศาเซลเซียสนะ ทีนี้เรามาลองปรับให้เป็นองศาฟาเรนไฮต์ดู ใครจำสูตรแปลง องศาเซลเซียสเป็นองศาฟาเรนไฮต์ได้บ้าง จำไม่ได้ไม่เป็นไรดูสูตรด้านล่างนะ 

C/5  =  (F-32)/9
      F  =  9C/5 + 32
     F  =  4.5C+32

    เพื่อแปลงค่าจากที่บอร์ดอ่านได้ในหน่วยองศาเซลเซียสเราต้องพึ่งบล็อกการคำนวณที่อยู่ในแถบเมนู Math ซะแล้ว ใช้แค่บล็อกคำสั่งแค่ไม่กี่ตัว อันที่วงไว้ในรูปใช้หมดเลย


    ในการเขียนโปรแกรมให้เครื่องคำนวณก่อนอื่นต้องเก็บค่าจากเซ็นเซอร์ไว้ในตัวแปรตัวแปรนึง ในที่นี้ให้เป็น TempC (อุณหภูมิในหน่วยองศาเซลเซียส) แล้วเดี๋ยวจะเขียนบล็อกคำสั่งที่เป็นสมการเพื่อหาค่า TempF (อุณหภูมิในหน่วยองศาฟาเรนไฮต์) ดังนั้นต้องสร้างตัวแปรก่อน ให้ไปที่แถบเมนู Variables แล้วกด Create variable...ดังภาพด้านล่าง 


    เราจะสร้างตัวแปรมา 2 ตัว คือTempC (อุณหภูมิในหน่วยองศาเซลเซียส) และ TempF (อุณหภูมิในหน่วยองศาฟาเรนไฮต์) ตามวิดีโอนะ
    คราวนี้มาลองสร้างโปรแกรมอ่านค่าจากเซ็นเซอร์แล้วคำนวณแสดงผลบนจอแอลอีดีกัน ลองดูตามภาพและวีดิโอด้าล่าง และเมื่อแฟลชโปรแกรมลงบอร์ด ค่าที่แสดงออกมาจะเป็นองศาฟาเรนไฮต์สังเกตไหมว่าค่าสูงขึ้นกว่าเดิม


    มาเพิ่มความซับซ้อนให้โปรแกรมเราอีกนิดนึง สมมติอยากให้เมื่อเริ่มโปรแกรมให้จอแสดงผลขึ้นข้อความให้เราเลือกได้ว่าจะให้แสดงผลอุณหภูมิเป็นองศาเซลเซียสหรือองศาฟาเรนไฮต์โดยกดปุ่มเลือก S1 หรือ S2 ตามลำดับ เมื่อแสดงผลเสร็จให้แสดงข้อความอีกทีวนไปเรื่อย ๆ ทำยังไงดี

หลักคิดคือ ค่อย ๆ คิดว่าจะมีขั้นตอนการทำงานส่วนย่อยต่าง ๆ ยังไงบ้างแล้วเอามาเรียงกันแล้วค่อยเขียนคำสั่งของแต่ละงาน เราอาจจะแบ่งขั้นตอนการทำงานของโปรแกรมได้ดังนี้
1. แสดงข้อความส่วนหัวว่าจะเป็นการวัดอุณหภูมินะ
2. อ่านค่าอุณหภูมิแล้วเก็บในตัวแปร TempC แล้วคำนวณค่าอุณหภูมิในหน่วยองศาฟาเรนไฮต์
3. รอค่าจากสวิตช์ S1 หรือ S2 
4. ใส่เงื่อนไขถ้ากด S1 แสดงค่าองศาเซลเซียส แต่ถ้ากด S2 ให้แสดงค่าองศาฟาเรนไฮต์ (ให้รอการกดปุ่มก่อน)
5. วนกลับไป 1 อันนี้คือคำสั่ง Forever ไง
ลองเขียนบล็อกดูแล้วปรับลำดับนิด ๆ หน่อย ๆ มาดูภาพโปรแกรมเต็ม ๆ กัน


    จากโปรแกรมของเราตอนแรกเราจะให้จอแสดงข้อความว่า DegreeC หรือ DegreeF แล้วเข้าสู่คำสั่ง Repeat while (เอามาจากแถบเมนู Loop) บล็อกนี้คือการสั่งให้อ่านค่าอุณหภูมิจากเซ็นเซอร์แล้วเก็บข้อมูลอุณหภูมิในหน่วยองศาเซลเซสไว้ในตัวแปร TempC ตามด้วยการคำนวณอุณหภูมิในหน่วยองศาฟาเรนไฮต์เก็บในตัวแปร TempF แล้วจึงแสดงข้อความว่า S1 or S2 วนอยู่อย่างนั้นในกรณีที่ไม่มีการกด Switch 1 และ Switch 2 เป็นการรอค่าจากผู้ใช้งานนั่นเอง เมื่อมีการกดสวิตช์ซักตัวนึงจะออกจากลูปแล้วเข้าสู่บล็อก if...do... เพื่อแสดงค่าตามเงื่อนไขที่กำหนดไว้

    เป็นยังไงบ้าง ครั้งนี้เราก็ได้รู้จักเซ็นเซอร์ออนบอร์ดตัวสุดท้ายไปแล้ว ถึงแม้ว่า KidBright จะมีเซ็นเซอร์แค่สองตัวแต่ก็สามารถเอาไปประยุกต์ใช้เล่นอะไรได้อีกหลายอย่าง เซ็นเซอร์ทั้งสอง ตัวนี้อยู่ในกลุ่มเซ็นเซอร์วัดสภาพแวดล้อม ทีนี้ก็ขึ้นอยู่กับเราว่าอยากจะวัดที่ไหนและจะเอาค่าที่อ่านได้ไปทำอะไรแล้วแต่จินตนาการเลยนะ อ้อ..แต่อย่าเอาบอร์ดไปแช่น้ำตากฝนโดนแดดนะจ๊ะ มันอันตราย...ถ้าจะวัดสภาพแวดล้อมแบบน้ันแนะนำให้หาเซ็นเซอร์เฉพาะมาต่อแล้วส่งข้อมูลเข้าบอร์ด KidBright จะเหมาะสมกว่า



#Kidbright #Kidbright คืออะไร #Kidbright ทำอะไรได้บ้าง

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

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

ตอนที่ 11 KidBright ต่อ Output ควบคุมพัดลมตามเวลาและอุณหภูมิผ่านรีเลย์

     เมื่อเรามีบอร์ดควบคุมอย่าง KidBright และมีรีเลย์พร้อมกับแหล่งจ่ายไฟภายนอกเราก็สามารถควบคุมการทำงานของอุปกรณ์ขนาดใหญ่ขึ้นได้      บอกเสร...