Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Pinos LCD:
- LCD RS pin 2
- LCD EN pin 3
- LCD D4 pin 5
- LCD D5 pin 6
- LCD D6 pin 7
- LCD D7 pin 8
- */
- #include <LiquidCrystal.h>
- #define analogPin 1 // Pino analogico para medicao tensao
- #define chargePin 11 // Pino para carregar capacitor
- #define dischargePin 12 // Pino para descarregar capacitor
- #define resistorValue 100000.0F // Valor do resistor que descarrega o cap
- // F mostra que é um valor float
- LiquidCrystal lcd(2,3,5,6,7,8);
- unsigned long startTime;
- unsigned long elapsedTime;
- unsigned long elapsedTimeMilli;
- unsigned long delayTime;
- float microFarads, nanoFarads, picoFarads;
- void setup(){
- pinMode(chargePin, OUTPUT);
- digitalWrite(chargePin, LOW);
- lcd.begin(16,2);
- lcd.setCursor(0,0);
- lcd.print("Valor do cap: ");
- Serial.println("Inicio");
- }
- void loop(){
- digitalWrite(chargePin, HIGH); // set chargePin HIGH and capacitor charging
- startTime = micros();
- while(analogRead(analogPin) < 648){ // 647 é 63.2% de 1023, que corresponde a tensão total
- }
- elapsedTime= micros() - startTime; //Tempo entre o capacitor descarregado e 63,2% do total
- // converter microsegundos para segundos ( 10^-6 ) e Farads para microFarads ( 10^6 )
- microFarads = ((float)elapsedTime/ resistorValue);
- if (microFarads > 1){
- lcd.setCursor(0,1);
- lcd.print(" ");
- lcd.setCursor(0,1);
- lcd.print(microFarads,3);
- lcd.setCursor(13,1);
- lcd.print("uF");
- }
- else
- {
- nanoFarads = microFarads * 1000.0; // multiplicar por 1000 para passar para nanoFarads
- if (nanoFarads > 1){
- if (nanoFarads < 2) {
- lcd.setCursor(0,1);
- lcd.print("-Sem Capacitor-");
- }
- else
- {
- lcd.setCursor(0,1);
- lcd.print(" ");
- lcd.setCursor(0,1);
- lcd.print(nanoFarads,3);
- lcd.setCursor(13,1);
- lcd.print("nF");
- }
- }
- }
- delay(800);
- /* dicharge the capacitor */
- digitalWrite(chargePin, LOW);
- pinMode(dischargePin, OUTPUT);
- digitalWrite(dischargePin, LOW);
- while(analogRead(analogPin) > 0){
- }
- pinMode(dischargePin, INPUT);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement