พิมพ์หน้านี้ - เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคนช่วย

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

ห้องโครงงาน - D.I.Y.- เทคโนโลยี่ => ห้องโครงงาน - D.I.Y.- เทคโนโลยี่ => ข้อความที่เริ่มโดย: kumnan ที่ กุมภาพันธ์ 03, 2012, 04:26:48 PM



หัวข้อ: เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคนช่วย
เริ่มหัวข้อโดย: kumnan ที่ กุมภาพันธ์ 03, 2012, 04:26:48 PM
ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคนช่วยเหลือนะครับ

การทำงานของเครื่องเป็นแบบนี้นะครับ

1.เมื่อเปิดเครื่ิองจอ LCD จะเเสดงข้อความ START หลังจากนั้นจะแสดงข้อความว่า ENTER PILL จากนั้นผู้ใช้ก็จะป้อนค่าจำนวนเม็ดยาผ่านทาง keypad แล้วกด Enter(#)
2.เครื่องจะเเสดงข้อความ ENTER CONTAINER จากนั้นผู้ใช้ก็จะป้อนค่าจำนวนขวดยาที่ต้องการผ่านทาง keypad แล้วกด Enter(#)
3.เครื่องจะทำการนับโดยในขณะที่นับเครื่องจะเเสดงผลการนับผ่านทาง 7-segment จำนวน 2 ชุด โดยชุดเเรกจะเป็นจำนวนเม็ดยา และชุดที่สองเป็นจำนวนขวด

***ตัวอย่าง ต้องการนับเม็ดยาจำนวนขวดละ 100 เม็ด จำนวน 10 ขวด เมื่อนับยาได้ 100 เม็ดแรก 7-segment ชุดเเรกจะไปเริ่มนับที่ 0 ใหม่ แต่ชุดที่ 2 ซึ่งเป็นชุดแสดงผลจำนวนขวด จะเเสดงค่าเป็น 1 และจะเพิ่มขึ้นเรื่อยๆๆจนกว่าจะครบตามจำนวนขวดที่ตั้งไว้

กูรูท่านใดพอที่จะเขียนให้ผมดูเป็นตัวอย่าง จะเป็นพระคุณอย่างยิ่งครับ ตอนนี้งานนี้เร่งมาก ต้องส่งวันพฤหัสนี้แล้วใครพอที่จะเขียนได้ ขอรบกวนหน่อยนะครับ  ขอบคุณมากครับ เอก
 


หัวข้อ: Re: เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคน
เริ่มหัวข้อโดย: kiano♥ ที่ กุมภาพันธ์ 04, 2012, 12:41:29 AM
โปรแกรมเขียนได้ง่าย แต่ปัญหาจะติดตรงที่ท่านทำระบบกลไกลการนับยา การเปลี่ยน เลื่อนขวดยา เม็ดยา ยังไง??


หัวข้อ: Re: เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคน
เริ่มหัวข้อโดย: kumnan ที่ กุมภาพันธ์ 06, 2012, 01:49:09 AM
ด้านกลไกผมศึกษาแล้วก็ออกแบบไว้หมดเกือบหมดแล้วอะครับ ส่วนการเลื่อนขวดยาก็เป็นแบบ MAnual ครับ แต่ผมมาติดตรงโปรแกรมอะครับ ตรงส่งพฤหัสนี้แล้วผมยังทามไม่เส็ดเลยครับ รบกวนพี่ๆๆช่วยเขียนให้ผมเป็นแนวทางหน่อยนะครับ ขอบคุณมากๆๆครับ


หัวข้อ: Re: เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคน
เริ่มหัวข้อโดย: JUB ที่ กุมภาพันธ์ 06, 2012, 10:24:57 AM
Software มันขึ้นตรงกับ Hardware ที่ออกแบบไว้ครับ ให้คนในนี้มานั่งหลับตาเขียน
มันก็ยากนิสนึงลองอธิบายหรือมีรูปมาประกอบซิครับว่า Hardware ที่ออกแบบนั้นทำงานยังไง
ใช้อะไรตรวจจับ สัญญาณที่ได้เป็นยังไง เผื่อจะพอช่วยๆกันได้


หัวข้อ: Re: เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคน
เริ่มหัวข้อโดย: kumnan ที่ กุมภาพันธ์ 06, 2012, 11:38:55 AM
ขอบคุณครับ

ส่วนนี้คือการทำงานของเครื่องนะครับซึ่งของผมมีวิธีการทำงานเหมือนกันกับเครื่องตัวนี้เลยครับลองดูนะครับ

http://www.youtube.com/watch?v=fRovq7jCv_Q


หัวข้อ: Re: เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคน
เริ่มหัวข้อโดย: JUB ที่ กุมภาพันธ์ 06, 2012, 01:26:16 PM
โค๊ด:
//====================================
// Progarm  :Up Down Counter
// Author   :Somlak Mangnimit
// Date     :24/01/2012
// Device   :Pic16f876
//====================================

#include    <htc.h>
#define     _XTAL_FREQ 20000000
__CONFIG(FOSC_HS&WDTE_OFF&PWRTE_OFF&LVP_OFF);

#define     Segment_Port            PORTB
#define     Common_Digit1_Hi        PORTAbits.RA2 = 1
#define     Common_Digit2_Hi        PORTAbits.RA3 = 1
#define     Common_Digit1_Low       PORTAbits.RA2 = 0
#define     Common_Digit2_Low       PORTAbits.RA3 = 0
#define     Switch_Up               PORTAbits.RA0
#define     Switch_Down             PORTAbits.RA1

const unsigned char seg_tab[] = {
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

volatile unsigned char Count,system_count,Button_state;
volatile bit digit_sel;

//====================================
// Scan
//====================================
void Scan(void){
while(!TMR0IF);
TMR0IF = 0;
TMR0 = 100;
Common_Digit1_Low;
Common_Digit2_Low;
digit_sel = ~digit_sel;
    if(digit_sel){
        Segment_Port = ~seg_tab[(Count/10)%10];
        Common_Digit1_Hi;
    }

    else{
        Segment_Port = ~seg_tab[Count%10];
        Common_Digit2_Hi;
    }
}

//====================================
// Setup
//====================================
void Setup(void){
PORTA = 0x00;
PORTA = 0x00;
TRISA = 0x03;
TRISB = 0x00;
PSA = 0;    //Timer0 Prescaler
PS2 = 1;
PS1 = 0;
PS0 = 0;    //1:32
T0CS = 0;   //Internal clock source
TMR0 = 100;
ADCON1 =0x06;
}

//====================================
// Main
//====================================
void main(void){
Setup();

    while(1){
        Scan();
        system_count++;

//---------- Button State 0 ----------
        if(Button_state==0){
            if(!Switch_Up||!Switch_Down){
                Button_state = 1;
                system_count = 0;
            }
        }

//---------- Button State 1 ----------
        if(Button_state==1&&system_count==10){
            if(!Switch_Up){
                if(Count<99){Count++;}
                Button_state = 2;
            }

            else if(!Switch_Down){
                if(Count){Count--;}
                Button_state = 2;
            }

            else{
                Button_state = 0;
            }
        }

//---------- Button State 2 ----------
        if(Button_state==2){
            if(Switch_Up&&Switch_Down){
                Button_state = 0;
            }
        }
    }
}


หัวข้อ: Re: เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคน
เริ่มหัวข้อโดย: kumnan ที่ กุมภาพันธ์ 06, 2012, 01:48:23 PM
ขอบคุณพี่ๆมากนะครับ ว่าเเต่ว่าตัวนี้เป็นแค่โค้ดของตัวนับใช่มั้ยครับ


หัวข้อ: Re: เครื่องนับเม็ดยาอัตโนมัติ ใครพอเขียนโปรแกรม PIC โดยใช้ภาษา C ได้ช่วยแนะนำหน่อยนะครับ ผมต้องการคน
เริ่มหัวข้อโดย: JUB ที่ กุมภาพันธ์ 06, 2012, 03:10:13 PM
Up Down Counter ครับ

http://www.youtube.com/v/FOgaaawhReQ.swf