اطلاعیه

Collapse
No announcement yet.

نمایش فرکانس با ورودی میکروفن

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

    نمایش فرکانس با ورودی میکروفن

    سلام
    من می خوام یه برنامه بنویسم که به ورودیش یه میکروفن ببندم (خازنی چه مدلی باشه بهتره) که وقتی صدارو دریافت کرد فرکانس صدارو نمایش بده .
    اگه بشه تا چند صد مگا هرتز بره خوبه. :biggrin:
    یه برنامه هست که فقط میکروفن به میکرو میبندیم ولی چون C هست چیزی نمیفهمم کسی میتونه بی زحمت اینو به زبان بیسیک تبدیل کنه و برام بذاره. :read:
    کد:
    #include <inttypes.h>
    #include <avr/io.h>
    #include <util/delay.h>
    
    #define LED_BIT PD4
    
    /*
     * get_adc
     * Return the 10bit value of the selected adc channel.
     */
    uint16_t get_adc() {
    
    	uint16_t value;
    
    	// warm up the ADC, discard the first conversion
    	ADCSRA |= (1 << ADSC);
    	while (ADCSRA & (1 << ADSC)); 
    	value = ADCW;
    	
    	ADCSRA |= (1 << ADSC);				// start single conversion
    	while (ADCSRA & (1 << ADSC)); 		// wait until conversion is done
    
    	return ADCW;
    }
    
    int main(void) {
    
    	uint8_t i = 0;
    	
    	DDRD |= 0x1c;	// PD2-PD3: col 6-7, PD4: debug LED
    
    	// select channel
    	ADMUX = 5;
    
    	// ADC setup
    	ADCSRA = 
    		(1 << ADEN) |						// enable ADC
    		(1 << ADPS1) | (1 << ADPS0);		// set prescaler to 8	
    			
    	// say hello	
    	for (i = 0; i < 5; i++) {
    		PORTD |= (1 << LED_BIT);
    		_delay_ms(10);
    		_delay_ms(10);
    		_delay_ms(10);
    		_delay_ms(10);
    		_delay_ms(10);
    		PORTD &= ~(1 << LED_BIT);
    		_delay_ms(10);
    		_delay_ms(10);
    		_delay_ms(10);
    		_delay_ms(10);
    		_delay_ms(10);
    	}
    	_delay_ms(10);
    	_delay_ms(10);
    
    
    	while (1) {
    		
    		if (get_adc() > 180) {
    			PORTD |= (1 << LED_BIT);
    			_delay_ms(10);
    			PORTD &= ~(1 << LED_BIT);
    		}			
    		
    	}
    
    	return 0;
    
    }

    رفيقان قدر يكديگر بدانيد چو معلوم است شرح از بر مخوانيد

    مقالات نصيحت گو همين است كه سنگ انداز هجران در كمين است

    #2
    پاسخ : نمایش فرکانس با ورودی میکروفن

    یعنی کسی نیست به این بنده کمکی کنه :sad: :read:

    رفيقان قدر يكديگر بدانيد چو معلوم است شرح از بر مخوانيد

    مقالات نصيحت گو همين است كه سنگ انداز هجران در كمين است

    دیدگاه


      #3
      پاسخ : نمایش فرکانس با ورودی میکروفن

      من زبان سی بلد نیستم ولی اگه سوالی در هر جایش داری بفرما تا راهنمایی کنیم :nerd:
      آموزش PIC

      دیدگاه


        #4
        پاسخ : نمایش فرکانس با ورودی میکروفن

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

        دیدگاه


          #5
          پاسخ : نمایش فرکانس با ورودی میکروفن

          من فقط می خوام این برنامه به زبان C یکی برام به بیسیک بنویسه همین :read:

          رفيقان قدر يكديگر بدانيد چو معلوم است شرح از بر مخوانيد

          مقالات نصيحت گو همين است كه سنگ انداز هجران در كمين است

          دیدگاه

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