Pesquisar neste blog

30/08/2022

TERMÔMETRO COM PIC 16F877A

(Componente NTSA0WB203)

Código feito em CCS C Compiler

//PÁGINA 136
#include <16F877A.h>
#device adc = 10
#fuses XT, NOWDT
#use delay (clock = 4MHz)
#include <math.h>
#include <lcd.c>

float tv, tr, temp, y;
int16 value;

void main(){
   lcd_init();   
   setup_port_a(ALL_ANALOG);
   setup_adc(ADC_CLOCK_INTERNAL);
   set_adc_channel(0);
   delay_ms(10);
   
   while(true){
      value = read_adc();
      tv = 5.0 * value / 1024.0;
      tr = tv * 10000.0 / (5.0 - tv);
      y = log(tr / 20000.0);
      y = (1.0 / 298.15) + (y * (1.0 / 4050.0));
      temp = 1.0 / y;
      temp = temp - 273.15;
      
      printf(lcd_putc, "\f\nT = %04.2fC",temp);
      delay_ms(1000);
   }
}



24/08/2022

Gráfico de barras no google sheets
















Comando utilizado:

=SPARKLINE(B3;{"charttype"\"bar";"max"\1;"color1"\"orange"})
=SPARKLINE(B4;{"charttype"\"bar";"max"\1;"color1"\"red"})
=SPARKLINE(B5;{"charttype"\"bar";"max"\1;"color1"\"7CFC00"})
=SPARKLINE(B6;{"charttype"\"bar";"max"\1;"color1"\"grey"})
=SPARKLINE(B7;{"charttype"\"bar";"max"\1;"color1"\"DeepSkyBlue"})

17/08/2022

Onda senoidal PWM com PIC 16F877A

Código feito em CCS C Compiler

#include <16F877A.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for

#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock = 20MHz)

//============== TABELA COM VALORES DE UMA ONDA SENOIDAL ================//
const unsigned int seno[73] = { 0,0,1,2,3,5,7,9,12,14,18,21,25,29,33,37,41,
 45,50,54,58,62,66,70,74,78,81,85,87,90,92,94,
 96,97,98,99,99,99,98,97,96,94,92,90,87,85,81,
 78,74,70,66,62,58,54,50,45,41,37,33,29,25,21,
 18,14,12,9,7,5,3,2,1,0};
//======================================================================//

unsigned int8 ii = 0, ton;
#int_RTCC
void RTCC_isr(void){
   ii=ii+1; ton = seno[ii];
   set_pwm1_duty(ton);
   if(ii>71)ii=0;
}

void main(){
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);

   // Programação do Timer 0 - Overflow a cada 819 us
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16);

   setup_timer_1(T1_DISABLED);

   // Programação do Timer 2 - usado no PWM
   setup_timer_2(T2_DIV_BY_1,99,1);

   setup_ccp1(CCP_PWM);
   set_pwm1_duty(99); // Ton = 100%
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   enable_interrupts(INT_RTCC);
   enable_interrupts(GLOBAL);

    while(true){
      /*
      ii=ii+1; ton = seno[ii];
      set_pwm1_duty(ton);
      if(ii>71)ii=0;
      delay_ms(1);
      */
   
   }
}















06/08/2022

Proporção

1- De cada 10 alunos de uma sala de aula, 6 são do sexo feminino. Sabendo que nesta sala de aula há 18 alunos do sexo feminino, quantos são do sexo masculino ?

Resolução:

6 / (10 - 6) = 18 / x
x = 12 alunos

2- Foram construídos 2 reservatórios de água, a razão entre os valores internos do 1° e do 2° é de 2 para 5, e a soma desses volumes é 14 . Qual é a diferença entre as capacidades desses 2 reservatórios ?

Resolução:

1° --> 2x
2° --> 5x

2x + 5x = 14            2 . 2 = 4
x = 2                        5 . 2 = 10

10 - 4 = 6 m³


3- Manoel vendeu seu carro por 27.000 R$ e teve um prejuízo de 10% sobre o valor de custo do total do veículo, qual o valor do carro ?

Resolução:

100 - 10 = 90%
27.000 ---> 100%
x ----------> 90%

x = 30.000 R$


4- Em um mapa cuja escala era de 1:15104, a menor distância entre dois pontos A e B, medida com a régua, era de 12 cm. Isso significa em real é igual a ?

Resolução:

1 ---> 15104
12 --> x

1 / 15104 = 0,12 / x

x  = 1812,48 m