DESAFIO CAPACITOR, Descrição do procedimento e esquema utilizado

Descrição do procedimento e esquema utilizado:

No simulador Tinkercad (links no final da postagem), foi feito o esquema a seguir:



Neste circuito RC, observamos um capacitor, um interruptor, três leds e cinco resistores, esse circuito dispõe do código a seguir para execução, o mesmo contém comentários para aperfeiçoar sua compreensão.

===========================================================

int cont=0;//contador
void lerSerial();//declaração de método.
unsigned long TempoInicial=0; // variáveis de tempo
unsigned long tempo1=0; //variáveis de tempo
unsigned long tempo2=0; // variáveis de tempo

float R;  // valor do resistor

void setup() {
  // inicializa o monitor serial.
  Serial.begin(9600);
  lerSerial();//função de entrada de dados.
  Serial.println("Aguarde...");//mensagem de espera.
  //Definição dos pinos de led.
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  

}

void loop() {
  //inicialização de valores e leituras analógicas.
  tempo2 = millis();
  int C1 = analogRead(A1);
  int C2 = analogRead(A2);
  int VR = analogRead(A0);
  //Conta para transformar decimal em voltagem.
  float VRV= VR*5.0/1023;
  //Conta para achar a voltagem do capacitor.
  float VCV= 5.0 - VRV;

  //Condição de inicialização do tempo.
  if (( VRV < 5.0 ) && ( VRV > 4.9 )){
  TempoInicial = millis();
    //contador.
  cont=1;
  digitalWrite(10, LOW);
      }
 //condição para primeira constante de tempo.
if (( VRV > 1.7)  && (cont==1) && (VRV < 1.8)){
  
 tempo1=(millis() - TempoInicial);
  //contador.
 cont=2;
  //impressão de dados no terminal.
     Serial.print("Voltagem no resist: ");
     Serial.print(VRV);
  Serial.print(" ");
     Serial.print("Tempo in.");
     Serial.println(TempoInicial);
     Serial.print("Const. de temp.: ");
     Serial.print(tempo1);
     Serial.print(" ");
     Serial.print("Tempo final: ");
     Serial.println(tempo2);
     float C =(tempo1/(1000*R));
  //condições para as escalas da impressão da capacitância.
     if((C1 == 1023) && (C2 == 1023)){
     Serial.print("Capacitancia em F: ");
     Serial.println(C, 3);
    }
    if((C1 < 1023) && (C2 == 1023)){
     Serial.print("Capacitancia em nF: ");
     Serial.println(C*1000000000, 2);
    }
    if((C1 == 1023) && (C2 <  1023)){
     Serial.print("Capacitancia em MF: ");
     Serial.println(C/1000000, 2);
    }
  //controle de leds.
     digitalWrite(12, HIGH);
  digitalWrite(11, LOW);
  digitalWrite(10, LOW);
}
  //condição para segunda constante de tempo.
  if (( VRV > 0.6)  && (cont==2) && (VRV < 0.7)){
    //controle de leds.
  digitalWrite(12, LOW);
  digitalWrite(11, HIGH);
  digitalWrite(10, LOW);
    //contador.
    cont = 3;
  } 
  //condição para terceira constante de tempo.
  if (( VRV > 0.3)  && (cont==3) && (VRV < 0.4)){
    //controle de leds.
    digitalWrite(12, LOW);
  digitalWrite(11, LOW);
  digitalWrite(10, HIGH);
    //contador.
    cont = 1;
  }
}
//função para inserção de dados.
void lerSerial(){
  Serial.print("Insira a resistencia: ");
  while(!Serial.available()){}
  //Conversão do dado para tipo inteiro.
  R = Serial.parseInt();
}

===========================================================


Links do Tinkercad dos membros :




Comentários

  1. De acordo com o abordado em sala de aula:
    O blog deve contemplar:
    1o. Vcs devem apresentar um video indicando a realização do experimento, com legenda
    20. vcs devem adicionar a programação a ação de atuadores quando o tempo for maior que a constante de tempo, considerando o tempo inicial da medida.
    3o vcs devem apresentar uma teoria mais refinada acerca do tema
    4o vcs devem construir os gráficos no mesmo sistema de eixos para constante de tempos diferentes
    5o faltou variar o capacitor
    6o efetuar associações dos capacitores

    O relatório solicitado na tarefa deve ser anexado com um link no blog para visualização. Relatório seguindo regras da ABNT

    Siga as orientações deste link http://wiki.foz.ifpr.edu.br/wiki/images/3/37/Estrutura_relatorio_geral.pdf

    ResponderExcluir

Postar um comentário