Table of Contents

Mikrofon

Teooria

Mikrofon

Praktika

// Kodulabori mikrofoni näidisprogramm
// LCD ekraanil kuvatakse helitugevuse graafik ja teatud helitugevusest süüdatakse LED
#include <stdio.h>
#include <homelab/adc.h>
#include <homelab/delay.h>
#include <homelab/module/sensors.h>
#include <homelab/module/lcd_gfx.h>
 
#define ADC_CHANNEL 12
 
// Põhiprogramm
int main(void)
{
	signed short mic;
	BYTE n;	
 
	// LCD ekraani seadistamine
	lcd_gfx_init();
 
	// ADC muunduri seadistamine
	adc_init(ADC_REF_AVCC, ADC_PRESCALE_8);
 
	// LED-i viigu väljundiks seadmine
	pin_setup_output(led_yellow);
	pin_set(led_yellow);	
 
	// Ekraani päise joonistamine
	FgColor = BLUE;
	BkColor = YELLOW;	
	lcd_gfx_fillScreen(YELLOW);
	lcd_gfx_goto_char_xy(6,1);
	lcd_gfx_write_string("Mikrofon");
	lcd_gfx_drawLine(0,40,128,40,BLUE);	
	FgColor = RED;
 
	// Lõputu tsükkel
	while (1)
	{	
		// Graafiku ala kustutamine			
		lcd_gfx_fillRect(0, 41, 128, 119, WHITE); 		
 
		// Graafiku joonistamine. Ekraani laius on 128 pikslit.		
		for (n = 0; n <= 128; n++)
		{	
			// Mikrofoni ADC kanali lugemine ja väärtuse sobivasse vahemikku teisendamine		
			mic = map(adc_get_value(ADC_CHANNEL), 0, 2047, 0, 120);
 
			// Punkti graafikule kandmine
			lcd_gfx_drawPixel(n, 160 - mic + 2);
 
			// LED-i süütamine, kui helitugevus ületab teatud väärtust
			if(mic > 30)
			{
				pin_toggle(led_yellow);
			} 
		}		
 
	}
}
et/examples/sensor/mic.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0