Carregamento e Descarregamento
de um Capacitor
O desafio consiste na criação de um circuito semelhante a um nobreak, utilizando um capacitor de 1 µF. O circuito acenderá um LED vermelho quando o capacitor estiver totalmente carregado, e quando o capacitor descarregar totalmente um LED verde acenderá. Para que possamos acender e apagar um LED precisaremos utilizar formulas para descobrirmos o tempo de descarregamento do Capacitor.
Para isso iremos ver 3 fórmulas que nos proporcionará o tempo em segundos de descarga. A primeira fórmula que utilizaremos servirá para descobrir a constante de tempo:
T = Contante de tempo em segundos.
R = Resistência em ohms.
C = Capacitância total do Capacitor em Farads.
As outras duas fórmulas são derivações da formula principal (T = R X C), onde respectivamente uma servirá para descobrirmos o valor da resistência e a outra para descobrirmos a capacitância:
1 - Interruptor;
4 - Resistores: três de 100 Ω e um de 1 MΩ;
1- Capacitor polarizado de 1 µF;
2 - LEDs: 1 Verde e 1 Vermelho;
Vamos dividir o desafio em duas partes. A primeira parte é a montagem do circuito onde iremos explicar, passo a passo, a montagem para que o capacitor carregue e descarregue corretamente. A segunda parte é a criação do código que será responsável pela leitura de carga e descarga do Capacitor.
A montagem do Circuito:
Passo 1: Primeiramente devemos adicionar o interruptor na protoboard e em seguida ligar um resistor (1MΩ) no terminal 2 do interruptor. Após ter feito isso, deve-se ligar um outro resistor de modo que ambos formem um ângulo de 90º. Seu circuito deverá ficar dessa forma:
Passo 2: Neste passo devemos adicionar o Capacitor Polarizado com sua perna negativa posicionada no terminal 2 do resistor de 100Ω e conectar sua perna positiva no polo positivo. Após ter feito isso deve-se fazer uma ligação para uma porta analógica (A0 foi a escolhida).
Passo 3: Para finalizar o circuito, devemos adicionar o Terminal 2 dos resistores no polo negativo e em seguida conectar os LED'S no terminal 1. Após ter feito isso, escolha duas portas digitais (13 e 12 foram as escolhidas) para conectar os LED'S.
A criação do Código:
int VR = analogRead(A0);//Lê a porta A0
float VrVolts =(VR*(5.0/1023.0)); //Transforma em volts
A variável VR irá servir para armazenar os valores lidos pela porta A0.
A variável VrVolts irá servir para armazenar o valor da tensão em volts.
A equação VrVolts =(VR*(5.0/1023.0)); irá transformar em volts o valor lido pela porta analógica. O valor 5.0 é a tensão total do circuito e 1023 corresponde ao valor máximo de 10 bits quando a voltagem é 5 volts.
A equação rc servirá para descobrir o intervalo de tempo necessário para carregar e descarregar o Capacitor
if (VcVolts < 4.99 ){ //Carregando/Descarregado
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
}else{
digitalWrite(13, LOW);
digitalWrite(12, HIGH); //Totalmente Carregado
}
A primeira condição servirá para manter um LED verde aceso enquanto o Capacitor estiver carregando ou descarregado, ou seja, quando o Capacitor tiver uma medida de tensão menor que 5 volts. A segunda condição irá fazer com que um LED vermelho acenda quando o Capacitor estiver totalmente carregado, ou seja, quando tiver uma medida de tensão de 5 volts.
CÓDIGO:
unsigned long tempo;
double carregamento = 0;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
}
void loop() {
tempo = millis();
int vR = analogRead(A0);//Lê a porta A0
float vrVolts =(vR *(5.0/1023.0)); //Transforma em volts
float vcVolts = 5.0- vrVolts;
float constTempo = vR * vrVolts;
float tempoCarga = 1000000 * 0.000001; //rc = capacitância do Capacitor * resitência
if(vrVolts < 5.0){
carregamento = carregamento + 0.08; //Acréscimo de 0.08 segundos no tempo decorrido
// Imprime os valores lidos
Serial.print(vrVolts);
Serial.print(" ");
Serial.print(vcVolts);
Serial.print(" ");
Serial.print(tempo);
Serial.print(" ");
Serial.print(constTempo);
Serial.print(" ");
Serial.print(tempoCarga);
Serial.print(" ");
Serial.println(carregamento);
if (tempoCarga > carregamento ){ //Enquanto o tempo para carregar o capacitor for maior que o tempo de carga decorrido ,o led vermelho indica que não está carregado.
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
}else{
digitalWrite(13, LOW);
digitalWrite(12, HIGH); //Totalmente Carregado
}
delay(500);
}
TINKERCAD: https://www.tinkercad.com/things/1MVlRShNzqc
Relatórios:
Eric Henrique de Lira:
Gabriel Greco:
Renan Alencar Dores:
Adicionar legenda ao video
ResponderExcluirO valor base para acender Leds corresponde a obtenção do valor da constante de tempo atingida....
ResponderExcluir1o. Vcs devem apresentar um video indicando a realização do experimento, com legenda
ResponderExcluir20. 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 graficos no mesmo sistema de eixos para constante de tepos diferentes
5o faltou variar o capacitor
6o efetuar associações dos capacitores.
O programa que deveria ter sido desenvolvido apos o estudo detalhado de carga e descarga do capacitor era a construção de um capacímetro. Ou seja quando vc atingir o valor correspondente ao tempo RC deve enviar um sinal para um atuador dizendo que a tensão no resistor reduziu e o capacitor já esta próximo a atingir sua carga total. Deve imprimir o valor da constante de tempo e com o valor de R oferecer o valor de C.
ResponderExcluirFaltou medidas para associações em serie e paralelo de capacitores
ResponderExcluirAlem disso falta entregar relatório detalhado sobre o experimento que pode ter um link para acesso no blog para um arquivo que permita apenas visualização
siga as orientaçoes descritas neste link para seu relatório
http://wiki.foz.ifpr.edu.br/wiki/images/3/37/Estrutura_relatorio_geral.pdf