Pages: 1 ... 9 10 [11] 12 13 ... 19   Go Down
Print
Author Topic: เกี่ยวกับ Ac power line x-10  (Read 260698 times)
0 Members and 16 Guests are viewing this topic.
muiim
Jr. Member
**
Offline Offline

Posts: 67


Email
« Reply #150 on: November 10, 2009, 05:40:44 PM »

ตอนนี้มีปัญหาแล้วครับ คือตอนกด sw มันไม่สามารถทำเป็นแบบระบุแอดเดรสได้ครับไม่รู้จาทำไงดี(มันได้แต่ปิดทั้งหมดกับเปิดทั้งหมด) ผมงงอีกแล้วครับ
Logged
muiim
Jr. Member
**
Offline Offline

Posts: 67


Email
« Reply #151 on: November 10, 2009, 05:49:13 PM »

อีกอย่างครับ code ตรงนี้
void X10FuncExeADR(int House,int Number,int Fn)
ตรง int House มันต้องเป็น char House รึป่าว
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


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


« Reply #152 on: November 10, 2009, 07:12:54 PM »

ใน X10Demo2.c มีแต่ฟังก์ชั่น void X10FuncExe(int House,int Number,int Fn) นะครับ
ในกรณีของ CCS ตัวแปร int ,char จะมีขนาด 8 บิทเท่ากันครับ ใช้ร่วมกันได้(อย่างระมัดระวัง)
จริงๆแล้วผมตั้งใจให้เป็น int (ตัวเลข) ครับ คือ 0x41-0x50  แต่กลัวว่านานๆไป เวลาดูจะงง เวลากำหนด ก็เลยใช้ 'A' คอมไพล์เลอร์จะเปลี่ยนให้เป็น 0x41ครับ เช่น
#rom  0x2100={'A',0x04}
Logged
plom
Jr. Member
**
Offline Offline

Posts: 49


Email
« Reply #153 on: November 10, 2009, 08:41:24 PM »

หวัดดีครับ พี่สมิธ  ตอนนี้ผมได้ต่อวงจรไปเเล้ว 2 ชุดครับ  ปรับความเเต่งความถี่ที่ขา C ของ Q1 ทั้ง 2 วงจรได้ 120kHz ตามที่พี่บอกเเล้ว จากนั้นผมลองเทสตามคุณ Coldman โดยการใช้สัญญาณไฟกระพิบ IC 555 ส่งตามคุณ Coldman เเต่ผลออกมา
led ที่ต่อกับขา 6 ของ U1 ไม่กระพิบ มันติดบ้างเเล้วมันก็ดับหายไปเลย ปรับลดค่า VR ก็ไม่มีสัญญาณจากขา C เเต่ตอนปรับจูนที่ Jump J1 ยังมีสัญญาณอยู่ครับ ผมขอคำเเนะนำหน่อยครับ
         
                ขอบคุณครับ
Logged
muiim
Jr. Member
**
Offline Offline

Posts: 67


Email
« Reply #154 on: November 11, 2009, 08:11:45 AM »

ขอบคุณครับอาจารย์ ตอนนี้ผมเลยคิดว่าน่าจะเป็นเพราะมันไม่สามารถอ่านแอดเดรสจาก eepromได้มากกว่าครับ (ที่มันไม่สามารถสั่งแบบระบุแอดเดรสได้นะ) คือตอนนี้ คอมไพล์เป็น 18F ครับ
ขอตอบคุณ plom นะครับ
ถ้าต่อ jumper j1 แล้วมีสัญญาณที่ขา 6 ของ 4069 (เอาled ต่อไว้มันจะติดค้างเลยนะ) แสดงว่า pc-817 ไม่ทำงานละครับ แต่ถ้ามีสัญญาณที่ขาCของQ1แต่ไม่มีสัญญาณที่ขา 6 ของ 4069 แสดงว่า Q2ไม่ทำงานครับ (ในความเข้าใจของผมนะ)

Logged
muiim
Jr. Member
**
Offline Offline

Posts: 67


Email
« Reply #155 on: November 11, 2009, 09:07:23 AM »

ผมมีอีกคำถามครับ ใน X10FuncExe เราสามารถกำหนดใน
int H,N,P;

   //Get Address form EEPROM House & Number
    H=read_eeprom(0);
    N=read_eeprom(4);

