อยากถามเรื่อง pic16f627a ครับ
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: อยากถามเรื่อง pic16f627a ครับ  (อ่าน 6719 ครั้ง)
teenparty
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 7


อีเมล์
« เมื่อ: มกราคม 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.เดียวมาถามต่อครับลืม

ขอบคุณครับ


บันทึกการเข้า

JUB
Full Member
member
**

คะแนน81
ออฟไลน์ ออฟไลน์

กระทู้: 1157



« ตอบ #1 เมื่อ: มกราคม 24, 2010, 11:09:56 PM »

1.ผมว่าไปซื้อของ ett มาใช้ดีกว่าครับ ลงทุนหน่อย ของ ไอ... ผมว่ามันไม่ได้เรื่อง เอามาใช้งานแล้วมีปัญหาตลอด

2.งงครับ เอา code เต็มมาดูดีกว่า

3.ใช่ครับ

4.ต้องเขียนเป็น flow chart ออกมาครับจะได้ไม่งงสำหรับมือใหม่

5.ว่างๆ ผมจะช่วยตอบให้เท่าที่ผมรู้

 THANK!!
บันทึกการเข้า
teenparty
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 7


อีเมล์
« ตอบ #2 เมื่อ: มกราคม 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 ทงานอย่างเดียวเพื่อให้มอเตอร์ซ้ายทงานแล้วรถจะเลี้ยวขวาอะครับ

ขอบคุณมากครับ
บันทึกการเข้า
JUB
Full Member
member
**

คะแนน81
ออฟไลน์ ออฟไลน์

กระทู้: 1157



« ตอบ #3 เมื่อ: มกราคม 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

หวังว่าคงพอช่วยได้นะ


บันทึกการเข้า
teenparty
member
*

คะแนน0
ออฟไลน์ ออฟไลน์

กระทู้: 7


อีเมล์
« ตอบ #4 เมื่อ: มกราคม 25, 2010, 02:24:36 PM »

เออ คือ มัยก้อเปนประมานที่ผมอธิบายอะครับ
คือ ผมอยากได้โค๊ดคร่าวๆ อะครับ


ขอบคุณครับ
บันทึกการเข้า
JUB
Full Member
member
**

คะแนน81
ออฟไลน์ ออฟไลน์

กระทู้: 1157



« ตอบ #5 เมื่อ: มกราคม 26, 2010, 12:54:29 AM »

เออ คือ มัยก้อเปนประมานที่ผมอธิบายอะครับ
คือ ผมอยากได้โค๊ดคร่าวๆ อะครับ


ขอบคุณครับ

code ต้องศึกษาเองครับผมไม่มีความรู้เรื่อง pic เปลี่ยนเป็น mcs-51 ภาษา asm ได้หรือป่าวล่ะ
ถ้าได้จะเขียนให้...
บันทึกการเข้า
kiano♥
kiano555@gmail.com
กลุ่มสนับสนุนLSV+มีน้ำใจ
member
****

คะแนน337
ออฟไลน์ ออฟไลน์

กระทู้: 570


การให้น่าภูมิใจกว่าได้รับ Line ID : Tech64

kiano555@windowslive.com kiano555@yahoo.com
เว็บไซต์ อีเมล์
« ตอบ #6 เมื่อ: มกราคม 30, 2010, 01:15:46 PM »

อยากได้คร่าวๆ พี่ jub ก็ตอบไปแล้วนี่ครับ
อธิบายได้ดีมากด้วยครับ

มีเป็นโปรเจคให้ดูเป็นแนวทางครับ

http://upload.one2car.com/download.aspx?pku=45E2854FAAJJ[V1QA4UA6A68NW3U38

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