Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

ayuda con estructura case

Hola a todos, tengo el siguiente problema, tengo un sensor conectado a un arduino y quiero que cuando me detecte movimiento con una camara me guarde un serie de fotos (7) y luego me grabe durante 2 minutos, he tratado de colocar una ciclo for dentro de un ciclo case, pero al detectarme movimiento me guarda fotos hasta que le doy reset al sensor, como puedo hacer para que solo me guarde por ejemplo 7 fotos y luego seguir con la grabacion?

 

Saludos!!

3.png

Adjunto VI  https://www.dropbox.com/s/5e5u1wn9dov7q6k/sensor%20y%20camara.vi?dl=0

0 kudos
Mensaje 1 de 6
5.002 Vistas

Hola,

 

        Me parece que tu problema puede ser que numeric sigue teniendo el valor de 1 y entra de nuevo en cada ciclo. Puedes hacer debug de la ejecucion de tu programa con el bombillo encendido y asi ver porque esta entrando de nuevo.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 2 de 6
4.971 Vistas

Otro factor a tomar en cuenta es el uso de la variable local asignada al indicador Numeric. Recuerda que con la variables locales no es posible predecir el momento en que la variable local se va a leer con respecto a cuando se escribe; podría ser que la estructura de casos esté leyendo el valor antes de que se escriba (estaría leyendo el dato anterior) por lo que ejecuta el caso incorrecto.

 

Mi primera recomendación sería quitar esa variable local y cablear el case structure directamente a la salida del segundo NOR. Luego de eso utilizaría "Highlight Execution" como recomendó Luis_AM3C para verificar que el programa se ejecuta en el orden correcto y en caso contrario, puedes utilizar "Probes" para monitorear el valor de "Numeric" a la entrada de la estructura de casos.

 

 

 

 

Capture.PNG

 

 

De igual manera, utilizas variables locales para determinar cuando corre el Digital Write Pin.vi y encender o apagar el indicador "led", por lo que es muy posible que también tengas condiciones de carrera ahí. Aparte de esto, la lógica me parece que está correcta, por lo que sí me parece que el error debe estar en como las variables locales ejecutan el flujo de datos.

Camilo V.
National Instruments
0 kudos
Mensaje 3 de 6
4.959 Vistas

Hola gracias por responder, la idea original era que con el flip flop el pulso que provenia del sensor se mantuviera en alto, y con eso hacer la secuencia, pero yo estaba mal, lo que hace mi programa es que cada vez que me detecta movimiento me guarda fotos y luego me envia un correo, aqui mi problema, supongamos que el sensor me detecta movimiento durante un minuto, como hago para que me envie solo un correo durante ese tiempo y no varios, otra cosa cuantos archivos adjuntos se pueden agregar a un correo?

 

Saludos!!

 

34.png

 

 

 Adjunto VI https://www.dropbox.com/s/tthhse3jiut5v1t/sensor%20y%20camara2.vi?dl=0

 

0 kudos
Mensaje 4 de 6
4.932 Vistas

Hola,

 

        Lo que necesitas es un detector de flanco,  es decir una logica que diga que si estaba en cero y ahora esta en uno ejecute el case structure de mandar el correo. Para ello puedes usar un feedback node para conocer el estado anterior.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 5 de 6
4.923 Vistas

Gracias!!! era justo lo que necesitaba.

0 kudos
Mensaje 6 de 6
4.906 Vistas