اطلاعیه

Collapse
No announcement yet.

تاچ خازنی Capacitive Touch

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #91
    پاسخ : تاچ خازنی Capacitive Touch

    در ضمن همون برنامه ای که شما می گید و 5 بار یا بیشتر نوشتنی این اتفاق می افته که خروجی ها بین صفر و یک نوسان می کنن.برای راه حل چه پیشنهادی دارید؟

    دیدگاه


      #92
      پاسخ : تاچ خازنی Capacitive Touch

      نوشته اصلی توسط Hessamaghajamal
      فرمایش شما صحیحه ولی من وقتی چندتا کلید و وصل می کنم تو خروجی نوسان دارم.ینی پین خروجی ام یک می شه و بعد صفر می شه.ثابت نمی مونه.اما واسه یه کلید این مشکل و ندارم.در ضمن من چند بار این تاپیک و مطالعه کردم.
      مشکلم حل نشد.
      من متوجه نوسان نمیشم
      یعنی چی 1 میشه بعد صفر میشه؟!
      وقتی ورودی 1 بشه و یک بمونه نمیشه که خروجی 0 بشه
      خازنه ، با یک شدن ورودی شروع به شارژ میکنه و وقتی شارژ شد تا زمانی ورودی 1 باشه نمیتونه 0 شه
      مگر خازن نشتی داشته باشه که اونم بعیده
      مشکل کار شما چیز دیگه ای هست
      نمیدونم کد شماتیک یا هر چیزی دارید بذارید ببینیم داشتان چییه
      سوالات رو هم همینجا مطرح کنید ، وقتی باشه جواب میدیم ، نیازی به ارسال ایمیل نیست
      این پست برای من همیشه میاد تو لیست تازه ها و در اولین زمان جواب خواهم داد
      درایور شبکه و nRF24L01
      کاتالوگ محصولات
      کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
      شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
      فروش اسيلوسکوپ GWinstek GOS-630FC

      دیدگاه


        #93
        پاسخ : تاچ خازنی Capacitive Touch

        کد اینه برای چهار تا کلید.از پین صفر پورت بی ارسال می کنم از چهار تا پین بعدی می خونم.

        دیدگاه


          #94
          پاسخ : تاچ خازنی Capacitive Touch

          نوشته اصلی توسط Hessamaghajamal
          کد اینه برای چهار تا کلید.از پین صفر پورت بی ارسال می کنم از چهار تا پین بعدی می
          خب مشخصه دیگه
          من پورت رو مقدار به روش شما نمیدم
          اگه دقت کنی با اند و اور کردن صفرو یک میکنم که بقیه مقدارا تغییر نکنه
          درایور شبکه و nRF24L01
          کاتالوگ محصولات
          کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
          شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
          فروش اسيلوسکوپ GWinstek GOS-630FC

          دیدگاه


            #95
            پاسخ : تاچ خازنی Capacitive Touch

            سلام
            مهندسای محترم میشه یه کمکی به من کنید
            نوشتن برنامه برای 2تا کلید تاچ به این شکل غلطه آیا؟
            کد:
            #include <mega8.h>
            
            #include <delay.h>
            
            #define Touch1 PINB.0
            #define Touch2 PIND.7
            
            volatile int i = 0;
            volatile int j = 0;
            unsigned int Time1=0;
            unsigned int Time2=0;
            
            interrupt [TIM0_OVF] void timer0_ovf_isr(void)
            {
            TCNT0 = 0;
              i++;
              j++;
            }
            
            void main(void)
            {
            
            PORTB=0x00;
            DDRB=0x02;
            
            PORTC=0x00;
            DDRC=0x01;
            
            PORTD=0x00;
            DDRD=0x00;
            
            TCCR0=0x00;
            TCNT0=0x00;
            
            TCCR1A=0x00;
            TCCR1B=0x00;
            TCNT1H=0x00;
            TCNT1L=0x00;
            ICR1H=0x00;
            ICR1L=0x00;
            OCR1AH=0x00;
            OCR1AL=0x00;
            OCR1BH=0x00;
            OCR1BL=0x00;
            
            ASSR=0x00;
            TCCR2=0x00;
            TCNT2=0x00;
            OCR2=0x00;
            
            MCUCR=0x00;
            
            TIMSK=0x01;
            
            UCSRB=0x00;
            
            ACSR=0x80;
            SFIOR=0x00;
            
            ADCSRA=0x00;
            
            SPCR=0x00;
            
            TWCR=0x00;
            
            #asm("sei")
            
            DDRD.0 = 0;
            
            while (1)
               {  j=0;
                  i=0;
                 PORTB = 0x02;
                 TCNT0 = 0;
                 TCCR0=0x01;
                 while(!Touch1);
                 TCCR0=0x00;
                 Time1 = i*255 + TCNT0;
                 Touch1 =0 ;  
                 if (( Time1 > 320 )))
                 {
                  delay_ms(10);
                 PORTC.0 = !PORTC.0;
                
                 delay_ms(10);
                 } 
                  while(!Touch2);
                 TCCR0=0x00;
                 Time2 = j*255 + TCNT0;
                 Touch2 =0 ;  
                 if (( Time2 > 320 ) ))
                 {
                  delay_ms(10);
                 PORTC.1 = !PORTC.1;
                 
                 delay_ms(10);
                 }     
               }
            while دومی اجرا نمی شه یعنی کلیدش کار نمی کنه

            دیدگاه


              #96
              پاسخ : تاچ خازنی Capacitive Touch

              نوشته اصلی توسط chakavak_1989
              سلام
              مهندسای محترم میشه یه کمکی به من کنید
              نوشتن برنامه برای 2تا کلید تاچ به این شکل غلطه آیا؟
              while دومی اجرا نمی شه یعنی کلیدش کار نمی کنه
              سلام
              خب وقتی کار نمیکنه یعنی غلطه آیا
              ولی من توی پست 63 گذاشتم کدشو چرا از اون استفاده نمیکنید؟؟!!
              بعد باید شما کد و سخت افزارتونو دیباگ کنید خط به خط برنامه رو اجرا کنید ببینید اشکال کار کجاس
              درایور شبکه و nRF24L01
              کاتالوگ محصولات
              کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
              شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
              فروش اسيلوسکوپ GWinstek GOS-630FC

              دیدگاه


                #97
                پاسخ : تاچ خازنی Capacitive Touch

                نوشته اصلی توسط بسطام بیرامی
                سلام
                خب وقتی کار نمیکنه یعنی غلطه آیا
                ولی من توی پست 63 گذاشتم کدشو چرا از اون استفاده نمیکنید؟؟!!
                بعد باید شما کد و سخت افزارتونو دیباگ کنید خط به خط برنامه رو اجرا کنید ببینید اشکال کار کجاس
                سلام
                من از همون کدی که شما گذاشتین استفاده کردم
                شما گفته بودین برای 2تا کلید باید همین کد رو تکرار کنید
                می خوام بدونم واسه 2تا کلید درست نوشتم یا نه؟
                بعد اینکه میگید
                بعد باید شما کد و سخت افزارتونو دیباگ کنید
                یعنی چی دقیقا؟؟؟ :biggrin:

                دیدگاه


                  #98
                  پاسخ : تاچ خازنی Capacitive Touch

                  نوشته اصلی توسط chakavak_1989
                  سلام
                  من از همون کدی که شما گذاشتین استفاده کردم
                  شما گفته بودین برای 2تا کلید باید همین کد رو تکرار کنید
                  می خوام بدونم واسه 2تا کلید درست نوشتم یا نه؟
                  بعد اینکه میگید
                  بعد باید شما کد و سخت افزارتونو دیباگ کنید
                  یعنی چی دقیقا؟؟؟ :biggrin:
                  خب ببینید شما برنامه ای مینویسید کار نمیکنه
                  دلیل نیس همش میکل داشته باشه ممکنه یه متغییر بعد تعریف کرده باشید تا مثلا باید مقدارشو 0 میکردید نکردید
                  باید کدتون رو با دیباگر خط به خط اجرا کنید و مقدار متغییر ها رو ببینید و با چیزی که باید باشه مقایسه کنید تا متوجه شید کجا اشتباه کردید
                  برای سخت افزار هم که میشه با اسیلوسکوپ و ... مقدار ولتاژ و تغییر سیگنال رو مشاهده کنید ببینید اشکال کجاست
                  ببینید کد برای مثلا 3 تا اینطوری میشه :
                  [code=c]while (1)
                  {
                  // Place your code here

                  PORTB |= 0x02;
                  TCCR0=0x01;
                  while ( !Touch1 )
                  {
                  if ( PINB.2 && !Touch1)
                  {
                  Time1 = TCNT0 + i*255;
                  //Time1 += i*255;
                  //TCNT0 = 0;
                  Touch1 = 1;
                  }
                  }
                  PORTB &= 0xFD;
                  TCCR0 =0x00;
                  i = 0;
                  TCNT0 = 0x00;
                  if ( Time5 > 300 ) PORTC |= 0x02; else PORTC &= 0xFD;
                  Touch1 =0;
                  delay_us(450);

                  PORTB |= 0x02;
                  TCCR0=0x01;
                  while ( !Touch2 )
                  {
                  if ( PINB.3 && !Touch2)
                  {
                  Time2 = TCNT0 + i*255;
                  //Time2 += i*255;
                  //Time2 -= 8;
                  //TCNT0 = 0;
                  Touch2 = 1;
                  }
                  }
                  PORTB &= 0xFD;
                  TCCR0 =0x00;
                  i = 0;
                  TCNT0 = 0x00;
                  if ( Time4 > 300 ) PORTC |= 0x04; else PORTC &= 0xFB;
                  Touch2 =0;
                  delay_us(450);

                  PORTB |= 0x02;
                  TCCR0=0x01;
                  while ( !Touch3 )
                  {
                  if ( PINB.4 && !Touch3)
                  {
                  Time3 = TCNT0 + i*255;
                  //Time3 += i*255;
                  //Time3 -= 17;
                  //TCNT0 = 0;
                  Touch3 = 1;
                  }
                  }
                  PORTB &= 0xFD;
                  TCCR0 =0x00;
                  i = 0;
                  TCNT0 = 0x00;
                  if ( Time3 > 300 ) PORTC |= 0x08; else PORTC &= 0xF7;
                  Touch3 =0;
                  delay_us(450);[/code]
                  درایور شبکه و nRF24L01
                  کاتالوگ محصولات
                  کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                  شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                  فروش اسيلوسکوپ GWinstek GOS-630FC

                  دیدگاه


                    #99
                    پاسخ : تاچ خازنی Capacitive Touch

                    ممنون مهندس
                    چیزهایی که گفتین خیلی مفید بود :agree:
                    یه سوال دیگه
                    شیوه برنامه نویسیتون یه خرده فرق داره با c معمولی مثلا:
                    کد:
                        PORTB |= 0x02;
                    یا
                    کد:
                        
                          if ( PINB.2 && !Touch1)
                    این برنامه نویسی رو از کجا میشه یادگرفت؟

                    دیدگاه


                      پاسخ : تاچ خازنی Capacitive Touch

                      نوشته اصلی توسط chakavak_1989
                      ممنون مهندس
                      چیزهایی که گفتین خیلی مفید بود :agree:
                      یه سوال دیگه
                      شیوه برنامه نویسیتون یه خرده فرق داره با c معمولی مثلا:
                      کد:
                          PORTB |= 0x02;
                      یا
                      کد:
                          
                            if ( PINB.2 && !Touch1)
                      این برنامه نویسی رو از کجا میشه یادگرفت؟
                      والا اینم همون C معمولیه
                      این |= یعنی پورت P رو با مقدار 02 هگز Or کن و بریز توی خود PortB فایدش اینه که اطلاعات قبلی پورت بی تغییر نمیکنه و فقط یک بیت مورد نظر ما یک میشه
                      خط بعدی هم همینطور اگر مقدار PIBB.2 اندش با Not متغییر Touch1 برابر باشه مقدار داخل if برابر 1 میشه و وارد if میشه
                      اینا پیزای ابنداییه برنامه نویسی C هستن
                      درایور شبکه و nRF24L01
                      کاتالوگ محصولات
                      کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                      شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                      فروش اسيلوسکوپ GWinstek GOS-630FC

                      دیدگاه


                        پاسخ : تاچ خازنی Capacitive Touch

                        نوشته اصلی توسط بسطام بیرامی
                        والا اینم همون C معمولیه
                        این |= یعنی پورت P رو با مقدار 02 هگز Or کن و بریز توی خود PortB فایدش اینه که اطلاعات قبلی پورت بی تغییر نمیکنه و فقط یک بیت مورد نظر ما یک میشه
                        خط بعدی هم همینطور اگر مقدار PIBB.2 اندش با Not متغییر Touch1 برابر باشه مقدار داخل if برابر 1 میشه و وارد if میشه
                        اینا پیزای ابنداییه برنامه نویسی C هستن
                        خیلی ممنون دست شما درد نکنه :smile:
                        ولی این جمله آخرتون لهن کنایه آمیز داشتا

                        دیدگاه


                          پاسخ : تاچ خازنی Capacitive Touch

                          نوشته اصلی توسط chakavak_1989
                          خیلی ممنون دست شما درد نکنه :smile:
                          ولی این جمله آخرتون لحن کنایه آمیز داشتا
                          خواهش میکنم
                          نه بابا من خودمم برنامه نویس نیستم و بیشتر کارم طراحی سحت افزار آنالوگ و دیجیتاله
                          اینا رو توی آموزش AVR که دوست عزیز آقای سپاسیار زحمتشو کشیدن هست
                          حتما اگر مطالعه نکردید بخونید برای کار بسیار نیاز می شوند
                          درایور شبکه و nRF24L01
                          کاتالوگ محصولات
                          کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                          شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                          فروش اسيلوسکوپ GWinstek GOS-630FC

                          دیدگاه


                            پاسخ : تاچ خازنی Capacitive Touch

                            نوشته اصلی توسط بسطام بیرامی
                            خواهش میکنم
                            نه بابا من خودمم برنامه نویس نیستم و بیشتر کارم طراحی سحت افزار آنالوگ و دیجیتاله
                            اینا رو توی آموزش AVR که دوست عزیز آقای سپاسیار زحمتشو کشیدن هست
                            حتما اگر مطالعه نکردید بخونید برای کار بسیار نیاز می شوند
                            حتما مهندس :nerd:
                            ممنون

                            دیدگاه


                              پاسخ : تاچ خازنی Capacitive Touch

                              آقا چه جوریمیشه کد بسکامی که نوشتیم روتو قسمت پاسخ ها بذاریم آیا؟؟

                              دیدگاه


                                پاسخ : تاچ خازنی Capacitive Touch

                                نوشته اصلی توسط sajad1373
                                آقا چه جوریمیشه کد بسکامی که نوشتیم روتو قسمت پاسخ ها بذاریم آیا؟؟
                                همینجایی که متن رو مینویسی
                                یه جا داره که B بعد I بعد U نوشته تو نواری که چپ چین وسط چین تن رو میتونی انتخاب کنی
                                بعد نوار انتخاب فونت و انتخاب سایز و رنگ هست
                                جلوی اونا نوشته کد
                                از نوار داخل کد مثلا C یا QBasic رو انتخاب کن و کدی که نوشتی رو بین


                                code=qbasic]
                                کد رو اینجا Past کن
                                [/code
                                درایور شبکه و nRF24L01
                                کاتالوگ محصولات
                                کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
                                شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
                                فروش اسيلوسکوپ GWinstek GOS-630FC

                                دیدگاه

                                لطفا صبر کنید...
                                X