Page 87 - การพัฒนาการหนังสืออิเล็กทรอนิกส์เรื่องภาษาซี
P. 87

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 อีกครั้งเพื่อเริ่มต้นกระบวนการ

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