พิมพ์หน้านี้ - อยากถามเรื่อง pic16f627a ครับ

LSVคลังสมองออนไลน์ "ปีที่21"

► อิเล็กทรอนิกส์ ► => หุ่นยนต์-pcb-เทคโนโลยี่ใหม่ => ข้อความที่เริ่มโดย: teenparty ที่ มกราคม 24, 2010, 10:02:12 PM



หัวข้อ: อยากถามเรื่อง 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

**ให้ก๊อปปี้แถวบนไปวางที่แอดเดรสบาร์ ถ้ากดที่นี่เลยมันจะไม่ขึ้นครับ