قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

mohamad mhm
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 83
نشاط [ mohamad mhm ]
قوة السمعة:0
قديم 23-10-2013, 08:59 PM المشاركة 1   
افتراضي تعديل دارة لمس Twitter FaceBook Google+



ارجو المساعدة في تعديل كود ودارة لمس
الكود
كود:
/*------------------------------------------------*/
/* Touch sensor test program R0.1a (C)ChaN, 2007  */
/* ATtiny2313 Internal osc 8MHz                   */
/*------------------------------------------------*/

#include <avr/io.h>
#include <inttypes.h>
#include <avr/pgmspace.h>
#include <avr/sleep.h>
#include <avr/interrupt.h>
#include "suart.h"
#include "xitoa.h"
#include "cs.h"

#define SYSCLK        8000000UL


/*------------------------------------------------*/
/* Global variables                               */

char line[16];        /* Console input buffer */



/*------------------------------------------------*/


static
void get_line (char *buff, int len)
{
        char c;
        int idx = 0;


        for (;;) {
                c = rcvr();
                if (c == '\r') break;
                if ((c == '\b') && idx) {
                        idx--; xputc(c);
                }
                if (((unsigned char)c >= ' ') && (idx < len - 1)) {
                                buff[idx++] = c; xputc(c);
                }
        }
        buff[idx] = 0;
        xputc(c);
        xputc('\n');
}



void get_sens (int *res, int chs)
{
        int ch, loop;

        /* Clear count accumlator */
        for (ch = 0; ch < chs; ch++) res[ch] = 0;

        /* Capture and accumlate integration time for 1/60 second */
        OCR0A = 8000000UL / 1024 / 60;
        TCNT0 = 0;
        TIFR = _BV(OCF0A);
        TCCR0B = 0b101;
        loop = 0;
        do {
                for (ch = 0; ch < chs; ch++) res[ch] += touch(ch);
                loop++;
        } while ((TIFR & _BV(OCF0A)) == 0);
        TCCR0B = 0;

        /* Mean calculation */
        for (ch = 0; ch < chs; ch++) res[ch] /= loop;
}



/*------------------------------------------------*/
/* Online Monitor                                 */

int main (void)
{
        char *cp;
        int n, c, ref[8], val[8];


        PORTB = 0b10111111;        /* Initialize I/O port */
        DDRB  = 0b01000000;
        PORTD = 0b1000000;
        DDRD =  0b0111111;
        PORTA = 0b100;
        DDRA  = 0b011;


        get_sens(ref, 8);        /* Get reference count for each channel */

        if (1) {        /* Standalone mode */
                /* Re-initialize I/O port as sens outputs */
                PORTB = 0b00000000;
                DDRB  = 0b11111111;
                for (;;) {
                        get_sens(val, 8);
                        for (c = 0; c < 8; c++) {
                                n = val[c] - ref[c];
                                if (n < 3) PORTB &= ~(1 << (7 - c));
                                if (n > 5) PORTB |= (1 << (7 - c));
                        }
                }
        }

        /* Interactive mode */
        xfunc_out = (void(*)(char))xmit;
        xputs(PSTR("\nTouch sensor test program\n"));

        for(;;) {
                xputc('>');                                                /* Prompt */
                get_line(line, sizeof(line));
                cp = line;

                switch (*cp++) {        /* Pick a header char (command) */
                        case '\0' :                /* Blank line */
                                break;

                        case 's' :                /* Read sensor */
                                xputs(PSTR(" ch0 ch1 ch2 ch3 ch4 ch5 ch6 ch7\n"));
                                do {
                                        get_sens(val,8);
                                        for (c = 0; c < 8; c++) xitoa(val[c] - ref[c], -10, 4);
                                        xputc('\r');
                                } while (bit_is_clear(PINB, 5));        /* repeart until a break detected */
                                xputc('\n');
                                break;

                        default :                /* Unknown command */
                                xputs(PSTR("\n???"));
                }
                
        }
}
والدارة
على الرابط
http://elm-chan.org/works/capsens/capsens.png

نحتاج تعديل الكود للتحكم باربع ليدات فقط وتغيير المايكرو الى pic 16f84a
او 16f628a

اعلانات

الصورة الرمزية Abdw9
Abdw9
:: عضو فضي ::
تاريخ التسجيل: Nov 2011
الدولة: السودان
المشاركات: 557
نشاط [ Abdw9 ]
قوة السمعة:77
قديم 24-10-2013, 10:58 AM المشاركة 2   
افتراضي


