• Nenhum resultado encontrado

Conclusão sobre o Controlador Paraconsistente

Nota-se que o ponto em destaque vermelho marca o início do teste, e este ponto desloca-se em direção ao estado lógico Verdadeiro, que representa o valor do Set Point. Nota-se também que durante todo o processo, os pontos que representam os graus de certeza e de contradição se mantiveram bem próximos da linha certeza, indicando alto grau de certeza nas medidas de temperatura.

3 CONCLUSÃO

O objetivo desse trabalho foi implementar a Lógica Paraconsistente em microcontroladores, através do Algoritmo Para-Analisador, e assim poder tratar de indeterminações e sinais contraditórios, muito comum nos controles utilizados atualmente, que trabalham com a lógica clássica.

Foi comprovado que a Lógica Paraconsistente pode ser implementada em microcontroladores, e desta forma pode ser aplicada em sistemas de controle e automação. Os resultados obtidos comprovam que grandezas elétricas, como tensões, podem ser tratadas como graus de crença (ou evidência favorável) e de descrença (ou evidência desfavorável) para a obtenção de resultados mais próximos do real, e assim obter dados mais consistentes.

O controle paraconsistente se mostra como uma poderosa ferramenta a ser utilizada em controle, pois demonstrou que além de controlar as variáveis de processo, também demonstra seus níveis de certeza e de contradição, garantindo uma maior credibilidade nos resultados obtidos.

Por fim, esse trabalho comprova que a Lógica Paraconsistente Anotada com Anotação de 2 valores pode ser de implementada em uma grande variedade de microcontroladores, pois seus requisitos mínimos estão presentes em diversos modelos de diversos fabricantes de microcontroladores.

REFERÊNCIAS

ABE, Jair Minoro. Fundamentos da Lógica Anotada. 1992. 98 f. Dissertação (Mestrado em Filosofia) - Faculdade de Filosofia, Letras e Ciências Humanas, Universidade de São Paulo, São Paulo.

BERTO, Marciel Francisco. Aplicação da Lógica Paraconstistente Evidencial Et no controle de sensores de temperatura na atuação de robôs móveis. 2007. 154 f. Dissertação (Mestrado em Engenharia de Produção) - Universidade Paulista (UNIP), São Paulo.

CONTROL CHIP ENGENHARIA. Módulo display lcd. [S.d.] Disponível em: http://www.controlchip.com.br/produtos_d.asp?id=51&busca=produtos_kits_8051 Acesso em 27 mai. 2016.

FERNANDES, Cláudio Luís Magalhães. Lógica Paraconsistente Aplicada em Sistemas de Automação e Controle. 2012. 109 f. Dissertação (Mestrado em Engenharia Mecânica) – Universidade Santa Cecília, Santos.

HIKARI. Ferro de solda. 2015. Disponível em:

http://www.hikariferramentas.com.br/ferro-de-soldar/218/104/ Acesso em: 27 mai. 2016.

LOPES, Helder Frederico da Silva. Aplicação de Redes Neurais Artificais Paraconsistentes como Método de Auxílio no Diagnóstico da Doença de Alzheimer. 2009. 73 f. Dissertação (Mestrado em Ciências) – Faculdade de Medicina, Universidade de São Paulo, São Paulo.

MICROCHIP TECHNOLOGY INC. PIC18FXX2 data sheet. 2006. Disponível em: http://ww1.microchip.com/downloads/en/DeviceDoc/39564c.pdf Acesso em: 27 mai. 2016.

MIYADAIRA, Alberto Noboru. Microcontrolador PIC18 – Aprenda e Programe em Linguagem C. 4. ed. São Paulo: Érica, 2013. 400 p.

NCTEC. Placa eletrônica clp flexis II. Disponível em: http://www.nctec.ind.br/loja/images/flexisgde.jpg 2016. Acesso em: 27 mai. 2016 PAIXÃO, Renato Rodrigues; JUNIOR, José Carlos de Souza. Controlador Digital de Sinais – Família 56F800/E – Baseado no MC56F8013. 1. ed. São Paulo: Érica, 2005. 348 p.

SILVA FILHO, João Inácio da. Conheça o Robô Emmy: O Primeiro Robô que Funciona com Lógica Paraconsistente. Paralogike. [S.d.] Disponível em: < http://paralogike.com.br/site/links/ver/29 >. Acesso em 27 mai. 2016.

