¡Holaa!
Verán, tengo este proyecto entre manos que trata de transformar el movimiento rotacional de un motor en uno lineal (usando el mecanismo biela-manivela) y de esa manera perturbar la superficie del agua (de una fuente de vidrio por debajo del motor) y crear ondas . Esa sería la explicación básica, ahora ¿Qué debo programar en arduino? esto adicionalmente lleva un potenciómetro (que regula la velocidad de giro del motor), una pantalla lcd 16x2 (también lleva un pote para regular el brillo) que muestra la frecuencia de las ondas generadas, un foco led por arriba de la fuente de agua (funcionando como estroboscopio) que parpadea de tal forma que por debajo la silueta de las ondas se ve detenida y por último un optoacoplador de encapsulado ranurado para medir las rps del motor y poder sacar frec.
El problema más grande que tengo es que soy un novato puro (no sé casi nada, para ser mas claro) en esto de programar arduino y aunque hago todo lo que puedo, eso no alcanza. En fin, necesito de su bella ayuda.
Programación:
Quería usar la función attachInterrupt para hacer que los leds parpadearan al cambio de estado del pin 2, pero no se bien como hacerlo... ah, y no estoy seguro si la parte de control de velocidad del motor esté bien.
Estoy simulándolo con Proteus ISIS.
Verán, tengo este proyecto entre manos que trata de transformar el movimiento rotacional de un motor en uno lineal (usando el mecanismo biela-manivela) y de esa manera perturbar la superficie del agua (de una fuente de vidrio por debajo del motor) y crear ondas . Esa sería la explicación básica, ahora ¿Qué debo programar en arduino? esto adicionalmente lleva un potenciómetro (que regula la velocidad de giro del motor), una pantalla lcd 16x2 (también lleva un pote para regular el brillo) que muestra la frecuencia de las ondas generadas, un foco led por arriba de la fuente de agua (funcionando como estroboscopio) que parpadea de tal forma que por debajo la silueta de las ondas se ve detenida y por último un optoacoplador de encapsulado ranurado para medir las rps del motor y poder sacar frec.
El problema más grande que tengo es que soy un novato puro (no sé casi nada, para ser mas claro) en esto de programar arduino y aunque hago todo lo que puedo, eso no alcanza. En fin, necesito de su bella ayuda.
Programación:
C++:
#include <LiquidCrystal.h>
LiquidCrystal lcd (10, 11, 5, 4, 3, 13);
int estrobo = 6; //Luz led
int pulso = 12; //para utilizar el pulseIn
float Pulso1;//para calcular pulso de bajada y de subida
float Pulso2;
float Tiempo = 0;
float Frecuencia = 0;
int mot = 0;
const int motvel = A5;
int luz = 2; //para attachInterrupt - parpadeo luz
float cvel; // control de velocidad del motor
void setup()
{
Serial.begin (57900);
pinMode (mot, OUTPUT);
pinMode (luz, INPUT);
pinMode(estrobo, OUTPUT);
lcd.begin(16, 2);
lcd.clear();
lcd.print("Bienvenido");
delay(1000);
lcd.clear ();
}
void loop() {
Pulso1 = pulseIn (pulso, HIGH);
Pulso2 = pulseIn (pulso, LOW);
Tiempo = (Pulso1 + Pulso2) / 1000000;
Frecuencia = 1/ Tiempo;
lcd.setCursor(0, 0);
lcd.print ("FRECUENCIA= ");
cvel = analogRead(motvel)/4;
analogWrite (mot,cvel);
lcd.setCursor(0, 1);
lcd.print (Frecuencia);
delay (100);
}
Estoy simulándolo con Proteus ISIS.