Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

21/05/2016 #1


¿Como contar pulsos en un tiempo definido en arduino?
Mi problema es el siguiente:
Necesito realizar un contador de pulsos eléctricos en un tiempo definido, he leido que se puede utilizar la función millis() para ejecutar dicho programa en arduino. Pero no logro entenderlo. Quizas alguien con mas experiencia en este ámbito, puede colaborar se los agradeceria demasiado. ...
21/05/2016 #2
Moderador general

Avatar de DOSMETROS

Bienvenido.

Debes subir lo que llevas hecho hasta ahora para poder recibir ayuda

¿Cómo subo imágenes y archivos?
21/05/2016 #3

Avatar de Dan2013

Puedes usar una interrupcion en tu codigo. Puedes leer mas del tema en: http://www.prometec.net/interrupciones/

Para simplificarlo con la funciones de interrupcion puedes ller los flancos de los pulsos que quieras contar. Seria bueno que subieras el circuito como dice DOSMETROS.

Saludos
21/05/2016 #4


Hace unos días tenía la misma pregunta, he realizado un código que me ha funcionado para hacer el conteo de pulsos en un tiempo determinado mediante interrupciones y la función millis(), pero tengo unos problemas, cuando imprimo en la LCD y se hace el conteo de los pulsos se reescriben los valores del conteo encima del anterior.
Es decir, si cuenta 1, el dos se reescribe encima.

Me gustaría saber cómo actualizo los valores para que no se reescriban.
No sé si me entienden.

Aquí dejo el código.
Código PHP:
#include <LiquidCrystal.h>

LiquidCrystal lcd(7891011 12);// Declaracion de los pines de la LCD

int boton1 2;
int p 0;
int estant 0;
long temp6000// Tiempo asignado.
long cuentatiempo 0;
unsigned long tiempo;

void setup() {
  
    
pinMode(boton1INPUT); // Declaracion del pin 2 como entrada
    
    
Serial.begin(9600); 
    
lcd.begin(162);
    
    
lcd.setCursor(0,0);
    
lcd.print("Contador de pulsos");
      
delay(2000);
      
    
lcd.noAutoscroll();
    
    
lcd.setCursor(0,1);
    
lcd.print("Nicaragua");
      
delay(2000); 
    
lcd.clear(); 
 
  
    
   
attachInterrupt(0funcionInterrupcionRISING);
 
   
cuentatiempo=millis()+temp;
   
}
void funcionInterrupcion()
{
  
p++; // voy sumando los pulsos
  
lcd.setCursor(9,0);
  
lcd.print(p); //Imprime los pulsos que se cuentan
   
delay(500);
}

void loop() 
{
  
   
lcd.setCursor(0,0);
   
lcd.print("Pulsos: ");
   if (
millis()>cuentatiempo//compruebo si ha transcurrido el tiempo prefijado
   
{
      if(
p>=&& p<=5){
    
lcd.setCursor(0,1);
    
lcd.print("Pulso lento");
  
   }
   if(
p>=&& p<=10){
     
lcd.setCursor(0,1);
     
lcd.print("Pulso medio");
 
   }
   if(
p>10){
     
lcd.setCursor(0,1);
     
lcd.print("Pulso Rapido");
   } 
  
 
p=0
 
cuentatiempo=millis()+temp//Reinicio cuentatiempo
}
 

Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Arduino y Raspberry Pi

Cerrar
Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.