SILVA FILHO, João Inácio da; ABE, Jair Minoro. Fundamentos das Redes Neurais Paraconsistentes – Destacando Aplicações em Neurocomputação (in portuguese). Arte e Ciência, ISBN 85-7473-045-9, 247 p. 2001.

SILVA FILHO, João Inácio da; ABE, Jair Minoro. Introdução à lógica paraconsistente anotada com ilustrações. 1ª. ed. Santos: Editora Emmy, 2000. 150 p.

SILVA FILHO, João Inácio da. Introdução ao conceito de estado Lógico Paraconsistente ετ. Artigo Técnico, Revista Seleção Documental, n.17, ISSN 1809- 0648 – Ed. Paralogike – Santos – SP – Brasil, 2010 pp 20-24.

SILVA FILHO, João Inácio da. Métodos de Aplicações da Lógica Paraconsistente Anotada de Anotação com 2 valores – LPA2v com Construção de Algoritmo e Implementação de Circuitos Eletrônicos. 1999. 237 f. Tese (Doutorado em Engenharia Elétrica) – Escola Politécnica de Engenharia da Universidade de São Paulo, São Paulo.

SOUZA, David José de. Desbravando o PIC – Baseado no Microcontrolador PIC16F84. 2. ed. São Paulo: Érica, 2000. 200 p.

VIDA DE SILICIO. Sensor de temperatura lm35. [S.d.] Disponível em: http://blog.vidadesilicio.com.br/wp-content/uploads/2015/06/LM35.jpg Acesso em: 27 mai. 2016.

APÊNDICE A – Programação do Controlador Paraconsistente Utilizada para Teste

/* CONTROLADOR PARACONSISTETNE FACULDADE SENAI DE TECNOLOGIA MECATRÔNICA PÓS GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL

AUTOR: RICARDO MARTINEZ VICENTINI */

#include <p18f452.h> //Microcontrolador utilizado #include <adc.h> //Biblioteca de conversor AD #include <delays.h> //Biblioteca de delays #include <stdlib.h> //Biblioteca de miscelâneas #include <stdio.h> //Biblioteca de entradas e saídas #include <string.h> //Biblioteca de strings

#include "C:\PIC18\biblioteca_lcd_uext_2x16.h" //Biblioteca LCD CLP FLEXIS

#pragma config OSC = XT //Oscilador tipo XT

#pragma config PWRT = OFF //Power-up Timer Desabilitado #pragma config BOR = OFF //Brown-out Reset Desabilitado #pragma config WDT = OFF //Watchdog Timer Desabilitado #pragma config LVP = OFF //Low Voltage ICSP Desabilitado

//DECLARAÇÃO DAS VARIÁVEIS

int u1; //Grau de Crença - Evidência Favorável int u2; //Grau de Descrença - Evidência Desfavorável int u1a; // grau de crença instantâneo

int u2a; // grau de descrença instantâneo

int vscc = 512; //Vscc - Valor Superior de Controle da Certeza 512 int vicc = -512; //Vicc - Valor Inferior de Controle da Certeza -512 int vscct = 512; //Vscct - Valor Superior de Controle da Contradição 512 int vicct = -512; //Vicct - Valor Inferior de Controle da Contradição -512 float gc; // Grau de Certeza

float gct; //Grau de Contradição float modulo_gc; //Módulo do grau de certeza float modulo_gct; //Módulo do grau de contradição unsigned char buffer[5]; //Buffer para o LCD

void main( ) //Função principal - Início do Programa {

TRISA = 0b11111111; //PORTA = Entrada TRISEbits.TRISE1 = 0; //PORTE,1 = saída (Buzzer)

PORTA = 0; //Limpa os Port's PORTB = 0;

PORTC = 0; PORTD = 0; PORTE = 0;

