Page 88 - การพฒนาการหนงสออเลกทรอนกสเรองภาษาซ
P. 88

82                                                                                                         83

 ฟังก์ชั่น servo_close() จะใช้เพื่อหนีบแล้วหมุนกระป๋อง     โดยฟังก์ชัน R180() จะให้หุ่นยนต์หมุนตัวไปทางขวาเรื่อย ๆ ถ้ายังไม่เจอเส้นสีดำา เมื่อเจอ


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

 void servo_close(){   โปรแกรมดังนี้ครับ

    servo(1,0);


    sleep(1000);

    servo(2,0);

    sleep(1000);


    servo(1,-1);

    servo(2,-1);

 }








    จากทั้งสองฟังก์ชันจะเห็นว่า เมื่อทำางานเสร็จแล้วจะใช้คำาสั่ง servo(1,-1) หรือ ser-

 vo(2,-1) เพื่อให้เซอร์โวหยุดทำางานและไม่กินกำาลังไฟฟ้า เมื่อวางกระป๋องหรือหนีบกระป๋อง


 เสร็จเรียบร้อยหุ่นยนต์จะต้องหมุนตัวกลับ 180 องศา สามารถสร้างเป็นฟังก์ชั่น R180()

 ดังนี้  การทำางานของโปรแกรม


 void R180(){      โปรแกรมนี้จะใช้ตัวแปร i ในการนับทางแยกเมื่อเจอทางแยกแล้วตรวจพบว่าตัวแปร i มีค่า

    while(analog(1)>500){sr(50);}  เป็น 1  จะเข้าสู่โหมดหนีบกระป๋อง โดยจะเดินตรงไปเรื่อยๆ จนเซนเซอร์ A2 เจอกระป๋อง จาก

    while(analog(1)<500){sr(50);}  นั้นหนีบแล้วถอยหลังหมุนตัวกลับ เดินตามเส้นต่อไป เมื่อเจอแยกอีกครั้ง i จะมีค่าเป็น 2 จะ


 }      เป็นการวางกระป๋อง และหมุนตัวกลับ ณ ที่นี้จะสั่งให้ i เป็น 0 อีกครั้งเพื่อเริ่มต้นกระบวนการ


        ใหม่
   83   84   85   86   87   88   89   90   91   92