Quarta semana(24/04-27/04): Etapa final para o desenvolvimento da maquete e do protoboard.
Quinta semana(30/04-04/05): Desenvolvimento inicial do código.
Sexta semana(07/05-11/05): Desenvolvimento intermediário do código, dúvidas sobre o projeto(em sala) e ajustes.
int s0,s1,s2;
int L0=0, L1=0,L2=0, L3=0,L4=0,L5 =0,L6 = 0;
int ledPin = 12,ledPin1 = 13;
int ctl_1 = 0,ctl_2 = 0;
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 LDR5) {
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);
int luz = 100;
if(media > luz ) //LUZ
{
if ((desvio0 < 900) ) {
digitalWrite(ledPin, HIGH);
tone(9,261.626);
}else if ((desvio1 < 700) ) {
digitalWrite(ledPin, HIGH);
tone(9,329.628);
}
else if ((desvio2 < 900) ) {
digitalWrite(ledPin, HIGH);
tone(9,391.995);
}
else if ((desvio3 < 600)) {
digitalWrite(ledPin, HIGH);
tone(9,440);
}
else {
digitalWrite(ledPin, LOW);
tone(9,LOW);
}
}
else
{
if ((desvio0 < 900) ||(desvio2 < 700) ||(desvio1 < 900) ||(desvio3 < 600)) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}
}
void luz(int ldr1,int ldr2){
if(ldr1<200) ctl_1 = (ctl_1+1)%2;
if(ctl_1==0) ctl_2=0;
if(ctl_1==1 &&ldr2<200){
ctl_2 = 1;
}
if( ctl_2 ==1) {
digitalWrite(ledPin1, HIGH);
delay(100);
}
else digitalWrite(ledPin1, LOW);
}
void loop()
{
//Read Value of 4051 analog-in 0 by setting the values of s0,s1 and s2
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(10); //not sure if this delay is strictly necessary
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(A5);
L6 = analogRead(A4);
luz(L5,L6);
comodo(L0,L1,L2,L3,L4,L5);
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);
}
}
Sétima semana(14/05-18/05): Desenvolvimento final do código.
Nenhum comentário:
Postar um comentário