Manipulación de Función millis()

Buenas tardes a todos Foro,

Acudo a su ayuda para saber lo siguiente:

Como manipular o escribir el codigo para que la funcion millis(), no me empiece a contar el tiempo a partir de que se enciende mi arduino MEGA2560. Lo que pasa que necesito crear rangos de tiempos pero a partir de oprimir una tecla por teclado(esto para tomar el valor en sensores analogicos, en rangos de tiempos que yo defino).

Ve a documentación y lee los tutoriales que hay al respecto.

Documentación => Indice de temas tutoriales => millis()

Alfredo. La función millis() está basada en un timer interno del Atmega y aunque no la utilices se incrementa sola apenas arranca. En todo caso podés adjudicarle a una variable el valor de millis en el momento que presiones la tecla y a partir de ahí comparar esa variable con millis() en el momento que quieras para saber cuanto tiempo pasó desde el evento. Buscá los tutoriales como te indicó @surbyte para entenderlo mejor.

Hola Pablo_Lucini, Muchas gracias por comentarme eso, me ayudo para poder definir un intervalo de tiempo, asignando a una variable la función millis().

Sin embargo mi propósito es que un usuario pueda meter por el teclado el tiempo y el numero de muestras que desea obtener del sensor. Entonces hasta el momento mi código únicamente permite arrancar y maestrear durante un intervalo de 10 segundos(o el que sea), pero no una cantidad de muestras definidas por teclado.

¡¿Pero como le podría hacer para que mi código detecte cualquier valor del tecleado (de muestras y segundos), lo procese en el código convirtiendo a muestras por segundo y tome esa cantidad de muestras y en ese tiempo.?

De antemano muchas gracias!!.

No vemos código, asi que poco se puede aportar al respecto.
Digamos que para ayudarte y/o guiarte, mucha gente ha hecho consultas por ingresar datos vía teclado. Te aconsejo las busques y uses sus hilos como ayuda.
Ingresar datos por teclado es mas o menos simple de acuerdo a tu nivel de programación.
Se ingresa secuencialmente y se debe ARMAR o reconstruir un número.

Si ingresas 1 y luego 2 para indicar 12 minutos por ejemplo, el primer 1 debe multiplicarse x 10 cuando se detecte un segundo número y ese resultado x 10 con un tercero.
Cuando finalmente presiones por ejemplo # das por finalizado el ingreso de datos.

Es la manera de ingresar números x teclado.

Gracias Surbyte,

Voy a trabajar sobre lo que me dices y revisare otros hilos relacionados con el tema de mi post.

volveré y compartiré la parte de mi código de la parte especifica que aun tenga duda.

Saludos.

Busca arduino calculadora teclado o keypad pero mejor en inglés Arduino keypad calculator

Muchas gracias Surbyte, Gracias a la forma de guiarme, para buscar diferentes consultas.

He resuelto el problema para manipular valores ingresados por teclado (Keypad), el cual surgió a partir de mi POST sobre el uso de la función millis(); la cual de igual forma comprendí sus alcances y lo use en el proyecto que estoy implementando, sin embargo voy a requerir agregar mas elementos y generar código para concluirlo conforme a los objetivos que busco.

Creo que conviene abrir un nuevo tema, lo estaré haciendo.

Saludos Cordiales.

No abras mas temas relacionados. Sigue en este por favor.

Pregunta,

Una rutina llamada por interrupción,puede devolver algún arreglo de valores enteros????

O esta prohibido.

Gracias!!!

Para que una interrupción para hacer tal cosa?
Seguramente no conoces la historia de este tipo de consultas pero es un error de mal programador (yo también lo soy) el llenar un código de delay() y luego cuando se presiona algo esperar que una interrupción resuelva todo lo malo que se ha programado.
Si olvidas el uso de delay() y estoy suponiendo porque no aportas una línea de código, y trabajas con millis() no hay necesidad alguna de que no se reconozca la presión de una tecla y se atienda lo que estas consultando sin usar interrupción.
Ahora bien, se puede hacer lo que pides con una interrupción, si, pero no se bien porque no te has explicado que quieres hacer.

Asi que mejor sería que te expliques con mas detenimiento.

Hola la ultima pregunta que hice quedó solventada .....sin embargo ya no logro resolver es como crear archivos en una SD, nombrados de forma secuencial. E buscado bastante e intentado y lo único que he encontrado es definiendo el nombre del archivo dentro del codigo por ejemplo "test21.txt", pero solo seria un unico archivo y ademas lo tengo que definir dentro de mi codigo de arduino.

void setup() {
  Serial.begin(9600);
  pinMode(pin_lector, OUTPUT);
  char texto[] = "Este es un texto de prueba";
 
  bool val = SD.begin(pin_lector);
 
  if(not val)
    Serial.println("No se ha podido inicializar la tarjeta SD");
 
    else
  {
    archivo = SD.open([b]"test21.txt"[/b], FILE_WRITE); //Abrimos el fichero
      if(not archivo)
      Serial.println("No se ha podido abrir el fichero");
 
    //De lo contrario escribimos el texto
    else
    {
       archivo.println(texto);
       archivo.close(); 
    }
  }
}

Lo que necesito y busco es saber si se podrá de alguna manera no definir explicitamente ese nombre en el codigo y poder generar varios archivos, cada que quiera cambiar otro archivo creando y escribiendo en él lo pueda hacer. El nombre que quiero que contengan esos archivos creados en la SD seria por ejemplo test00001, test00002, test00003, test00004........y así sucesivamente.

En primera seria saber si esto que describo se puede hacer y si es así me pueden dar ideas, por favor.

Moderador:
Post cerrado por doble posteo.
La próxima serás sancionado con tiempo fuera (1 dia) del foro.
Ya te he advertido de esto!.