หัวข้อ: อยากถามเรื่อง pic16f627a ครับ เริ่มหัวข้อโดย: teenparty ที่ มกราคม 24, 2010, 10:02:12 pm ขออภัยครับพิมพ์ สระอาม ไม่ได้
หลายคามถามหน่อยนะครับ 1.ทาม ไมถึงพังง่ายจังครับผมซื้อมาจากที่แถมหนังสือ ของไอสตาย ยังไม่ทันใช้เลยพังแล้ว แล้วเอาของเพื่อนมาใช้กับใช้ได้ แต่พอต่อวงจรแล้วใช้ได้เปปเดียวอยู่ดีๆก้ดับไปเลย ลองต่อวงจรใหม่ก้อไม่ขึ้นไปซะแล้ว [ic พังแน่เลยชะปะคับ] 2.ผมเขียนโปรแกรม ใช้while loop โดยกามหนดเงื่อนไขเป็น(PORTA.F0=0,PORTA.F1=1,PORTA.F2=0) แบบนี้ได้ไหมอะครับ 3.while loop(1){}คือการวนลูปที่การทามงานไม่มีจบสิ้นใช้ไหมครับ 4.พอ ดีจะทามหุ่นยนต์เดินตามเส้นอะครับมีใครช่วยลองเขียนโปรแกรมแนะนาม หน่อยได้ไหมครับ โดยที่ผมใช้เซนเซอร์จับข้างหน้าของโครงรถบังคับ 4WD มอเตอร์ขับเคลื่อนสองตัวแบ่งเป็นซ้ายและขวา 3 ตัว ซ้าย กลาง ขวา เมื่อกลางเจอเส้นสีดามก้อจะให้มอเตอร์ ซ้าย ขวา ทามงานพร้อมกาน รถก้อจะวิ่งตรง เมื่อ ขวาเจอเส้นสีดาม ให้มอเตอร์ซ้ายทามงานเพื่อให้เลี้ยวขวา ประมาณ นี้อะคัฟ ขอโปรแกรม คร่าวๆ อ่าครับ ขอแนวเฉยๆ อ่าครับ 5.เดียวมาถามต่อครับลืม ขอบคุณครับ หัวข้อ: Re: อยากถามเรื่อง pic16f627a ครับ เริ่มหัวข้อโดย: JUB ที่ มกราคม 24, 2010, 11:09:56 pm 1.ผมว่าไปซื้อของ ett มาใช้ดีกว่าครับ ลงทุนหน่อย ของ ไอ... ผมว่ามันไม่ได้เรื่อง เอามาใช้งานแล้วมีปัญหาตลอด
2.งงครับ เอา code เต็มมาดูดีกว่า 3.ใช่ครับ 4.ต้องเขียนเป็น flow chart ออกมาครับจะได้ไม่งงสำหรับมือใหม่ 5.ว่างๆ ผมจะช่วยตอบให้เท่าที่ผมรู้ THANK!! หัวข้อ: Re: อยากถามเรื่อง pic16f627a ครับ เริ่มหัวข้อโดย: teenparty ที่ มกราคม 25, 2010, 12:10:00 am ขอบคุณมากครับที่เข้ามาช่วย
โคีดโปรแกรม คร่าวๆนะครับ main() { TRISA=0B00001111 \\ กามหนดให้A0-3เป็นอินพุต A4-7เป็นเอาท์พุต TRISB=0B00000000 \\ กามหนดให้B0-7 เป้นเอาต์พุต while loop (1) { while loop(PORTA.F0=0,PORTA.F1=1,PORTA.F2=0) \\ทามงานเมื่อ PORTA0=0[ไม่มีไฟเข้า] ,PORTA1=1 [มีไฟเข้า5V] ,PORTA2=0 { PORTB.F0=1 ; \\ให้PORTB0มีไฟออก PORTB.F2=1; \\ให้PORTB2มีไฟออก นามไปขับมอเตอร์ สองตัวที่ยังคับซ้ายตัวหนึ่ง ขวาตัวหนึ่ง ทามให้รถวิ่งตรง } while loop(PORTA.F0=0,PORTA.F1=1,PORTA.F2=1) \\ทามงานเมื่อ PORTA0=0[ไม่มีไฟเข้า] ,PORTA1=1 [มีไฟเข้า5V] ,PORTA2=1 { PORTB.F0=1 ; \\ให้PORTB0มีไฟออก นามไปขับมอเตอร์ ตัวซ้ายตัวเดียวทให้รถเลี้้ยวขวา PORTB.F2=0; \\ให้PORTB2ไม่มีไฟออก } while loop(PORTA.F0=0,PORTA.F1=1,PORTA.F2=1) \\ทามงานเมื่อ PORTA0=0[ไม่มีไฟเข้า] ,PORTA1=1 [มีไฟเข้า5V] ,PORTA2=1 { PORTB.F0=0 ; \\ให้PORTB0ไม่มีไฟออก PORTB.F2=1; \\ให้PORTB2มีไฟออก นามไปขับมอเตอร์ ตัวขวาตัวเดียวให้รถเลี้้ยวซ้าย } } } ช่วยวิจารณ์ หน่อยครับ สั่งสอนด้วยครับ โค๊ด ประมานนี้อะครับ โฟชาดก็เขียนไม่ถูกแหะ ช่วยลองวิเคราะห์ดูจากโค๊ด นี้หน่อยนะครับ ประมาณ ว่า มีเซนเซอร์ สามตัว ซ้าย กลาง ขวา เมื่อตัวกลางเจอเส้นสีดาม ก็ให้ PORTB0,2 ทามงานขับมอเตอร์สองตัวซ้ายขวา ทามให้รถวิ่งตรง เมื่อเซนเซอร์ตัวขวาเจอเส้นสีดามก็ให้ PORTB0 ทงานอย่างเดียวเพื่อให้มอเตอร์ซ้ายทงานแล้วรถจะเลี้ยวขวาอะครับ ขอบคุณมากครับ หัวข้อ: Re: อยากถามเรื่อง pic16f627a ครับ เริ่มหัวข้อโดย: JUB ที่ มกราคม 25, 2010, 10:54:41 am ผมไม่ค่อยถนัดเรื่องภาษา c นะ แต่ผมแนะนำ แบบนี้นะครับไม่รู้ว่าจะเข้าใจมั๊ย
1.initial 2.start loop 3.รับ input = sensor1,sensor2,sensor3 4.ใส่ค่า delay ช่วงนี้ด้วย 5.output = motor1,motor2 6.กลับไป start loop ใหม่ ตัวอย่างเช่น input = 101 แสดงว่า เจอเส้น ก็ให้ m1,m2 ทำงาน input = 001 แสดงว่า ออกจากเส้นไปทางขวา ก็ให้ m1 หยุด m2 ทำงาน input = 100 แสดงว่า ออกจากเส้นไปทางซ้าย ก็ให้ m1 ทำงาน m2 หยุด input = 111 แสดงว่า ไม่เจอเส้น ก็ให้ m1,m2 หยุดทำงานทำงาน การกำกนดการทำงานแบบเป็น byte นี้ จะมีความต่อเนื่องมากกว่าการแยกบิทครับ input = 101 output = 11 input = 001 output = 01 input = 100 output = 10 input = 111 output = 00 หวังว่าคงพอช่วยได้นะ หัวข้อ: Re: อยากถามเรื่อง pic16f627a ครับ เริ่มหัวข้อโดย: teenparty ที่ มกราคม 25, 2010, 02:24:36 pm เออ คือ มัยก้อเปนประมานที่ผมอธิบายอะครับ
คือ ผมอยากได้โค๊ดคร่าวๆ อะครับ ขอบคุณครับ หัวข้อ: Re: อยากถามเรื่อง pic16f627a ครับ เริ่มหัวข้อโดย: JUB ที่ มกราคม 26, 2010, 12:54:29 am เออ คือ มัยก้อเปนประมานที่ผมอธิบายอะครับ คือ ผมอยากได้โค๊ดคร่าวๆ อะครับ ขอบคุณครับ code ต้องศึกษาเองครับผมไม่มีความรู้เรื่อง pic เปลี่ยนเป็น mcs-51 ภาษา asm ได้หรือป่าวล่ะ ถ้าได้จะเขียนให้... หัวข้อ: Re: อยากถามเรื่อง pic16f627a ครับ เริ่มหัวข้อโดย: kiano♥ ที่ มกราคม 30, 2010, 01:15:46 pm อยากได้คร่าวๆ พี่ jub ก็ตอบไปแล้วนี่ครับ
อธิบายได้ดีมากด้วยครับ มีเป็นโปรเจคให้ดูเป็นแนวทางครับ http://upload.one2car.com/download.aspx?pku=45E2854FAAJJ[V1QA4UA6A68NW3U38 **ให้ก๊อปปี้แถวบนไปวางที่แอดเดรสบาร์ ถ้ากดที่นี่เลยมันจะไม่ขึ้นครับ |