esponsável por guardar o tempo escolhido. Como exemplo, vamos chamar essa variável de 'tempo'. Crie a variável tempo com valor inicial igual a 0 e em cada botão de seleção de tempo você define um novo valor para essa variável. Por exemplo
if (Botao < 200 && Botao >= 99) { lcd.clear(); lcd.setCursor(5, 0); lcd.print("Tempo"); lcd.setCursor(2, 1); lcd.print("2 Segundos");
tempo = 2;
}
if (Botao < 99) { lcd.clear(); lcd.setCursor(5, 0); lcd.print("Tempo"); lcd.setCursor(2, 1); lcd.print("5 Segundos");
tempo = 5;
}
E dentro do IF do Bota < 800 você usa um FOR indo de 1 até o valor da variável tempo, e na condição do IF você verifica se a variável tempo é maior que 0. Dessa forma
if(Botao < 800 && Bota > 400 && tempo > 0){
for(int i=1; i<=tempo; i++){
lcd.clear(); lcd.setCursor(7, 1); lcd.print(i); delay(1000);
}
}…
2 programas de irrigação e o arduino nao esta realizando mais o processo. Para que nao fosse necessário usar delays eu estou calculando o tempo de ligar e desligar os setores e a bomba e deixando uma quantidade bem grande de if's para conferir as condições. Acho que pode ser nisso o problema:
O codigo esta muito grande, vou deixar ele em anexo mas vou citar o trecho que acredito ser o problema
void Bomba()//Tempo que a bomba ficará ligada{ delay(1000); while(tBomba >=1) { lcd.clear();lcd.setCursor(0,0);lcd.print("Tempo ");lcd.print(tBomba);lcd.print(" minutos"); lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(7,1);lcd.print("(-)");lcd.setCursor(12,1);lcd.print("(+)"); delay(120); if(tBomba>60){tBomba=1;} if(digitalRead(bUp)==LOW){delay(70);tBomba++;} if(digitalRead(bDown)==LOW){delay(70);tBomba--;} if(digitalRead(bEnter)==LOW){delay(70);tB=tBomba;menu=0;tBomba=0;} if(digitalRead(bMode)==LOW){menu=0;tBomba=0;} //Vetores recebem horas e minutos e converte para minutos //Calculo Programa 1//Depois acrescenta o valor do tempo de bomba(tB)//Operação desliga bomba e valvula 4 //Retorna os valores para os vetores com o horario de desligar//Exemplo: Programa 1 - 6:30 com tempo de bomba 10min//Em minutos (6*60)+30+10=400minutos//Tranformando para desligar hora=400/60=6 e minuto=400%60=40
if(h[2]!=0 && h[1]!=0 && h[30]==0 && tB!=0){ h[34]=h[2];h[33]=h[1]; h[34]=h[34]*60;h[34]=h[34]+h[33]+(4*tB);h[33]=h[34]%60;h[34]=h[34]/60; h[8]=h[2];h[7]=h[1]; h[8]=h[8]*60;h[8]=h[8]+h[7]+tB;h[7]=h[8]%60;h[8]=h[8]/60;//1 tempo(desliga 1 e liga 2) h[10]=h[2];h[9]=h[1]; h[10]=h[10]*60;h[10]=h[10]+h[9]+(2*tB);h[9]=h[10]%60;h[10]=h[10]/60;//2 tempo(desliga 2 e liga 3) h[12]=h[2];h[11]=h[1]; h[12]=h[12]*60;h[12]=h[12]+h[11]+(3*tB);h[11]=h[12]%60;h[12]=h[12]/60;//3 tempo(desliga 3 e liga 4) //Calculo Programa 2 if(h[4]!=0 && h[3]!=0 && h[31]==0){ h[14]=h[4];h[15]=h[3]; h[14]=h[14]*60;h[14]=h[14]+h[15]+(4*tB);h[15]=h[14]%60;h[14]=h[14]/60;//Operação Desliga bomba e valvula 4 h[16]=h[4];h[17]=h[3]; h[16]=h[16]*60;h[16]=h[16]+h[17]+tB;h[17]=h[16]%60;h[16]=h[16]/60;//1 tempo(desliga 1 e liga 2) h[18]=h[4];h[19]=h[3]; h[18]=h[18]*60;h[18]=h[18]+h[19]+(2*tB);h[19]=h[18]%60;h[18]=h[18]/60;//2 tempo(desliga 2 e liga 3) h[20]=h[4];h[21]=h[3]; h[20]=h[20]*60;h[20]=h[20]+h[21]+(3*tB);h[21]=h[20]%60;h[20]=h[20]/60;//3 tempo(desliga 3 e liga 4) h[31]=1; //Calculo Programa 3 if(h[6]!=0 && h[5]!=0 && h[32]==0){ h[22]=h[6];h[23]=h[5]; h[22]=h[22]*60;h[22]=h[22]+h[23]+(4*tB);h[23]=h[22]%60;h[22]=h[22]/60;//Operação Desliga bomba e valvula 4 h[24]=h[6];h[25]=h[5]; h[24]=h[24]*60;h[24]=h[24]+h[25]+tB;h[25]=h[24]%60;h[24]=h[24]/60;//1 tempo(desliga 1 e liga 2) h[26]=h[6];h[27]=h[5]; h[26]=h[26]*60;h[26]=h[26]+h[27]+(2*tB);h[27]=h[26]%60;h[26]=h[26]/60;//2 tempo(desliga 2 e liga 3) h[28]=h[6];h[29]=h[5]; h[28]=h[28]*60;h[28]=h[28]+h[29]+(3*tB);h[29]=h[28]%60;h[28]=h[28]/60;//3 tempo(desliga 3 e liga 4) h[32]=1; } }//Fim if Programa 2 h[30]=1;tempo=1; }//Fim if Programa 1 }//Fim While}
if(d[0]=1){//Se apção todos os dias for selecionada //Horarios Para Programa 1 if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);delay(70);}//Liga bomba e valvula 1 if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);delay(70);}//Desliga Valvula 1 e liga Valvula 2 if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);delay(70);}//Desliga Valvula 2 e liga Valvula 3 if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);delay(70);}//Desliga Valvula 3 e liga Valvula 4 if(h[34]==RTCValues[4] && h[33]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);delay(70);}//Desliga bomba e desliga Valvula 4 //Horarios Para Programa 2 if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1 if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2 if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3 if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4 if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4 //Horarios Para Programa 3 if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1 if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2 if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3 if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4 if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4 }
As variaveis h[1]...h[6] Recebem os horarios de irrigação. Impares minutos e Pares horas…
3). Baixa ondulação e baixo ruído
4). Função de saída de sobrecarga proteção contra curto-circuito
5). Alta eficiência e densidade de potência
6). Design de produto para atender a requisitos de teste EMC e segurança
7). Baixo consumo de energia, proteção ambiental verde, sem carga perda <0,1 W 8). 100% teste de carga 9). Satisfazer as exigências da UL, CE, 2. Condições ambientais 1). Temperatura de trabalho:-20-+ 60 Celsius 2). Temperatura de armazenamento:-40-+ 80 Celsius 3). Umidade relativa: 5-95% 4). Resfriamento: resfriamento natural 5). Pressão atmosférica: 80-106 kPa 6). Altitude: ≤2000m 7). Vibração: coeficiente de vibração 10 ~ 500 Hz, 2G10min/1 ciclo, 60min. Cada eixo X, Y, Z. 3. Características elétricas (à temperatura ambiente de teste) 1). Tensão nominal de entrada: 100-240 VAC 2). Faixa de tensão de entrada: 90-264VAC 3). Corrente de entrada máxima: ≤0. 2A 4). Pico de corrente de entrada: ≤10A 5). Tensão máxima de entrada: ≤270vac 6). Digite início lento: ≤50ms 7). Entrada de baixa tensão Eficiência: Vin = 110VAC, a plena carga ≥69% 8). Eficiência de entrada de alta tensão: Vin = 220VAC, a plena carga ≥70% 9). Confiabilidade a longo prazo: mtbf≥100, 000 h 10). Carga nominal tensão de saída: + 5 ± 0.1VDc 11). Completa Tensão nominal de saída: + 5 ± 0.2vdc 12). Corrente máxima de saída de curto prazo: ≥1000ma 13). Corrente de saída máxima por um longo tempo: ≥600ma 14). Regulação de tensão: ± 0,2% 15). Carga regulação: ± 0,5% 16). Saída Ripple e ruído (MVP-p): ≤50 17). Mudar Overshoot amplitude: (Tensão nominal de entrada, saída de carga mais 10%) ≤5% VO 18). Saída proteção contra sobrecorrente: carga máxima de saída de 150-200% um pelo preço de R$20,00 + frete. esses valores de ruidos e outras características estão boas? desde de já agradeço!…
statuB1 = 0; //armazena estado do botão ligado ou desligado do botão1int statuB2 = 0; // armazena estado do botão ligado ou desligado do botão 2
int estado = 1;void setup (){ Serial.begin(9600); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(Bled1, INPUT); pinMode(Bled2, INPUT);}void loop(){ int potenciometro = analogRead(A5); statuB1=digitalRead(Bled1); statuB2=digitalRead(Bled2);
if ((statuB1) && estado != 1)
{
estado=1;
}
else
if ((statuB1) && estado != 2)
{
estado=2;
}
if (estado==1) { analogWrite(led1,potenciometro/4); }
else if (estado==2) { analogWrite(led2,potenciometro/4); }}…
Adicionado por Mauro Assis ao 10:28 em 25 abril 2013