ile( i> 0 && i<8) { lcd.setCursor(0,0); LerTecla(); if(i==1){lcd.print(" Entre com Ano ");} if(i==2){lcd.print(" Entre com Mes ");} if(i==3){lcd.print(" Entre com Dia ");} if(i==4){lcd.print(" Entre cm Semana");} if(i==5){lcd.print(" Entre com Hora ");} if(i==6){lcd.print(" Entre com Minut");} if(i==7){lcd.print(" Entre com Segun");} if(UP){acertahora[i]++;estouro = 0;UP = 0;} //alteração custela if (DOWN && acertahora[i] >= 0){acertahora[i]--;estouro = 0; DOWN = 0;} //alteração custela
if (SELECT){i ++;estouro = 0; SELECT = 0;
delay(200);} //alteração custela
if(acertahora[1] < 1 ){acertahora[1] = 13;} if(acertahora[2] > 12){acertahora[2] = 1;}
if(acertahora[2] == 0){acertahora[2] = 12;}
if(acertahora[3] > 31){acertahora[3] = 1;}
if(acertahora[3] == 0){acertahora[3] = 31;}
if(acertahora[4] > 6){acertahora[4] = 0;}
if(acertahora[4] == -1){acertahora[4] = 6;}
if(acertahora[5] > 23){acertahora[5] = 0;}
if(acertahora[5] == -1){acertahora[5] = 23;}
if(acertahora[6] > 59){acertahora[6] = 0;}
if(acertahora[6] == -1){acertahora[6] = 59;}
if(acertahora[7] > 59){acertahora[7] = 0;}
if(acertahora[7] == -1){acertahora[7] = 59;}
lcd.setCursor(9, 1);
lcd.print(acertahora[i], DEC);lcd.print(" ");
if(estouro == 90){ i = 0 ; estouro = 0;}
}
DS1307.setDate(acertahora[1], acertahora[2], acertahora[3], acertahora[4], acertahora[5], acertahora[6], acertahora[7]); // AQUI ENVIAMOS OS DADOS DEFINIDOS PARA O REAL TIME CLOK lcd.clear();
}
Gostaria de implementar essa logica do switch(case) no if(acertahora[4] para ao invés de aparecer os números aparecer os dias da semana conforme case abaixo. Qualquer ajuda sera bem vinda.
//valores case RTC int semana ; // Valores recolhidos
String d_semana; // Para texto LCD
semana == acertahora[4]; //Traduzir valor de dia de semana para texto
switch(semana){
case 1:
d_semana = "DOMINGO";
break;
case 2:
d_semana = "SEGUNDA";
break;
case 3:
d_semana = "TERCA";
break;
case 4:
d_semana = "QUARTA";
break;
case 5:
d_semana = "QUINTA";
break;
case 6:
d_semana = "SEXTA";
break;
case 7:
d_semana = "SABADO";
break;
}…
Olá Carlos
Tiago Struck ja conseguiu 6 , não sei se com o UNO. veja ai...
http://labdegaragem.com/forum/topics/triac-com-arduino?x=1&id=6223006%3ATopic%3A118922&page=5#comments
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);
}
}…
cada vez que eu pressionar um qualquer, um display oled 128x32 mostra o valor. Eu conseguir fazer isso com o trecho do código em anexo, porém, se aperto o botão 1 mostra 1, se aperto botão 2 muda de 1 para 2...etc. Não consigo fazer mostrar uma sequencia, exemplo: 12 ou 145 ou 133 ou 112 ou 12345 ou 15434..etc. Por isso pergunto: Como deveria ficar este código para obter este resultado impedindo digitação de 6 números, ou seja, só pode acumular no display oled no máximo 5 números quaisquer entre 1 e 5 ? grato.
…
Adicionado por Sérgio França ao 16:20 em 30 novembro 2021
tiver segurando o botão e caso se sem querer eu apertar dois botões vai dar algum erro. ainda não tive como testar pois os componentes não chegaram. Minha ideia era apertar o b1 tocar a música 1 e quando acabasse a musica ele estivesse pronto para iniciar qualquer outra dos 5 botões. Poderia me ajudar?
DFPlayer_para_o_iron_man.ino
programação:
#include <SoftwareSerial.h>#include <DFPlayer_Mini_Mp3.h>
SoftwareSerial mySerial(10, 11); // RX, TX
// botões cada botão aciona um áudioint b1 = 1;int b2 = 2;int b3 = 3;int b4 = 4;int b5 = 5;
//void setup () { Serial.begin (9600); mySerial.begin (9600); mp3_set_serial (mySerial); //set softwareSerial for DFPlayer-mini mp3 module mp3_set_volume (15);}
//void loop () { if ( b1 == 1) { mp3_play (1);} if (b2 == 1 ){ mp3_play (2); } if( b3 == 1) { mp3_play (3); } if (b4 == 1 ){ mp3_play (4); } if (b5 == 1 ){ mp3_play (5); } }…
1 volt, no caso, quando fosse aumentando esse potenciômetro, permanecendo a entrada em 1 volt, o resultado seria alterado equivalente a 5..6..7 PPM, o mesmo aconteceria com o segundo potenciômetro referente ao valor máximo.
acho que seria algo como faixas mínima e máxima que se modifica quando giramos os potenciômetro.…