/*
Projeto 40 - Curva de corrente elétrica vs tensão de um LED
Física na Lixa
https://fisicanalixa.blogspot.com/
https://sites.google.com/aelixa.pt/fisicaearduino
*/
int i;
int j;
int alimentacao = 6; //Pino 6 (PWM) - O condensador transforma os pulsos de tensão em sinal analógico linear.
int n = 100; //Número de medições para fazer a média
float valorA0; //Leitura no pino A0
float valorA1; //Leitura no pino A1
float tensaoLED; //Tensão nos terminais do LED em V
float corrente; //Corrente elétrica que percorre o circuito em mA
float resistencia = 200; //Valor da resistência que se encontra em série com o LED
void setup()
{
Serial.begin(9600);
pinMode(alimentacao, OUTPUT);
analogWrite(alimentacao, 0); //O pino PWM começa com zero (o valor máximo dos pinos PWM é 255)
Serial.println();
Serial.println("ddp/V e I/mA");
}
void loop()
{
for(i=10; i<=250; i=i+10)
{
analogWrite(alimentacao, i); //O valor de i vai aumentando, aumentando a taxa do pino 6 (PWM)
delay(100);
valorA0 = 0;
for(j=0; j<n; j++) //Soma os valores de n leituras do pino A0
{
delay(10);
valorA0 = valorA0 + analogRead(0);
}
valorA0 = valorA0 / n; //Valor médio de n leituras
valorA1 = 0;
for(j=0; j<n; j++) //Soma os valores de n leituras do pino A1
{
delay(10);
valorA1 = valorA1 + analogRead(1);
}
valorA1 = valorA1 / n; //Valor médio de n leituras
corrente = (5000*valorA1/1023)/resistencia; //Corrente que percorre o LED em mA
tensaoLED = 5.0*(valorA0 - valorA1)/1023; //Tensão nos terminais do LED
Serial.print(tensaoLED, 3);
Serial.print("\t");
Serial.println(corrente, 5);
delay(100);
}
}
/*
Projeto 40 - Curva de corrente elétrica vs tensão de um LED (excel)
Física na Lixa
https://fisicanalixa.blogspot.com/
https://sites.google.com/aelixa.pt/fisicaearduino
*/
int i;
int j;
int alimentacao = 6; //Pino 6 (PWM) - O condensador transforma os pulsos de tensão em sinal analógico linear.
int n = 100; //Número de medições para fazer a média
float valorA0; //Leitura no pino A0
float valorA1; //Leitura no pino A1
float tensaoLED; //Tensão nos terminais do LED em V
float corrente; //Corrente elétrica que percorre o circuito em mA
float resistencia = 200; //Valor da resistência que se encontra em série com o LED
void setup()
{
Serial.begin(9600);
Serial.println("CLEARDATA");
Serial.println("LABEL, ,ddp/V,I/mA");
pinMode(alimentacao, OUTPUT);
analogWrite(alimentacao, 0); //O pino PWM começa com zero (o valor máximo dos pinos PWM é 255)
}
void loop()
{
for(i=10; i<=250; i=i+10)
{
analogWrite(alimentacao, i); //O valor de i vai aumentando, aumentando a taxa do pino 6 (PWM)
delay(100);
valorA0 = 0;
for(j=0; j<n; j++) //Soma os valores de n leituras do pino A0
{
delay(10);
valorA0 = valorA0 + analogRead(0);
}
valorA0 = valorA0 / n; //Valor médio de n leituras
valorA1 = 0;
for(j=0; j<n; j++) //Soma os valores de n leituras do pino A1
{
delay(10);
valorA1 = valorA1 + analogRead(1);
}
valorA1 = valorA1 / n; //Valor médio de n leituras
corrente = (5000*valorA1/1023)/resistencia; //Corrente que percorre o LED em mA
tensaoLED = 5.0*(valorA0 - valorA1)/1023; //Tensão nos terminais do LED
Serial.print("DATA, ,"); Serial.print(tensaoLED, 3); Serial.print(","); Serial.println(corrente, 5);
delay(100);
}
}