Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
et:examples:sensor:mic [2015/11/25 08:38] – tekitatud raivo.sellet:examples:sensor:mic [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Mikrofon ====== ====== Mikrofon ======
  
 +//Vajalikud teadmised: 
 +[HW] [[et:hardware:homelab:digi]],
 +[AVR] [[et:avr:dac]], [[et:avr:adc]]
 +[LIB] [[et:software:homelab:library:adc]], [LIB] [[et:software:homelab:library:module:lcd_graphic]], 
 +[LIB] [[et:software:homelab:library:module:sensor]]//
 +
 +===== Teooria =====
 +[{{ :et:examples:sensor:mic.jpg?150|Mikrofon}}]
 +
 +===== Praktika =====
 +
 +
 +<code c>
 +// 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);
 +
 + }
 +
 + }
 +}
 +
 +</code>
et/examples/sensor/mic.1448440723.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
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