// // 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); } }