OpenADC(ADC_FOSC_4& //Fosc = 4 (para 4 MHz)

ADC_RIGHT_JUST& //Alinhamento justificado a direita

ADC_3ANA_0REF, //3 Canais analógicos, referência de tensão VCC E VSS ADC_INT_OFF); //Interrupção desligada

PORTEbits.RE1 = 1; //Bip de início Delay10KTCYx(30); //

PORTEbits.RE1 = 0; //

lcd_inicia(0x28, 0x0f, 0x06); //Inicia LCD 2x16 lcd_LD_cursor(0); //Desliga cursor

lcd_limpa_tela ( );

lcd_posicao(1,1); imprime_string_lcd("FACULDADE SENAI "); lcd_posicao(2,1); imprime_string_lcd("TCL. MECATRONICA"); Delay10KTCYx(500);

lcd_posicao(1,1); imprime_string_lcd(" POS GRADUACAO "); lcd_posicao(2,1); imprime_string_lcd("AUT. INDUSTRIAL "); Delay10KTCYx(200);

lcd_posicao(1,1); imprime_string_lcd(" CONTROLADOR "); lcd_posicao(2,1); imprime_string_lcd("PARACONSISTENTE "); Delay10KTCYx(200);

lcd_posicao(1,1); imprime_string_lcd("RICARDO MARTINEZ"); lcd_posicao(2,1); imprime_string_lcd(" VICENTINI "); Delay10KTCYx(200);

lcd_limpa_tela ( );

while(1)//loop infinito {//inicio do bloco while

//Leitura CH0

SetChanADC(ADC_CH0); //Seleciona o canal AN0 para leitura ConvertADC(); //Lê o canal

while(BusyADC()); //Aguarda o fim da conversão

u1a=ReadADC(); //Transfere o valor lido para a variável u1a

//Leitura CH1

SetChanADC(ADC_CH1); //Seleciona o canal AN1 para leitura ConvertADC(); //Lê o canal

while(BusyADC()); //Aguarda o fim da conversão

u2a=ReadADC(); //Transfere o valor lido para a variável u2a

//Padronizando valores medidos em valores de 0 a 1023

u1=u1a; //Transfere o valor de u1a para u1 u2=u2a; //Transfere o valor de u2a para u2

/*Algoritmo Para-Analisador*/ //Operações Matemáticas

gc=u1-u2; //Cálculo do grau de certeza

gct=(u1+u2)-1023; //Cálculo de grau de contradição

modulo_gc = 0-gc; //Cálculo do modulo_gc modulo_gct = -gct; //Cálculo do modulo_gct

lcd_posicao(1,1); //Mostra valor de gc no display LCD imprime_string_lcd("gc:"); //

lcd_posicao(1,4); //

sprintf(buffer,"%04ld ",(long)gc); //Carrega buffer com o valor presente em gc imprime_buffer_lcd(buffer,5); //Imprime no display o valor do conversor

lcd_posicao(2,1); //Mostra valor de gct no display LCD imprime_string_lcd("gct:"); //

lcd_posicao(2,5); //

sprintf(buffer,"%04ld ",(long)gct); //Carrega buffer com o valor presente em gct imprime_buffer_lcd(buffer,5); //Imprime no display o valor do conversor

if (gc>=vscc) {lcd_posicao(2,10); imprime_string_lcd("[ V ]"); lcd_posicao(1,10); imprime_string_lcd("P 5");} //Verdadeiro if (gc<=vicc) {lcd_posicao(2,10); imprime_string_lcd("[ F ]"); lcd_posicao(1,10); imprime_string_lcd("P95");} //Falso if (gct>=vscct) {lcd_posicao(2,10); imprime_string_lcd("[ T ]"); lcd_posicao(1,10); imprime_string_lcd("P50");} //Inconsitente if (gct<=vicct) {lcd_posicao(2,10); imprime_string_lcd("[ I ]"); lcd_posicao(1,10); imprime_string_lcd("P50");} //Indeterminado if((gc>=0)&&(gc<vscc)&&(gct>=0)&&(gct<vscct)) { if(gc>=gct) {lcd_posicao(2,10); imprime_string_lcd("[QV->T]"); lcd_posicao(1,10); imprime_string_lcd("P22");} //Quase verdadeiro tendendo a inconsistente else

{lcd_posicao(2,10); imprime_string_lcd("[T->V ]"); lcd_posicao(1,10); imprime_string_lcd("P45");} //Inconsistente tendendo a verdadeiro } if((gc>=0)&&(gc<vscc)&&(gct>vicct)&&(gct<=0)) { if(gc>=modulo_gct) {lcd_posicao(2,10); imprime_string_lcd("[QV->I]"); lcd_posicao(1,10); imprime_string_lcd("P22");} //Quase verdadeiro tendendo a indeterminado

else

{lcd_posicao(2,10); imprime_string_lcd("[I->V ]"); lcd_posicao(1,10); imprime_string_lcd("P45");} //Indeterminado tendendo a verdadeiro } if((gc>vicc)&&(gc<=0)&&(gct>vicct)&&(gct<=0)) { if(modulo_gc>=modulo_gct) {lcd_posicao(2,10); imprime_string_lcd("[QF->I]"); lcd_posicao(1,10); imprime_string_lcd("P90");} //Quase falso tendendo a indeterminado else

{lcd_posicao(2,10); imprime_string_lcd("[T->F] "); lcd_posicao(1,10); imprime_string_lcd("P75");} //Indeterminado tendendo a falso

} if((gc>vicc)&&(gc<=0)&&(gct>=0)&&(gct<vscct)) { if(modulo_gc>=gct) {lcd_posicao(2,10); imprime_string_lcd("[QF->T]"); lcd_posicao(1,10); imprime_string_lcd("P90");} //Quase falso tendendo a inconsistente else

{lcd_posicao(2,10); imprime_string_lcd("[T->F ]"); lcd_posicao(1,10); imprime_string_lcd("P75");} //Inconsistente tendendo a falso

}

