สอนเขียนโปรแกรมยกชุด COMBO LAB

13082071_1080912758645932_1903432350_n.png

show.php.gif    การทดลองที่ 2 Decision and Loops (2.9)    show.php.gif

กระบวนการหนึ่งที่สำคัญในการออกแบบอัลกอริทึม ก็คือความสามารถในการวนลูปของการทำงานของกลุ่มคำสั่งตามที่นักพัฒนาต้องการ ดังนั้นสำหรับตอนนี้ ก็จะนำเสนอการพัฒนาโปรแกรมเพื่อให้บางส่วนของคำสั่งสามารถมีการวนซ้ำได้หลายครั้ง สำหรับคำสั่งที่สามารถใช้ในการเขียนโปรแกรมแบบวนซ้ำในภาษา 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

จับภาพหน้าจอ 2559-05-02 เวลา 12.00.40

จะได้การวนประมาณ 1+2+3+4+5+6+7+8+9+10 = 55

หน้าตา output

จับภาพหน้าจอ 2559-05-02 เวลา 12.05.19

หน้าตา flowchart

จับภาพหน้าจอ 2559-05-02 เวลา 12.00.18

——————————————————————————————————————-

 

show.php.gif การทดลองที่ 1 Exercising the comma operetta (1.8)  show.php.gif

ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operators)

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

 

Operator

 

รูปแบบ และการทำงาน

 

ลำดับในการประมวลผล

“*”(Multiply) หาผลคูณ 1
“/” (Divide) หาผลหาร
“%” (Modulus) หาเศษที่เหลือจากการหาร
“+” (Add) การบวก
“-” (Minus) op1-op1:การลบ

ตัวดำเนินการสัมพันธ์ (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

ตัวอย่างโค้ดจากการทดลอง 

จับภาพหน้าจอ 2559-05-02 เวลา 12.21.40

output จากการทดลอง

จับภาพหน้าจอ 2559-05-02 เวลา 12.41.31

เป็นการแสดงผลหน้าจอ และเลือก ตัว num4 ที่มีค่าสแดงผลมากที่สุด

———————————————————————————————————————

 

                              การทดลองที่ 8 Arduino  Ultrasonic Ranging HC-SR04

 

 

จับภาพหน้าจอ 2559-05-02 เวลา 15.17.51

 

 

 

 

 

 

ความรู้พื้นฐาน
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

โหลดโปรแกรม  Arduino  แล้วพิมพ์โค้ด

จับภาพหน้าจอ 2559-05-02 เวลา 15.19.45

แล้วต่อวงจรตามรูป

จับภาพหน้าจอ 2559-05-02 เวลา 15.40.15

บันทึกผลการทดลอง

จับภาพหน้าจอ 2559-05-02 เวลา 15.19.36

จากการทดลองตัวอัลตร้าโซนิค กับบอร์ดอาร์ดูโน่ สามารถวัดระยะห่างได้ดีพอสมควร จะแสดงผลออกทางหน้าจอ serial moniter

Woranan Ruksanit
at GlurGeek.Com
นักศึกษาคณะวิศวกรรมศาสตร์ สาขาวิศวกรรมคอมพิวเตอร์ ชั้นปีที่4
มหาวิทยาลัยกรุงเทพ

1 Comment

Leave a Reply

Copyright © 2021 GlurGeek.Com. All Rights Reserved.