Ir ao conteúdo
  • Cadastre-se

LuizCampos9

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

2
  1. Estou usando o Dev C++ 5.4.0 para fazer um projeto da faculdade. Num menu o usuário escolhe qual sequencia de iluminação de cômodos de uma maquete quer e o prg manda para o arduino qual porta deve ativar, sendo que cada uma é um comodo. Registra tempo inicial e final, calcula a diferença e precisa gravar num arquivo comodo + tempo, para depois totalizar por comodo na saída do prg. Acho que consegui construir a lógica, mais o problema é a "passagem do comando" entre PC - Arduino _ PC - Arduino - PC, etc.. Também precisava trazer a biblioteca do arduino para o C++, pois o compilador não reconhece os valores HIGH e LOW, parâmetros das funções digitalwrite. Se alguém tiver ideias agradeço. O código //Controle de Iluminação de uma Casa #include <stdio.h> #include <locale.h> #include <string.h> #include <time.h> //#include <NewSoftSerial.h> //#include <stream.h> Não consigo achar na internet, a anterior cita esta FILE * Registro; // Ponteiro para início do arquivo time_t Tinicial, Tfinal; struct tm * TempoLuz; typedef struct Registro { int Comregistro; double TLuz; } Regitro; int G = 2; // G Garagem Porta2 int S = 3; // S Sala Porta3 int Co = 4; // Co Cozinha Porta4 int Ba = 5; // Ba Banheiro Porta5 int Q1 = 6; // Q1 Quarto1 Porta6 int Q2 = 7; // Q2 Quarto2 Porta7 int Qi = 8; // Qi Quintal Porta8 int Tempo; // Parâmetro de tempo para função acender int Op; // Opção para usuário escolher quais cômodos serão acesos int Com; // Cômodo que será aceso. float SG,SS,SCo,SBa,SQ1,SQ2,Sqi; // Função para acender int acende (int Com,int Tempo) { time(&Tinicial); // Pega tempo inicial digitalWrite(Com,HIGH); delay(Tempo); time(Tfinal); // Pega tempo final Registro.Comregistro = Com; // Grava comodo e tempo em seg acesos Registro.TLuz = difftime(Tfinal,Tinicial); return 0; } // Função para apagar void apaga(int Com,Tempo) { digitalWrite(Com,LOW); delay(Tempo); } int main() { setlocale(LC_ALL, "Portuguese"); // Para usar acentuação Registro = fopen("Registros.txt","w"); do { printf("OPÇÕES DE ILUMINAÇÃO:\n"); printf("1 – Acende Tudo (100').\n"); printf("2 – Apaga Tudo. \n"); printf("3 - Acende Garagem (100'), Acende Sala (1000').\n"); printf("4 - Sequencia1 – Acende Sala (50'), Acende Cozinha (100'), Acende Banheiro (100'), Acende Quarto1 (300').\n"); printf("5 - Sequencia2 – Acende Sala (50'), Acende Cozinha (100'), Acende Banheiro (100'), Acende Quarto2 (300').\n"); printf("6 – Sair e gerar relatórios. \n"); printf(" Digite a opção desejada: \n"); scanf("%d",&Op); switch (Op) { case 1: { acende(G,100000); acende(S,100000); acende(Co,100000); acende(Ba,100000); acende(Q1,100000); acende(Q2,100000); acende(Qi,100000); break; } case 2: { apaga(G,100000); apaga(S,100000); apaga(Co,100000); apaga(Ba,100000); apaga(Q1,100000); apaga(Q2,100000); apaga(Qi,100000); break; } case 3: { acende(G,10); acende(S,1000000); break; } case 4: { acende(S,50000); acende(Co,100000); acende(Ba,100000); acende(Q1,100000); break; } case 5: { acende(S,50000); acende(Co,100000); acende(Ba,100000); acende(Q2,100000); break; } case 6: { break; } default: printf(" Opção Inválida. Digite uma opção de 1 a 6. \n"); } while (Opcao==6); } fclose(Registro)) } SG=0;SS=0;Sco=0;SQ1=0;SQ2=0;SQi=0; // Inicializa acumuladores de tempo dos cômodos com 0 if((Registro = fopen("Registro.txt","r")) == NULL) { puts("Não foi possivel abrir o arquivo"); } while (!feo(Registro)) // Enquanto houver registros, leia switch (Com) { case Com 2: { SG = SG + Registro.TLuz; Break; } case Com 3: { SS = SS + Registro.TLuz; Break; } case Com 4: { SCo = SCo + Registro.TLuz; Break; } case Com 5: { SBa = SBa + Registro.TLuz; Break; } case Com 6: { SQ1 = SQ1 + Registro.TLuz; Break; } case Com 7: { SQ2 = SQ2 + Registro.TLuz; Break; } case Com 8: { SQiG = SQi + Registro.TLuz; Break; } } printf("O comodo Garagem ficou aceso durante &f segundos.\n",SG ); printf("O comodo Sala ficou aceso durante &f segundos.\n",SS ); printf("O comodo Cozinha ficou aceso durante &f segundos.\n",SCo); printf("O comodo Banheiro ficou aceso durante &f segundos.\n",SBa); printf("O comodo Quarto1 ficou aceso durante &f segundos.\n",SQ1); printf("O comodo Quarto2 ficou aceso durante &f segundos.\n",SQ2); printf("O comodo Quintal ficou aceso durante &f segundos.\n",SQi); return 0; } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...