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