#include "mraa.h" #include #include /* * Programa que faz a leitura de um sensor LDR utilizando-se a porta analogica A0, e imprime o resultado na linha da saida. * * */ int main() { mraa_pwm_context pino_atuador = NULL; mraa_platform_t platform = mraa_get_platform_type(); //Cria uma variavel que representa uma porta analogica mraa_aio_context analog_pin = NULL; switch (platform) { case MRAA_INTEL_GALILEO_GEN2: //onde 0 é referente a porta Analógica alocada analog_pin = mraa_aio_init(0); pino_atuador = mraa_pwm_init(5); mraa_pwm_enable(pino_atuador, 1); break ; default: fprintf(stderr, "Unsupported platform, exiting"); return MRAA_ERROR_INVALID_PLATFORM; } //Imprime uma mensagem de erro caso a inicializacao nao tenha acontecido if(analog_pin == NULL){ fprintf(stderr, "MRAA couldn't initialize AIO, exiting"); return MRAA_ERROR_UNSPECIFIED; } // loop forever toggling the on board LED every second for (;;) { //Le os dados do sensor atraves da porta analogica instanciada float sensor_value = mraa_aio_read(analog_pin); // Imprime od valores do sensor na tela. OBS: Os valores impressão sao a representacao digital do valor analogico amostrado. Caso o usuario queira o resultado em lumens, e necessario efetuar a conversao. //fprintf(stderr,"Sensor value: %f\n",sensor_value); float rate = 0.1f; //fprintf(stderr,"Atuador value: %f\n",rate); //escreve o valor analogico referente a 10% do valor maximo permitido, na porta do atuador mraa_pwm_write(pino_atuador,rate); sleep(1); sensor_value = mraa_aio_read(analog_pin); rate = 0.5f;//50% fprintf(stderr,"Atuador value: %f\n",rate); mraa_pwm_write(pino_atuador,rate); fprintf(stderr,"Sensor value: %f\n",sensor_value); sleep(1); sensor_value = mraa_aio_read(analog_pin); rate = 1.0f;//50% fprintf(stderr,"Atuador value: %f\n",rate); mraa_pwm_write(pino_atuador,rate); fprintf(stderr,"Sensor value: %f\n",sensor_value); sleep(1); } return MRAA_SUCCESS; }