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); } }