//Private Function
    if(H==House && N==Number)
 แทนที่จะอ่านจาก eeprom (คือระบุแอดเดรสไปเลยนะครับ)
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


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


« Reply #156 on: November 11, 2009, 10:44:20 AM »

สำหรับ PIC18 เปลี่ยน แอดเดรส EEPROM เป็น 0xF00000 ก็ยังใช้ไม่ได้หรือครับ
ให้ลองศึกษา EEPROM จาก
http://www.thaimicrotron.com/CCS-628/EEPROM/InEEPROM.htm
จะได้ทราบสาเหตุที่แท้จริง
ฟังก์ชั่น X10FuncExe parameter สามารถระบุเป็นค่าคงที่ได้ครับ แต่จะทำให้เปลี่ยนแปลงทีหลังไม่ได้

ขอบคุณ คุณ muiim ครับที่ช่วยวิเคราะห์ปัญญา ให้กับคุณ  plom ด้วย
ส่วนของคุณ plom ที่ต่อไว้ ต่อแบบไหนครับบนโปรโตบอร์ด หรือว่าทำ PCB
หากว่าทำ PCB ได้แก้ไขตรงนี้หรือยังครับ
http://www.thaimicrotron.com/webboard2/index.php?topic=22.msg671#msg671

ต้องขอโทษอีกครั้ง ที่ไม่ได้ตรวจให้ละเอียด เพราะทำไว้หลายเวอร์ชั่น ตอนประกอบเห็นว่าน่าจะมีอะไรเพิ่มเติม
แต่แก้เฉพาะที่ PCB ส่วน prototype ไม่ได้ทำใหม่ครับ ใช้โยงสายเอา
ต้องขอขอบคุณ คุณ muiim อีกครั้งที่ช่วยตรวจสอบให้
Logged
plom
Jr. Member
**
Offline Offline

Posts: 49


Email
« Reply #157 on: November 11, 2009, 12:57:34 PM »

ขอขอบคุณ  muiim  มากครับ ตอนนี้ส่งกันได้แล้วครับ ที่ภาครับLEDที่ขา 6 ของ4069 กระพริบตามสัญญาณของไอซีห้าๆ แต่ต้องปรับค่าVR1ลดลงในช่วงที่ส่งกันระยะไกล(ประมาณ10เมตร) คือว่าถ้ารับส่งกันมากกว่า10เมตรก็ต้องปรับVR1ลดลงอีก ตรงนี้ผมคิดว่าQ2 ต้องพังแน่ครับ เพราะส่งระยะไม่เกิน10เมตรก็ร้อน แล้วแต่ถ้าเสียบเต้ารับเดียวกันก็ไม่ต้องปรับลดVRเลยครับ  แต่สัญญาณที่รับได้ แรงดันจะเหลือประมาณครึ่งหนึ่งของแรงดันที่ส่งไป ตรงนี้จะเพิ่มการขยายของ4069ได้ไหมครับ หรือมีวิธีที่ดีกว่านี้ครับ ช่วยแนะนำด้วยครับ
 Grin Grin Grin
Logged
plom
Jr. Member
**
Offline Offline

Posts: 49


Email
« Reply #158 on: November 11, 2009, 01:06:47 PM »

ขอเพิ่มอีกหน่อยนะครับ ผมต่อลงโฟโต้บอร์ด 2 ชุดครับ แล้วปรับความถี่ให้เท่ากันคือ120Khz ดูจากการทำงานแล้ว Q2 จะที่งานที่บอร์ดภาคส่งเท่านั้นส่วนภาครับจะไม่ทำงาน(สองบอร์ดต่อเหมือนกันหมดเลยครับ แต่ไม่ได้ใช้ภาคควบคุม) ถ้าผมส่งสัญาณจากภาครับมาหาภาคส่งจะเป็นไปได้ไหมครับ ตรงนี้ผมกำลังจะลองทำครับ แต่ขอคำแนะนำก่อนครับ  Grin Cheesy Grin
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


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


« Reply #159 on: November 11, 2009, 06:54:14 PM »

เนืองจาก X10-LAB 1.0 ได้ออกแบบมาให้ทำงานทั้งรับและส่งอยู่แล้วครับ แต่เป็นแบบ Half Duplex คือเป็นการส่งและรับข้อมูลแบบสลับกัน
- เมื่อเป็นภาคส่ง L2+Q2,L1+Q1 จะทำงานทั้งหมด
- เมื่อเป็นภาครับ L2+ U1(4069)