السلام عليكم
اخي الرابط ليسة به دائرة
الرجاء رفعه هنا http://arabsh.com/
ثم عدل الرابط

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

mohamad mhm
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 83
نشاط [ mohamad mhm ]
قوة السمعة:0
قديم 24-10-2013, 12:10 PM المشاركة 3   
افتراضي


السلام عليكم
اخي الرابط ليسة به دائرة
الرجاء رفعه هنا http://arabsh.com/
ثم عدل الرابط
سلمت يداك اخي الكريم
تفضل


الصورة الرمزية Abdw9
Abdw9
:: عضو فضي ::
تاريخ التسجيل: Nov 2011
الدولة: السودان
المشاركات: 557
نشاط [ Abdw9 ]
قوة السمعة:77
قديم 24-10-2013, 02:20 PM المشاركة 4   
افتراضي


بس اخي هناك غموض بالدائرة
DET1 --- DET8 هل هذه حساسات
اذا كانت كذلك هل هي رقمية ام تماثلية
فاذا كانت رقمية فالامر اهون واما اذا كانت تماثبة فهو يحتاج الى مجهود للتعامل مع البيك رغم اني لازلت لا افهم الكود باية لغة كتبت وهو المهم


mohamad mhm
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 83
نشاط [ mohamad mhm ]
قوة السمعة:0
قديم 24-10-2013, 02:27 PM المشاركة 5   
افتراضي


تسلم اخي الدارة اعتقد انها لغة مايكرو سي عندما نزلت الكود فتح عن طريق برنامج مايكرو سي لدي ..
وبالنسبة للحساسات هذه ليست سوى لوح من النحاس على لوح مطبوع
هذا الموقع الرسمي
http://elm-chan.org/works/capsens/report_e.html


حسين البغدادي
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2013
الدولة: Baghdad
المشاركات: 61
نشاط [ حسين البغدادي ]
قوة السمعة:0
قديم 24-10-2013, 02:42 PM المشاركة 6   
افتراضي


بسم الله الرحمن الرحيم ...
اخي العزيز هذا المفاتيح تعمل كمفاتيح رقميه لان هذا النوع من المايكرو كنترول لايتعامل مع القيم التماثليه ... تاكد من ان المفتاح يعطي 5 فولت عند الضغط عليه ويعطي صفر فولت عند عدم الضغط او العكس ....
اما بالنسبه للبرنامج فهو ابسط من هذا بكثير ولا يحتاج الى كل هذا التعقيد ,,, وأذا اردت اعطيك كود البرنامج بلغه micro c وبخطوات بسيطه ومفهومه ... المهم اولا التاكد من عمل المفتاح اما البرنامج فهو بسيط


mohamad mhm
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 83
نشاط [ mohamad mhm ]
قوة السمعة:0
قديم 24-10-2013, 02:52 PM المشاركة 7   
افتراضي


شكرا لك اخ حسن لكن البرنامج بهذا التعقيد لانه يتعامل مع حساسية عالية باليد
انا نفذت الدارة بعدة طريق وبقطع اخرى لكن لم تأت بحساسية عالية
مثال نفذت دارة بسيطة
وعند لمس السطح المعندني يعمل الليد لكن يجب ان تكون يدك مبتله قليلا ودارة اخرى تستجيب لاصبعي ولا تستجيب لاصبع عامل البناء نظرا لان اصابعه خشنة ودارة اخرى تستجيب في عوامل محددة مللت صراحة من هذه المشاكل واعجبتني هذه الدارة ويوجد فيديو مرفق بنهاية الموقع
فارجو منك مساعدتي


mohamad mhm
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 83
نشاط [ mohamad mhm ]
قوة السمعة:0
قديم 24-10-2013, 02:58 PM المشاركة 8   
افتراضي


بسم الله الرحمن الرحيم ...
اخي العزيز هذا المفاتيح تعمل كمفاتيح رقميه لان هذا النوع من المايكرو كنترول لايتعامل مع القيم التماثليه ... تاكد من ان المفتاح يعطي 5 فولت عند الضغط عليه ويعطي صفر فولت عند عدم الضغط او العكس ....
اما بالنسبه للبرنامج فهو ابسط من هذا بكثير ولا يحتاج الى كل هذا التعقيد ,,, وأذا اردت اعطيك كود البرنامج بلغه micro c وبخطوات بسيطه ومفهومه ... المهم اولا التاكد من عمل المفتاح اما البرنامج فهو بسيط
http://youtu.be/x2TKm2KqctE
رفعت الفيديو على يوتيوب

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 08:04 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025