Nona semana(28/05-01/06): Aprimoramento final da maquete e do código.
Código :
Código :
int s0,s1,s2;
int L0=0, L1=0,L2=0, L3=0,L4=0,L5 =0,L6 = 0;
int ledPin = 1,ledPin1 = 13,ledPin2 = 12;
int ctl_1 = 0,ctl_2 = 0;
int A=0;
int calibL4 = 400, calibL5=200,calibL6=300;//valores de base para sensores da porta
int calibD0=1000,calibD1=800, calibD2=800,calibD3=600;//valores de base para disparo de sensores da parede
void setup()
{
//4051 digital control pins
pinMode(8, OUTPUT); // s0
pinMode(9, OUTPUT); // s1
pinMode(10, OUTPUT); // s2
Serial.begin(9600);
}
int binario(int n, int b){
int r[3],a[3];
int m10=1;
int z=0;
int q=n,c=2;
for(int i=0;i<3;i++) r[i] = 0;
do{
r[c] = q%2;
q = q /2;
z = (r[c]*m10)+z;
m10 = m10 * 10;
c = c - 1;
}while(q!= 0);
return (r[b]);
}
void comodo(float LDR0,float LDR1,float LDR2,float LDR3,float LDR4, float LDR6) {
int media, desvio0, desvio1, desvio2, desvio3,desvio4;
media = (LDR0 + LDR1 + LDR2 + LDR3)/4;
Serial.print(" ");
Serial.print(" media: ");
Serial.print(media);
desvio0 = (LDR0/media)*1000;
desvio1 = (LDR1/media)*1000;
desvio2 = (LDR2/media)*1000;
desvio3 = (LDR3/media)*1000;
desvio4 = (LDR4/media)*1000;
Serial.print(" ");
Serial.print(" D0: ");
Serial.print(desvio0);
Serial.print(" D1: ");
Serial.print(desvio1);
Serial.print(" D2: ");
Serial.print(desvio2);
Serial.print(" D3: ");
Serial.print(desvio3);
if ((desvio0 < calibD0) ) {
digitalWrite(ledPin, HIGH);
tone(5,261.626);
}else if ((desvio1 < calibD1) ) {
digitalWrite(ledPin, HIGH);
tone(5,329.628);
}
else if ((desvio2 < calibD2) ) {
digitalWrite(ledPin, HIGH);
tone(5,391.995);
}
else if ((desvio3 < calibD3)) {
digitalWrite(ledPin, HIGH);
tone(5,440);
}else if(LDR6<calibL6){
tone(5,220);
tone(5,440);
}
else {
digitalWrite(ledPin, LOW);
tone(5,LOW);
}
}
int luz(int a){
int n1,n2,c1,c2;
////////////////////
if (a==0){
n1 = analogRead(A4); //le L5
if(n1<calibL5){
c1= 1;
}
if(c1==1){
n2 = analogRead(A5);//le L6
if(n2<calibL6){
c2 =1;
}else c2 = 0;
if (c2 == 1){
digitalWrite(ledPin1, HIGH); //ascende a luz
digitalWrite(ledPin, HIGH); //ascende a luz
c2=0;
c1 = 0;
a=1;
}
}
}
/////////////
if(a==1){
n2 = analogRead(A5);//le L6
if(n2<calibL6){
c2= 1;
}
if(c2==1){
//c2=0;
n1 = analogRead(A4); //le L5
if(n1<calibL5){
c1 =1;
}else c1=0;
if (c1 == 1){
digitalWrite(ledPin1, LOW);//desliga a luz
digitalWrite(ledPin, LOW);//desliga a luz
c1=0;
c2=0;
a=0;
}
}
}
/////////
return a;
}
void loop()
{
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
int readInZero = analogRead(0); // read the input pin
//Serial.print(readInZero); //use the result
for(int j=0; j<=7;j++){
s0 = binario(j,0);
s1 = binario(j,1);
s2 = binario(j,2);
digitalWrite(8, s0);//s0
digitalWrite(9, s1);//s1
digitalWrite(10, s2);//s2
int readInTwo= analogRead(0);
switch(j){
case 0:
L0 = readInTwo;
break;
case 4:
L1 = readInTwo;
break;
case 2:
L2 = readInTwo;
break;
case 6:
L3 = readInTwo;
break;
default:
break;
}
L4 = analogRead(A3);
L5 = analogRead(A4);//n1
L6 = analogRead(A5);//n2
if(L4<calibL4){
A = luz(A);
}
comodo(L0,L1,L2,L3,L4,L6);//controla sinais sonoros no comodo
Serial.print("\n L0 ");
Serial.print(L0);
Serial.print(" L1 ");
Serial.print(L1);
Serial.print(" L2 ");
Serial.print(L2);
Serial.print(" L3 ");
Serial.print(L3);
Serial.print(" L4 ");
Serial.print(L4);
Serial.print(" L5 ");
Serial.print(L5);
Serial.print(" L6 ");
Serial.print(L6);
}
}
//luz
//som
Nenhum comentário:
Postar um comentário