ส่วนที่ว่า "แต่สัญญาณที่รับได้ แรงดันจะเหลือประมาณครึ่งหนึ่งของแรงดันที่ส่งไป" นั้นวัดจากที่ไหนครับ
ส่วนที่จะเพิ่มการขยายของ 4069 ซึ่งเอาต์พุตออกมาทางขา 6 นั้นจะเป็นพัลซ์ 0-5V เสมอครับ (ถ้ารับได้) ถ้าไม่ใช้ให้ตรวจภาครับใหม่
หากต่อ LED กับเอาต์พุตที่ขา 6 ควรจะต่ออนุกรมกับ R 1K ครับเอาแค่พอมองเห็นไม่เช่นนั้นจะโหลดเกินไปทำให้แรงดันตก
Logged
muiim
Jr. Member
**
Offline Offline

Posts: 67


Email
« Reply #160 on: November 11, 2009, 08:53:14 PM »

ผมขอชี้แจงคุณplomก่อนนะครับ เท่าที่ทดลองทำเครื่องนี้มา ผมใช้หม้อแปลง1A ปรับ VR จนสุด ปรากฏว่าไม่ร้อนครับ แต่ผมก็ไม่กล้าปรับไว้นานยกเว้นต้องการให้ส่งได้ไกล ระยะที่เคยทดสอบ 50 - 100 เมตร confirm (ระยะนี้เท่าทีมีสายนะ เวลาที่ใช้ 1 ชม)
อาจารย์ครับขอถามอีกที ถ้าผมกำหนดอย่างนี้ถูกต้องรึป่าว (กำหนดแบบตรงตัวครับ)
void X10FuncExeADR1(int House,int Number,int Fn)
{
int H,N,P;

   //Get Address form EEPROM House & Number
   // H=read_eeprom(0);
   // N=read_eeprom(1);
      H='A' ;
      N= 01 ;
Logged
muiim
Jr. Member
**
Offline Offline

Posts: 67


Email
« Reply #161 on: November 11, 2009, 09:00:45 PM »

ถามอีกอย่างครับ
#rom  0x2100={'A',0x04}
 ตรง 0x04 เรามองมันเป็นเลขฐาน 16 ใช่มั้ยครับ

แต่ถ้าเปลี่ยนเป็น
#rom  0x2100={'A',4} จะได้มั้ย
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


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


« Reply #162 on: November 11, 2009, 11:30:42 PM »

เรื่องระยะทาง หากเป็นสายเปล่า ไม่มีโหลดอื่นมาต่ออยู่ตรงกลางจะส่งได้ไกลมากครับ
แต่ถ้ามีโหลด ระยะทางก็จะลดลงไปเรื่อยๆ ยิ่งโหลดอื่นมาก ระยะทางจะสั่นลงครับ
ยิ่งโหลด บางประเภทมี วารีสเตอร์,MOV สำหรับป้องกันไฟเกิน ยิ่งลดฮวบๆ ครับ

ตอบคุณ muiim ได้ทั้งสองกรณีครับ
Logged
muiim
Jr. Member
**
Offline Offline

Posts: 67


Email
« Reply #163 on: November 12, 2009, 08:15:37 AM »

อาจารย์ครับแล้วกำหนดค่าแบบนี้มันจะได้รึป่าวกำหนดตายตัวไม่แก้ทีหลังนะครับ

Code:
void X10FuncExe(int House,int Number,int Fn)
{
int H,N,P;

   //Get Address form EEPROM House & Number
   // H=read_eeprom(0);
   // N=read_eeprom(1);
      H='A' ;
      N= 0x01 ;
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


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


« Reply #164 on: November 12, 2009, 08:38:06 AM »


ในฟังก์ชั่น X10FuncExe(); ตัวแปร  H,N สร้างขึ้นมารับ ข้อมูลจาก eeprom ครับ ถ้าไม่ใช้ข้อมูลใน eeprom ก็ตัดออกได้
โดยระบุเป็นค่าคงที่ ในฟังก์ชั่น X10Write(); ได้เลยครับ

int P;
.
.
.
   X10Write('A',1,X10FN_STATUS_ON);

Logged
Pages: 1 ... 9 10 [11] 12 13 ... 19   Go Up
Print
 
Jump to: