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.
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;
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.
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.
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.