Este blog foi criado para compartilhar conteúdos de física. Está voltado para atender alunos e professores do ensino médio. Curiosidades,experiências,livros,fotos, imagens e muito mais.
segunda-feira, 18 de abril de 2016
Programa para calibrar os sensores LDE + LDR em função da luz ambiente
Este programa foi desenvolvido para calibrar a sensibilidade do par de sensores LED + LDR a fim de que o aparato experimental seja funcional em qualquer ambiente.
/* v=s/t
a=v/t
s=s0+vt0+at^2/2
*/
int ldr1;//sensor's
int ldr2;
int ldr3;
int ldr4;
int ldr5;
int ldr6;
int led1=13; //led
int led2=12;
int led3=11;
int led4=10;
int led5=9;
int led6=8;
float tempoa;//tempo's
float tempob;
float tempoc;
float tempod;
float tempoe;
float tempof;
float dba;//delta's
float dcb;
float ddc;
float dec;
float dfe;
float dda;
float dfd;
float ddb;
float deb;
int a;
int b;
int c;
int d;
int e;
int f;
float vbe;// variavel velocidade
float vbd;
float vdf;
float vad;
float vab;
float vbc;
float ved;
float vde;
float vef;
float vce;
void setup() {
pinMode(A0, INPUT);//definindo como saída
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(A4, INPUT);
pinMode(A5, INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
Serial.begin(9600);//abilita serial monitor
delay(1500);//espera 1,5s para começar loop
tempoa=0;//zera todos os valores das variaveis
tempob=0;
tempoc=0;
tempod=0;
tempoe=0;
tempof=0;
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;
dba=0;
dcb=0;
ddc=0;
dec=0;
dfe=0;
vab=0;
vbc=0;
vce=0;
vef=0;
}
void loop() {
ldr1=analogRead(A0);//leituras das portas
ldr2=analogRead(A1);
ldr3=analogRead(A2);
ldr4=analogRead(A3);
ldr5=analogRead(A4);
ldr6=analogRead(A5);
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
digitalWrite(led6,HIGH);
if(ldr1<500)//se a bola passar tem que ser menor que 250
{
tempoa=millis();//guarda tempo a tempoa
Serial.println(" ");// pula a primeira linha da programçao
delayMicroseconds(10);//espera 10 micro
}
if(ldr2<550)//se a bola passar tem que ser menor que 155
{
tempob=millis();
dba = (tempob - tempoa);
vab = (0.1/dba)*1000;
Serial.println("velocidade b <- a ");
Serial.println(vab,4);
Serial.println(" ");
delayMicroseconds(10);
}
if(ldr3<40)//se a bola passar tem que ser menor que 155
{
tempoc=millis();
dcb = (tempoc - tempob);
vbc = (0.1/dcb)*1000;
Serial.println("velocidade c <- b ");
Serial.println(vbc,4);
Serial.println(" ");
delayMicroseconds(10);
}
if(ldr5<310)//se a bola passar tem que ser menor que 155
{
tempoe=millis();
dec = (tempoe - tempoc);
vce = (0.2/dec)*1000;
Serial.println("velocidade e <- c ");
Serial.println(vce,4);
Serial.println(" ");
delayMicroseconds(10);
}
if(ldr6<610)//se a bola passar tem que ser menor que 155
{
tempof=millis();
dfe = (tempof - tempoe);
vef = (0.1/dfe)*1000;
Serial.println("velocidade f <- e ");
Serial.println(vef,4);
Serial.println(" ");
delayMicroseconds(10);
}
}
Programa para determinação da velocidade de queda das esferas.
Prezados, este programa foi elaborado para a aquisição de dados, os intervalos de tempo. no aparato experimental com o uso do Arduino. O valores que serão expressos no Serial Monitor indicarão as velocidades das esferas.
/* v=s/t
a=v/t
s=s0+vt0+at^2/2
*/
int ldr1;//sensor's
int ldr2;
int ldr3;
int ldr4;
int ldr5;
int ldr6;
int led1=13; //led
int led2=12;
int led3=11;
int led4=10;
int led5=9;
int led6=8;
float tempoa;//tempo's
float tempob;
float tempoc;
float tempod;
float tempoe;
float tempof;
float dba;//delta's
float dcb;
float ddc;
float dec;
float dfe;
float dda;
float dfd;
float ddb;
float deb;
int a;
int b;
int c;
int d;
int e;
int f;
float vbe;// variavel velocidade
float vbd;
float vdf;
float vad;
float vab;
float vbc;
float ved;
float vde;
float vef;
float vce;
void setup() {
pinMode(A0, INPUT);//definindo como saída
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(A4, INPUT);
pinMode(A5, INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
Serial.begin(9600);//abilita serial monitor
delay(1500);//espera 1,5s para começar loop
tempoa=0;//zera todos os valores das variaveis
tempob=0;
tempoc=0;
tempod=0;
tempoe=0;
tempof=0;
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;
dba=0;
dcb=0;
ddc=0;
dec=0;
dfe=0;
vab=0;
vbc=0;
vce=0;
vef=0;
}
void loop() {
ldr1=analogRead(A0);//leituras das portas
ldr2=analogRead(A1);
ldr3=analogRead(A2);
ldr4=analogRead(A3);
ldr5=analogRead(A4);
ldr6=analogRead(A5);
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
digitalWrite(led6,HIGH);
if(ldr1<500)//se a bola passar tem que ser menor que 250
{
tempoa=millis();//guarda tempo a tempoa
Serial.println(" ");// pula a primeira linha da programçao
delayMicroseconds(10);//espera 10 micro
}
if(ldr2<550)//se a bola passar tem que ser menor que 155
{
tempob=millis();
dba = (tempob - tempoa);
vab = (0.1/dba)*1000;
Serial.println("velocidade b <- a ");
Serial.println(vab,4);
Serial.println(" ");
delayMicroseconds(10);
}
if(ldr3<40)//se a bola passar tem que ser menor que 155
{
tempoc=millis();
dcb = (tempoc - tempob);
vbc = (0.1/dcb)*1000;
Serial.println("velocidade c <- b ");
Serial.println(vbc,4);
Serial.println(" ");
delayMicroseconds(10);
}
if(ldr5<310)//se a bola passar tem que ser menor que 155
{
tempoe=millis();
dec = (tempoe - tempoc);
vce = (0.2/dec)*1000;
Serial.println("velocidade e <- c ");
Serial.println(vce,4);
Serial.println(" ");
delayMicroseconds(10);
}
if(ldr6<610)//se a bola passar tem que ser menor que 155
{
tempof=millis();
dfe = (tempof - tempoe);
vef = (0.1/dfe)*1000;
Serial.println("velocidade f <- e ");
Serial.println(vef,4);
Serial.println(" ");
delayMicroseconds(10);
}
}
Assinar:
Postagens (Atom)