Informática, perguntado por gustacooo, 6 meses atrás

Em linguagem c

Faça um programa que simule um sensor analógico do Arduino, utilizando número aleatório
(valores de 0 a 1023) para simular as leituras de um sensor de temperatura.
a) O programa deve ficar em loop lendo os valores do sensor, até que o usuário digitar uma teclar
para finalizar ou letra (escolha do grupo).
OBS: Não criar menu...
b) Cada número aleatório gerado dentro do laço deve ser convertido utilizando a fórmula:
resultado = (S * 500)/1023, onde S é o sinal do sensor (número gerado)
c) Se o resultado for maior que 60 o programa deve armazenar em um arquivo-texto a data e
hora do sistema e o valor da variável resultado.
d) Quando o usuário digitar a tecla escolhida para finalizar, o arquivo deve ser fechado e o
programa finalizado.

Soluções para a tarefa

Respondido por polentone007
1

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <conio.h>

int temps_;

int fptr;

FILE *fp;

void pausa(int n_segundos){   // causa um delay na execucao do loop  

   

   int milli = 1000 * n_segundos;

   clock_t start_time = clock();

   while (clock() < start_time + milli);

       

}

int Temps () {              // Calcula a temperatura e armazena em um arquivo

 

time_t current_time;

   char* c_time_string;

   current_time = time(NULL);

   c_time_string = ctime(&current_time);

   

int Random = rand() % 1023;  // Gera os números de 0 a 1023

int temps_ = (Random*500)/1023; // Faz a conta da função

printf("Temp:%d\n",temps_);

FILE *fp; // Abre o arquivo

   fp = fopen("temperatura.txt", "a"); // Da o nome e o tipo ao ponteiro

   

 if(temps_>=60){ // Checa se a temperatura é maior que 60

     fprintf(fp, "Temperatura: %d Data: %s\n", temps_, c_time_string); //Iimprime a temperatura e a data no arquivo

 }

 

}

int main () {

 

 

srand(time(NULL)); // Faz os valores da rand() oscilarem

 

 

 for(; ; ){ // Loop infinito

 

 pausa(1);  // Delay de 1 segundo

   

 Temps();   // Chamada da função Temps

 

 if(kbhit()){  // Quando qualquer tecla for pressionada o loop quebra, funcao da conio.h

  break;

 }

     

}

fclose(fp); // fecha o arquivo

}


polentone007: Qualquer dúvida só mandar aqui
gustacooo: Olá, primeiramente obrigado. E como faço para determinar uma letra em especifico para a quebra do loop?
polentone007: você pode usar a função getch()
polentone007: primeiramente você declara um char saída e diz que o valor de é entre aspas simples a letra que você quer
polentone007: posso fazer uma edição na resposta com essa funcionalidade, qual letra você quer que cancele?
gustacooo: pode ser a letra C
Perguntas interessantes