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(){   การทำางานของโปรแกรม

    while(analog(1)>500){sr(50);}     โปรแกรมนี้จะใช้ตัวแปร i ในการนับทางแยกเมื่อเจอทางแยกแล้วตรวจพบว่าตัวแปร i มีค่า

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


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

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