Boa noite povo, fiz o programa contido neste artigo para medir o tempo de carga de um capacitor:
http://www.sbfisica.org.br/rbef/pdf/334503.pdf
Mas gostaria de otimizar ele fazendo que, ao apertar o botao para descarregar o capacitor ele inicie a contagem a partir do zero.
O problema não é com o código, e sim, com a ligação da protoboard para ler o botão.
Tentei de várias formas, mas quando uma delas desconectou o arduino da porta serial eu fiquei preocupado e resolvi recorrer a vocês.
Abraço!
OBS: Segue o sistema que tenho montado:
Tags:
Código:
#define pinocapacitor A0 //pino que esta ligado o capacitor (porta analogica 0)
int valorLido = 0; //valor lido na entrada analogica
float tensaocapacitor = 0; //tensaocapacitor valor convertido para volts
float time;
void setup() {
Serial.begin(9600); //Inicializa comunicac~ao Serial numa taxa de 9600 bps
}
void loop() {
while(millis()*1e-3<60){
time = millis()*1e-3; // base de tempo para a coleta
valorLido = analogRead(pinocapacitor); // leitura da porta analiogica em que o capacitor esta conectado
tensaocapacitor = (valorLido * 0.0048876); // 5V / 1023 = 0.0048876 (precis~ao do A/D)
Serial.print(time, 5); // imprime o tempo em linha
Serial.print("\t"); // imprime o tempo em tabela
Serial.println(tensaocapacitor, 5);//imprime o valor da tensão do capacitor em linha
delay(250); //espera 250 milisegundos para fazer nova leitura
}
}
Vai ser difícil conseguir fazer alguma coisa assim, esse evento é muito rápido esqueça operação com ponto flutuante, crie uma especie de tabela. Pra enviar para o PC em tempo real, use interrupção de uart, o tempo de processamento é muito preciso nesse caso.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por