การทดลองที่ 2 Decision and Loops (2.9)
กระบวนการหนึ่งที่สำคัญในการออกแบบอัลกอริทึม ก็คือความสามารถในการวนลูปของการทำงานของกลุ่มคำสั่งตามที่นักพัฒนาต้องการ ดังนั้นสำหรับตอนนี้ ก็จะนำเสนอการพัฒนาโปรแกรมเพื่อให้บางส่วนของคำสั่งสามารถมีการวนซ้ำได้หลายครั้ง สำหรับคำสั่งที่สามารถใช้ในการเขียนโปรแกรมแบบวนซ้ำในภาษา C ได้แก่ While, Do-while และ For
ลูป for
เป็นคำสั่งสำหรับการวนลูปเช่นเดียวกัน แต่สำหรับลูป for นั้น จะเป็นการเอาค่าเริ่มต้น เงื่อนไขและการเพิ่มค่า/ลดค่ามาไว้ในบรรทัดเดียวกัน
for(ค่าเริ่มต้น;เงื่อนไข;เพิ่มค่า/ลดค่า)
{
คำสั่ง 1;
}
คำสั่ง 2;
ลูป for จะคล้ายกับ if คือถ้ามีคำสั่งเดียวไม่ต้องมี { } ได้
syntax
for (expression1; expression2; expression3)
{
statement1;
statement2;
…
statementn;
}
เมื่อ
expression1: การกำหนดค่าเริ่มต้นตัวแปรที่ใช้ในการคุมการวนรอบ
expression2: เงื่อนไขของการวนรอบ
expression3: การเพิ่มค่าของตัวแปรควบคุมแต่ละรอบ
ตัวอย่างโค้ดการทดลอง 2.9
เป็นการนับค่าตัวเลขจำนวนเต็ม (ประกาศเป็นประเภท int และบวกไปเรื่อยๆตั้งแต่ 1-10 เพราะเรากำหนดค่า i เริ่มต้น =1 และการนับ คือตัว const max สูงสุดที่ 10
จะได้การวนประมาณ 1+2+3+4+5+6+7+8+9+10 = 55
หน้าตา output
หน้าตา flowchart
——————————————————————————————————————-
การทดลองที่ 1 Exercising the comma operetta (1.8)
ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operators)
คือคำสั่งพื้นฐานในการที่จะสั่งให้เครื่องคอมพิวเตอร์ประมวลผลการคำนวณพื้นฐานทางคณิตศาสตร์ เช่น การบวก ลบ คูณ หาร ตัวดำเนินการแต่ละตัวจะมีลำดับการประมวลผลตามที่กำหนด ดังตาราง และในการประมวลผลจะเริ่มทำจากทางซ้ายไปขวา และจะทำการประมวลผลในวงเล็บก่อน
Operator |
รูปแบบ และการทำงาน |
ลำดับในการประมวลผล |
“*”(Multiply) | หาผลคูณ | 1 |
“/” (Divide) | หาผลหาร | 2 |
“%” (Modulus) | หาเศษที่เหลือจากการหาร | 3 |
“+” (Add) | การบวก | 4 |
“-” (Minus) | op1-op1:การลบ | 5 |
ตัวดำเนินการสัมพันธ์ (Relational Operators)
คือตัวดำเนินการที่ทำหน้าที่เปรียบเทียบค่าระหว่างตัวแปรสองตัว หรือนิพจน์สองนิพจน์ โดยจะคืนค่าเป็นจริงหรือเท็จ (Boolean)
Relational Operator |
ตัวอย่าง |
|
< |
Op1<Op2 : คืนค่าความเป็นจริงถ้า Op1 น้อยกว่า Op2 | a=(1<3); //aจะมีค่าเป็นจริง |
<= |
Op1<=Op2 : คืนค่าความเป็นจริงถ้า Op1 น้อยกว่า Op2 หรือเท่ากับ Op2 | a=(5<=7); //a จะมีค่าเป็นจริง |
> |
Op1>Op2 :คืนค่าความเป็นจริงถ้า Op1 มากกว่า Op2 | a=(5>7); //a จะมีค่าเป็นจริง |
>= |
Op1>=Op2 : คืนค่าความเป็นจริงถ้า Op1 มากกว่า หรือเท่ากับ Op2 | a=(5>=7); //a จะมีค่าเป็นจริง |
== |
Op1==Op2 : คืนค่าความเป็นจริงถ้า Op1 เท่ากับ Op2 | a=(5==7); // a จะมีค่าเป็นเท็จเพราะ 5 ไม่เท่ากับ 7 |
!= |
Op1!=Op2 : คืนค่าความเป็นจริงถ้า Op1 ไม่เท่ากับ Op2 | a=(5!=7); // a จะมีค่าเป็นจริง เพราะ 5 ไม่เท่ากับ 7 |
“: |
(expression)”a:b :คือค่าตัว operand a ถ้า expression เป็นจริง | a=(3>5)”false:true; //a จะมีค่าเป็นจริง เพราะผลการเปรียเทียบ 3 มากกว่า 5 เป็นเท็จ เมื่อค่าที่ได้เป็นเท็จจะเลือกค่า true |
ตัวอย่างโค้ดจากการทดลอง
output จากการทดลอง
เป็นการแสดงผลหน้าจอ และเลือก ตัว num4 ที่มีค่าสแดงผลมากที่สุด
———————————————————————————————————————
การทดลองที่ 8 Arduino Ultrasonic Ranging HC-SR04
ความรู้พื้นฐาน
Ultrasonic Ranging Module HC-SR04
การทํางานของ Ultrasonic sensor เปรยี บเหมอื นกบั ค้างคาวท่บี นิ ในเวลากลางคืน คือใช้การส่งสัญญาณ Ultrasonic หรือคลื่นเสียงที่มนุษย์ ไม่สามารถได้ยินออกไปสะท้อนวัตถุ ที่ต้องการวัดระยะแล้วจับเวลาเสียงสะท้อน เพื่อคำนวณระยะทาง
อุปกรณืตัวนี้เริ่มต้นทำงานโดยการส่งสัญญาณเริ่มต้นยาว 10 ไมโครวินาที ไปสั่งให้แหล่งกำเนิดเสียงทำงาน จากนั้นจะส่งคลื่นเสียงความถี่ 40 kHZ ออกไป 8 พัลส์ แล้วรอฟังเสียงสะท้อน ตัวซ้านจะเป็นตัวส่งคลื่นเสียงออกไป ส่วนตัวขวาในรูปจะเ็นตัวที่ส่งคลื่นความถี่สะท้อนกลับมา
เนื่องจากเสียงที่ส่งออกไปแม้จะไม่ได้ยินเพราะเกิน 20 kHZ ที่หูมนุษย์จะรับฟังได้ แต่เนื่องจาก ยังคงเป็นคลื่นเสียงดังนั้นความเร็ซของเสียงจึงแปรผันตามอุณภูมิด้วยตามสูตร
C ≈ 331.5 + 0.61 θ (m/s)
คุณสมบัติของอุปกรณ์ที่ใช้ในการกำเนิดเสียงและรูปร่างของตัวลำโพง (Horn) ก็ทำให้อุปกรณ์ตัวนี้มีมุมวัด 15 องศา โดยสามารถวัดระยะห่างได้ตั้งแต่ 2 เซนติเมตร จนถึง 4 เซนติเมตร
ระยะทางก็คำนวณได้จากสูตร
ระยะทาง = ความยาวของสัญญาณสะท้อน x 340 (m/s) / 2
การทดลองที่ 8.1 การวัดระยะด้วย Ultrasonic
– เขยี นโปรแกรมเอง หรอื สามารถดาวน์โหลด Library ตาม Link: https://github.com/elrodri/Ultrasonic- HC-SR04 กรณดี าวน์โหลด Library เองใหน้ ําไฟลม์ าเกบ็ ไวใ้ นโฟลเดอรข์ อง Arduino\libraries ท่ี Installหรอื Zipไวใ้นเครอ่ืงSketch->ImportLibraries
ระยะทาง = ความยาวของสญั ญาณสะทอ้ น x 340 (m/s) / 2
ได้ความรู้มากๆเลยค่ะ