/*Fim do Algoritmo Para-Analisador*/

}//fim do bloco while }//fim do programa

APÊNDICE B – Programação do Controlador Paraconsistente Utilizada Para Controle de Temperatura.

/* CONTROLADOR PARACONSISTETNE FACULDADE SENAI DE TECNOLOGIA MECATRÔNICA PÓS GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL

AUTOR: RICARDO MARTINEZ VICENTINI */

#include <p18f452.h> //Microcontrolador utilizado

#include <adc.h> //Biblioteca de conversor AD #include <delays.h> //Biblioteca de delays #include <stdlib.h> //Biblioteca de miscelâneas #include <stdio.h> //Biblioteca de entradas e saídas #include <string.h> //Biblioteca de strings

#include "C:\PIC18\biblioteca_lcd_uext_2x16.h" //Biblioteca LCD CLP FLEXIS

#pragma config OSC = XT //Oscilador tipo XT

#pragma config PWRT = OFF //Power-up Timer Desabilitado #pragma config BOR = OFF //Brown-out Reset Desabilitado #pragma config WDT = OFF //Watchdog Timer Desabilitado #pragma config LVP = OFF //Low Voltage ICSP Desabilitado

//DECLARAÇÃO DAS VARIÁVEIS

float u1; //Grau de Crença - Evidência Favorável float u2; //Grau de Descrença - Evidência Desfavorável float u1a; // grau de crença instantâneo

float u2a; // grau de descrença instantâneo

int vscc = 681; //Vscc - Valor Superior de Controle da Certeza 512 int vicc = -681; //Vicc - Valor Inferior de Controle da Certeza -512 int vscct = 681; //Vscct - Valor Superior de Controle da Contradição 512 int vicct = -681; //Vicct - Valor Inferior de Controle da Contradição -512 float gc; // Grau de Certeza

float gct; //Grau de Contradição float modulo_gc; //Módulo do grau de certeza float modulo_gct; //Módulo do grau de contradição unsigned char buffer[5]; //Buffer

unsigned char buffer3[3]; //Buffer float celsius1;

float celsius2;

void main( ) //Função principal - Início do Programa {

TRISA = 0b11111111; //Declara entradas e saídas do sistema TRISEbits.TRISE1 = 0; //Declara saída do Buzzer

TRISB = 0b000000; //Declara PORTB como saída

PORTA = 0;//Limpa os Port's PORTB = 0;

PORTC = 0; PORTD = 0; PORTE = 0;

