Differences

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

Link to this comparison view

et:exercises:sensor:photoresistor:aplha [2012/04/05 09:16] – tekitatud raivo.sellet:exercises:sensor:photoresistor:aplha [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Alfabeetilise LCD koodi näide ======
  
 +<code c>
 +//
 +// Kodulabori Andurite mooduli fototakisti näidisprogramm.
 +// LCD ekraanil kuvatakse ligikaudne valgustustihedus luksides
 +//
 +#include <stdio.h> 
 +#include <math.h>
 +#include <homelab/module/lcd_alpha.h>
 +#include <homelab/adc.h>
 +#include <homelab/delay.h>
 +
 +//
 +// Põhiprogramm
 +//
 +int main(void)
 +
 + char text[16];  
 + unsigned short adc_value;
 + double voltage, resistance, illuminance;
 +
 + // LCD ekraani seadistamine
 + lcd_alpha_init(LCD_ALPHA_DISP_ON); 
 +
 + // LCD ekraani puhastamine
 + lcd_alpha_clear();
 +
 + // Programmi nimi
 + lcd_alpha_write_string("Luksmeeter");
 +
 + // ADC muunduri seadistamine
 + adc_init(ADC_REF_AVCC, ADC_PRESCALE_8); 
 +
 + // Lõputu tsükkel
 + while (true)
 + {
 + // Fototakisti keskmistatud väärtuse lugemine
 + adc_value = adc_get_average_value(1, 10);
 +
 + // Pinge arvutamine ADC sisendis
 + voltage = 5.0 * ((double)adc_value / 1024.0);
 +
 + // Fototakisti takistuse arvutamine pingejaguris
 + resistance = (10.0 * 5.0) / voltage - 10.0;
 +
 + // Valgustustiheduse luksides arvutamine
 + illuminance = 255.84 * pow(resistance, -10/9);
 +
 + // Valgustustiheduse tekstiks teisendamine
 + sprintf(text, "%0.1f lux   ", illuminance); 
 +
 + // Näidu LCD-l kuvamine
 + lcd_alpha_goto_xy(0, 1);
 + lcd_alpha_write_string(text);
 +
 + // Viide 500 ms
 + sw_delay_ms(500);
 + }
 +}
 +</code>
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