Ayuda con contador de pulsos

uen dia,

Quisiera pedir ayuda para lograr un proyecto que tengo en mente con Arduino.
El tema es que estoy aprendiendo con tutoriales de internet, libros y demas.

El proyecto que quiero hacer es un contador de pulsos que encienda unos LEDs y un boton de reset.

La cuestion es que ya empece a experimentar pero no he podido seguir adelante.

Ya eh investigado lo basico de arduino, variables y funciones.

Ahora lo que quiero lograr es hacer un contador que llegue a 100 y active ( o desactive) un relevador, pero con un boton de reset, osea que si no llega a los 100 se pueda desactivar la cuenta.

Alguien que me pudiera asesorar paso a paso y que yo lo vaya escribiendo para entenderlo mejor seria lo mas apropiado para mi.

Empieza por definir de dónde vas a leer/contar los pulsos, ¿de una entrada digital?. Si es así, ¿con qué dispositivo los vas a generar?¿qué frecuencia tiene?
Si esta es la idea, debes detectar los cambios de estado (por ejemplo, sólo contar en cada cambio de LOW a HIGH) y en caso de producirse incrementar el contador.
El proyecto parece sencillo.

Saludos,

Juanjo

No tomes a mal este comentario porque no tiene mala intención.
Si luego que dices haber leido libros, tutoriales, etc, preguntas por como hacer un contador, estas en problemas.
Te recomiendo que vayas a Documentación y sigas los tutoriales en Youtube que estan al comienzo.
Te serán muy útiles y mucho mas didácticos que cualquier cosa que hayas visto o leído.
Luego de verlos y practicarlos, analiza tu problema y verás que facil lo resuelves.

Pues en un principio colocare un pulsador y mas adelante pienso colocar un sensor ya sea magnetico, hall o fotocelula.

El caso es que tengo un torno algo viejito y quisiera actualizarlo un poco y de paso eseñarme algunas cosas de arduino. Y con el giro del porta piezas quisiera hacerle un contador de vueltas (no RPM) para saber cuantos giros necesito para ciertos trabajos.

empece con un codigo de dos botones algo basico, donde apenas estoy entendiendo el if/else:

//pratica de dos switches uno enciende otro apaga
int ledPin = 13;
int inputPin1 = 2; // pulsador 1
int inputPin2 = 3; // pulsador 2
int p1;
int p2;

void setup() {

pinMode(ledPin, OUTPUT);
pinMode(inputPin1, INPUT);
pinMode(inputPin2, INPUT); }

void loop(){

p1=digitalRead(inputPin1);
p2=digitalRead(inputPin2);
if (p1 == HIGH) { digitalWrite(ledPin, HIGH); }
else if (p2 == HIGH) { digitalWrite(ledPin, LOW); }

}

Despues continuare agregando el sensor y los reles, solo que esos estan en el correo y falta tiempo a que lleguen. Y ya si la cabeza me da para mas agregare un display y tratare de hacer una seleccion para 100, 200, 300 vueltas.

jjpd00:
Empieza por definir de dónde vas a leer/contar los pulsos, ¿de una entrada digital?. Si es así, ¿con qué dispositivo los vas a generar?¿qué frecuencia tiene?
Si esta es la idea, debes detectar los cambios de estado (por ejemplo, sólo contar en cada cambio de LOW a HIGH) y en caso de producirse incrementar el contador.
El proyecto parece sencillo.

Saludos,

Juanjo

Mirate este enlace Cómo leer las revoluciones de un ventilador con Arduino - BricoGeek.com creo que es lo que estás buscando.
Para implementarlo en tu torno sólo necesitas conectarle el sensor de vueltas a la entrada del arduino.

Saludos,

Juanjo

Creo que definitivamente tendre que esperar a que lleguen los sensores que encargue, para poder experimentar rapidamente.

Otra duda rapida, puedo hacer que un solo boton accione diferentes salidas?

por ejemplo, al presionar el boton que me encienda dos leds en diferentes pines de salida?

Puedes emular el sensor colocándole un botón por ejemplo.

En cuanto a activar varias salidas con un botón la respuesta es si . El método más simple quizás sea este

if (digitalRead(pinBoton)==HIGH){
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,HIGH);
}

Se ejecutará mientras se mantenga pulsado el botón

Estos días se ha estado debatiendo un caso algo mas complejo con dos botones en este hilo

http://forum.arduino.cc/index.php?topic=373647.0

Saludos,

Juanjo

Bien ya aplique lo aprendido y parece que si esta funcionando, ahora tengo otra duda:

Como puedo hacer que el contador de pulsos comience a funcionar?

Por ejemplo, mi torno empieza a girar desde el inicio?

Solo quiero contar algunas vueltas despues de encenderlo, osea que yo lo active cuando necesite contarlas, no desde que arranca

Usarás un sensor magnético para contar cada revolución?
Bueno puedes ser de otro tipo como un sensor óptico reflexivo.
De todas maneras es lo mismo.
Leerás un pulso por cada revolución.
Mas alla del sensor una manera fácil sería que usaras una interrupción (pin 2 o pin 3 del UNO por ejemplo).
Una interrupción es un recurso de hardware que te permite leer señales de cualquier velocidad (permítanme la expresión) y que puedes configurar por ejemplo para que se active con un flanco 0 a 1 o un flanco 1 a 0 mas otros posibilidades que ahora no vienen al caso.
De ese modo suponiendo que tu sensor cambiara de 0 a 1 cuando el elemento que rota pasa por la posición del sensor, y si tienes habilitado la cuenta, este comenzaría a contar vueltas.

Tu pulsador habilitaría un flag, una variable bool que sirve para decirle si el contador de la interrupción debe o no incrementarse.
Si lo presionas una vez, se pone en 1 y habilita y con cada giro acumula una vuelta. Si lo vuelves a presionar, detiene el contador, lo muestra y resetea por ejemplo.

Te parece un enfoque de este tipo?

Eso quiere decir que puede dar vueltas sin incrementar la cuenta?

Ya despues lo activo con una variable?

Ahora vengo voy a investigar esos nuevos datos

Si no te malentendí, quieres que comience a contar cuando presiones un pulsador o no es asi?, Digamos que tu pulsador es como el que indica, comienza a contar a partir de este momento.
Supongo que quieres hacer roscas con el torno pero, imaginemos que fuera asi.
Estas listo para hacer la rosca y ya tienes la pieza lista para iniciar la rosca. Entonces con todo listo, arrancas el pulsador y el torno iniciar la rosca, y tu arduino cuenta las vueltas. Si fuera el caso podrias también determinar un limite y cuando se cumplan p.ej 20 vueltas detenga el torno.
Dime si es algo de este tipo ?
De todos modos no afecta lo que te he sugerido antes.

Asi es, es correcto.

Sirve para otras tantas cosas mas como principio basico