OpenADC(ADC_FOSC_4& //Fosc = 4 (para 4 MHz)

ADC_RIGHT_JUST& //Alinhamento justificado a direita

ADC_3ANA_0REF, //3 Canais analógicos, referência de tensão VCC E VSS ADC_INT_OFF); //Interrupção desligada

PORTEbits.RE1 = 1; //Bip de início Delay10KTCYx(30); //

PORTEbits.RE1 = 0; //

lcd_inicia(0x28, 0x0f, 0x06); //Inicia LCD 2x16 lcd_LD_cursor(0); //Desliga cursor

lcd_limpa_tela ( );

lcd_posicao(1,1); imprime_string_lcd("FACULDADE SENAI "); lcd_posicao(2,1); imprime_string_lcd("TCL. MECATRONICA"); Delay10KTCYx(500);

lcd_posicao(1,1); imprime_string_lcd(" POS GRADUACAO "); lcd_posicao(2,1); imprime_string_lcd("AUT. INDUSTRIAL "); Delay10KTCYx(200);

lcd_posicao(1,1); imprime_string_lcd(" CONTROLADOR "); lcd_posicao(2,1); imprime_string_lcd("PARACONSISTENTE "); Delay10KTCYx(200);

lcd_posicao(1,1); imprime_string_lcd("RICARDO MARTINEZ"); lcd_posicao(2,1); imprime_string_lcd(" VICENTINI "); Delay10KTCYx(200);

lcd_limpa_tela ( );

while(1)//loop infinito {//inicio do bloco while

//Leitura CH0

SetChanADC(ADC_CH0); //Seleciona o canal AN0 para leitura ConvertADC(); //Lê o canal

while(BusyADC()); //Aguarda o fim da conversão

u1a=ReadADC(); //Transfere o valor lido para a variável u1a

//Leitura CH1

SetChanADC(ADC_CH1); //Seleciona o canal AN1 para leitura ConvertADC(); //Lê o canal

while(BusyADC()); //Aguarda o fim da conversão

u2a=ReadADC(); //Transfere o valor lido para a variável u2a

//Padronizando valores medidos em valores de 0 a 1023

u1=((float)u1a)*8.33; //Converte valores medidos para range de 0 a 1023 u2=1023.0-(((float) u2a)*8.33); //Inverte valor de u2 - valor máximo - valor medido

celsius1 =((float) u1a)*0.488; //Converte valor medido para temperatura (em ºC) celsius2 =((float) u2a)*0.488;

/*Algoritmo Para-Analisador*/ //Operações Matemáticas

gc=u1-u2; //Cálculo do grau de certeza

gct=(u1+u2)-1023.0; //Cálculo de grau de contradição

modulo_gc = 0-gc; //Cálculo do modulo_gc modulo_gct = -gct; //Cálculo do modulo_gct

lcd_posicao(1,1); //Mostra valor de gc no display LCD imprime_string_lcd("gc:"); //

sprintf(buffer,"%04ld ",(long)gc); //Carrega buffer com o valor presente em gc imprime_buffer_lcd(buffer,5); //Imprime no display o valor do conversor

lcd_posicao(2,1); //Mostra valor de gct no display LCD imprime_string_lcd("gct:"); //

lcd_posicao(2,5); //

sprintf(buffer,"%04ld ",(long)gct); //Carrega buffer com valor presente em gct imprime_buffer_lcd(buffer,5); //Imprime no display o valor do conversor

lcd_posicao(1,10); //Mostra valor da temperatura no display sprintf(buffer2,"%03ld ",(long)celsius1); //Carrega buffer com celsius

imprime_buffer_lcd(buffer2,4); //Imprime no display o valor da temperatura em °C

lcd_posicao(1,14); //Mostra valor da temperatura no display sprintf(buffer3,"%03ld ",(long)celsius2); //Carrega buffer com celsius

imprime_buffer_lcd(buffer3,4); //Imprime no display o valor da temperatura em °C

//Obtenção dos Estados Lógicos Resultantes if (gc>=vscc) {lcd_posicao(2,10); imprime_string_lcd("[ V ]"); PORTBbits.RB0 = 0;} //Verdadeiro if (gc<=vicc) {lcd_posicao(2,10); imprime_string_lcd("[ F ]"); PORTBbits.RB0 = 1;} //Falso if (gct>=vscct) {lcd_posicao(2,10); imprime_string_lcd("[ T ]"); PORTBbits.RB0 = 1;} //Inconsitente if (gct<=vicct) {lcd_posicao(2,10); imprime_string_lcd("[ I ]"); PORTBbits.RB0 = 1;} //Indeterminado

if((gc>=0)&&(gc<vscc)&&(gct>=0)&&(gct<vscct)) {

if(gc>=gct)

{lcd_posicao(2,10); imprime_string_lcd("[QV->T]"); PORTBbits.RB0 = 1;}

//Quase verdadeiro tendendo a inconsistente else

{lcd_posicao(2,10); imprime_string_lcd("[T->V ]"); PORTBbits.RB0 = 1;}

//Inconsistente tendendo a verdadeiro } if((gc>=0)&&(gc<vscc)&&(gct>vicct)&&(gct<=0)) { if(gc>=modulo_gct) {lcd_posicao(2,10); imprime_string_lcd("[QV->I]"); PORTBbits.RB0 = 1;}

//Quase verdadeiro tendendo a indeterminado else

{lcd_posicao(2,10); imprime_string_lcd("[I->V ]"); PORTBbits.RB0 = 1;}

//Indeterminado tendendo a verdadeiro } if((gc>vicc)&&(gc<=0)&&(gct>vicct)&&(gct<=0)) { if(modulo_gc>=modulo_gct) {lcd_posicao(2,10); imprime_string_lcd("[QF->I]"); PORTBbits.RB0 = 1;}

//Quase falso tendendo a indeterminado else

{lcd_posicao(2,10); imprime_string_lcd("[T->F] "); PORTBbits.RB0 = 1;}

//Indeterminado tendendo a falso }

if((gc>vicc)&&(gc<=0)&&(gct>=0)&&(gct<vscct)) {

if(modulo_gc>=gct)

{lcd_posicao(2,10); imprime_string_lcd("[QF->T]"); PORTBbits.RB0 = 1;}

//Quase falso tendendo a inconsistente else

{lcd_posicao(2,10); imprime_string_lcd("[T->F ]"); PORTBbits.RB0 = 1;}

//Inconsistente tendendo a falso }

/*Fim do Algoritmo Para-Analisador*/ Delay10KTCYx(40); //400 ms

}//fim do bloco while

APÊNDICE C – Programação do MATLAB %ALGORITMO DE ANÁLISE PARACONSISTENTE LPA2v

resp='s';

while resp=='s' || resp=='S' clear all;

clc;

disp('+---+'); disp('| Algoritmo Para-Analisador')

disp('| Autor: Tecnólogo Ricardo Martinez Vicentini')

disp('+---+'); disp(' ');

maximo=input('Digite o valor máximo de u1 e u2: '); disp(' ');

u1=input('Digite o grau de crença ou evidência favorável u1: '); disp(' ');

u2=input('Digite o grau de descrença ou evidência desfavorável u2: '); disp(' '); vscc=maximo/2; vicc=-maximo/2; vscct=maximo/2; vicct=-maximo/2; gc=u1-u2; gct=(u1+u2)-maximo; modulo_gc=0-gc; modulo_gct=-gct; disp('************************************************************'); disp(' Valores '); disp('************************************************************'); disp(' ');

fprintf('Grau de Crença u1 = %.0f \n', u1) fprintf('Grau de Descrença u2 = %.0f \n', u2) fprintf('Grau de Certeza Gc = %.0f \n', gc) fprintf('Grau de Contradição Gct = %.0f \n', gct)

fprintf('Módulo Gc = %.0f \n', modulo_gc) fprintf('Módulo Gct = %.0f \n', modulo_gct) disp(' ');

disp('---');

%Determinação dos Estados Lógicos Extremos

if (gc>=vscc) fprintf('-> VERDADEIRO'); elseif (gc<=vicc) fprintf('-> FALSO'); elseif (gct>=vscct) fprintf('-> INCONSISTENTE'); elseif (gct<=vicct) fprintf('-> INDETERMINADO'); end

%Determinação dos Estados Lógicos Não Extremos

if (gc<vscc & gc>=0 & gct<vscct & gct>=0) if(gc>=gct)

fprintf('-> Quase Verdadeiro Tendendo a Inconsistente') else

end

elseif (gc<vscc & gc>=0 & gct<=0 & gct>vicct) if(gc>=modulo_gct)

fprintf('-> Quase Verdadeiro Tendendo a Indeterminado') else

fprintf('-> Indeterminado Tendendo a Verdadeiro') end

elseif (gc>vicc & gc<=0 & gct<=0 & gct>vicct) if(modulo_gc>=modulo_gct)

fprintf('-> Quase Falso Tendendo a Indeterminado') else

fprintf('-> Indeterminado Tendendo a Falso')

end

elseif(gc>vicc & gc<=0 & gct>=0 & gct<vscct) if(modulo_gc>=gct)

fprintf('-> Quase Falso Tendendo a Inconsistente') else

fprintf('-> Inconsistente Tendendo a Falso') end

end

disp(' ');

disp('---'); disp(' ');

resp=input('Nova simulação? s ou n: ','s');

while resp~='s' && resp~='S' && resp~='N' && resp~='n' disp('Responda somente s ou n');

resp=input('Nova simulação? s ou n: ','s');

end end

APÊNDICE D – Alteração na Placa Eletrônica Utilizada nos Testes

De modo a facilitar a programação e a base de tempo utilizada nos ensaios, o cristal oscilador conectado ao microcontrolador, no valor de 20MHz, foi substituído por outro no valor de 4MHz.

Para o correto funcionamento dessa placa eletrônica, foi necessário realizar uma alteração no circuito do microcontrolador, onde foi inserido 2 capacitores no valor de 22 pF conectados ao cristal oscilador, conforme figura 26 abaixo:

Figura 26 – Alteração do circuito do microcontrolador da placa eletrônica

Fonte: Dados do Autor

Documentos relacionados