Pages: [1]   Go Down
Print
Author Topic: จ่ายอินพุตเข้า pic16f877 แล้วมันรีเซ็ตใหม่ทุกค  (Read 14237 times)
0 Members and 6 Guests are viewing this topic.
pakapong16
Jr. Member
**
Offline Offline

Posts: 33


« on: November 08, 2009, 11:17:14 PM »

แก้ไขยังงัยครับ

ขอคำแนะนำด้วยครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #1 on: November 09, 2009, 12:49:37 PM »

ให้ข้อมูลน้อยไปนิดครับ
- เช่นใช้เป็นอินพุตแบบไหนใช้ R pullup หรือ pull down แล้วเวลามันรีเซ็ทนะ ตอนไหน ตอนกดปุ่มหรือ ตั้งแต่เริ่มจ่ายไฟเลย
- ใช้ฟังก์ชั่นอะไรในการอ่านค่าอินพุต
- ใช้ตัวโปรแกรมอะไร แบบ PICKIT2 หรือเปล่า ขา MCLR ต่อไว้อย่างไร ใช้เบอร์อะไรในการทดลองครับ
Logged
pakapong16
Jr. Member
**
Offline Offline

Posts: 33


« Reply #2 on: November 10, 2009, 08:56:07 PM »

จ่ายอินพุตเป็นรูปของสัญญาณไฟฟ้า Monophasic Damped Wave ผ่านวงจรแบ่งแรงดันจาก 200-3000 Vpk. ให้เหลือเพียง 0-5 V.

ใช้ตัวโปรแกรมอะไร แบบ PICKIT2  ขา MCLR ต่อกับสวิตช์กดรีเซ็ต ใช้ PIC 16F877 ครับ

ใช้คำสั่งการอ่านค่า ADC จากอนาลอกเป็นดิจิตอล แล้วให้โชว์ค่าที่สูงสุดค้างไว้
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #3 on: November 10, 2009, 11:00:59 PM »

การอ่านค่าแรงดัน 200-3000 Vpk.(รู้สึกว่า length มันกว้างจัง) ด้วยวงจรแบ่งแรงดันให้เหลือเพียง 0-5 V
แล้วมันเป็นไฟ DC หรือ AC ครับ Source มันคืออะไรเช่น จากอุปกรณ์สร้างแรงดันเพื่อใช้ทดสอบในห้องแลป หรือ generator ประเภทใดทำไม length มันถึงได้กว้างขนาดนั้นครับ
หากเป็นแหล่งกำเนิดแรงดันสูง แล้วมาต่อกับ MCU มันไม่เสถียรอยู่แล้วครับ เพราะถ้าใช้กราวน์ร่วมกัน
- หากเป็น AC ก็ควรใช้หม้อแปลงแบ่งแรงดันลงมาดีกว่าครับ เพราะมันแยกขดกัน ทำให้กราวน์แยกจากกัน
- หากเป็น DC ก็ใช้พวก Opto เข้าช่วยก็ได้ครับ
Logged
pakapong16
Jr. Member
**
Offline Offline

Posts: 33


« Reply #4 on: November 11, 2009, 09:19:46 PM »

มันเป็นไฟ DC จากเครื่องกระตุกหัวใจ(Defibrillator) ครับ ที่ระดับพลังงานน้อยๆๆ(2,5,7,10J) MCU อ่านได้อยู่ครับ


แต่พอระดับพลังงาน20 J ขึ้นไป MCU ก้อเกิดการรีเซ็ต เมื่อมีการ shock ให้อินพุตเข้า MCU ขาAN0

สาเหตุเกิดจากอะไรหรอครับ

Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #5 on: November 11, 2009, 11:50:36 PM »

- การวัดไฟค่าที่สูงกว่าระดับแรงดัน VDD (+5V)ที่จ่ายให้ MCU นั้นจะต้องใช้
- ในวงจรแบ่งแรงดันประกอบไปด้วย R1 กับ R2 เราจะนำแรงดันที่ตกคร่อม R2 มาเข้ากับ MCU ซึ่งแรงดันสูงสุดที่ตกคร่อม R2 นี้จะต้องไม่เกิน 5V
- แสดงว่าแรงดัน ที่ระดับพลังงาน20 J ทำให้แรงดันที่ตกคร่อม R2 เกิน 5 V จะทำให้ MCU ทำงานผิดพลาดได้ (ถึงแม้ว่าที่ขา I/O ของ PIC จะมี Zener diode อยู่แล้วก็ตาม )
- ให้ลองลดค่า R1 ลง
- ให้ลองต่อค่า C ค่าน้อยๆ (0.001-0.1) คร่อม R1

- การต่อแหล่งกำเนิดแรงดันสูง กับ MCU ควรจะหาวิธีแยกกราวน์ให้ได้ครับ ***จำเป็น
Logged
pakapong16
Jr. Member
**
Offline Offline

Posts: 33


« Reply #6 on: November 18, 2009, 01:47:26 AM »

ถ้าอยากเขียนให้ mcu นับเวลาอินพุตว่าเป็นระยะนานเท่าไหร่


เริ่มต้นยังงัยดีครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #7 on: November 19, 2009, 04:57:06 PM »

การนับคาบเวลาอินพุต อาจใช้ตัวแปรมานับก็ได้ครับ
หรือใช้ Timer/Counter ดูรายละเอียดจาก
http://www.thaimicrotron.com/CCS-628/Timer/TimerCounter.htm
Logged
pakapong16
Jr. Member
**
Offline Offline

Posts: 33


« Reply #8 on: December 11, 2009, 02:57:51 PM »

ถ้าอยากเขียน ให้มันยกกำลัง  เช่น 2.54 ยกกำลัง X-1

เขียนใน MCU ที่เป็นภาษา C ยังงัยครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #9 on: December 14, 2009, 12:49:49 AM »

ในภาษาซี เขียนเป็น 2.54e-1 ครับ
Logged
Pages: [1]   Go Up
Print
 
Jump to: