Show Posts
Pages: 1 2 [3] 4 5 ... 106
31  International / Proyectos / Re: Grúa de madera mientras juega al ajedrez (Arduino Mini 05) on: April 10, 2013, 02:26:05 pm
+1
32  International / Proyectos / Re: Ayuda con CANBus Modo Listen on: April 10, 2013, 02:14:51 pm
Hola,

No me he mirado el código que has puesto, pero antes de todo... ¿cuantos dispositivos tienes en el bus?
Si la respuesta es sólo dos dispositivos, es decir, el Arduino y el conversor de Peak, ahí viene el problema.

Saludos,


Igor R.
33  International / Software / Re: Controlar temperatura on: April 03, 2013, 05:48:15 am
A parte de todo lo dicho por los companyeros (PID,triac,etc),tambien tienes que mirar el tema de sensor de temperatura... tipicamente puedes ver precisiones de +/- 0.5 grados o mas en sensores convencionales.... Tener en cuenta la resolucion si usas el ADC (10 bit), etc...
Primero tienes que asegurarte de medir la temperatura correctamente para poder controlarla despues... smiley-wink

http://real2electronics.blogspot.fr/2011/07/maqueta-de-control-pid-con-arduino.html

Nota.- ni acentos ni enyes
34  International / Español / Re: vinciDuino Evo - la plataforma vinciDuino on: April 02, 2013, 02:53:07 pm
Ya he recibido la mía!!

 smiley-twist
35  International / Software / Re: Gadget para desconectar un ascensor on: March 26, 2013, 05:23:05 pm
Bueno, tienes que cambiar la filosofía de hacer for, y cosas de esas que he visto rápidamente al abrir los links...

Si te aseguras que el tiempo de ciclo de tu soft es rápido para poder capturar el paso por cero podrías hacer  "evento" podría ser:
volt=analogRead(inPinV);
bZeroCrossing=(startV < 550) && (startV > 440);

Y entonces cuando pase este evento, cambiarías a un  estado de ir calculando las cosas (potencia activa, reactiva,etc) y esta ahi hasta que el numero de samples es igual a 500 (o los que sean), luego de ahi pasa a otro estado que es mostrar el resultado por pantalla... o lo que sea.

Tampoco me lo he mirado en profundidad, pero es para explicar la idea....es decir, hay que cambiar un poco la forma de pensar las cosas.
Ten en cuenta que te puedes encontrar muchas librerías (incluso el core de Arduino) tienen código bloqueante...

También puedes combinar cosas, dependiendo de tus necesidades... Yo por ejemplo, en esa aplicación tengo un timer que controla el envio de tramas CAN de forma periódica, aunque todo el flujo va controlado por la máquina de estados (incluso la actualización del contenido de dichos mensajes CAN).

Saludos,


Igor R.
36  International / Software / Re: Gadget para desconectar un ascensor on: March 26, 2013, 04:08:58 pm
¿Qué tipo de bucle es para durar 250-300 ms?
37  International / Software / Re: Gadget para desconectar un ascensor on: March 23, 2013, 03:27:00 pm
Gracias @maxid.

He subido un video del invento...Así ves como se puede cambiar menus, mientras se están haciendo otras cosas... smiley-wink



Eso por dentro tiene un Arduino core... smiley-twist
Y usando la librería que he comentado en anteriores post (FSM).

Saludos,


Igor R.
38  International / Español / Re: vinciDuino Evo - la plataforma vinciDuino on: March 21, 2013, 05:43:20 pm
Hola,

Está muy bien la nueva placa con SD!! buen trabajo fm!!

¿qué tal las pruebas? ¿la das por validada? Si tienes disponibles, yo me apunto a la lista de una montada.


 smiley-twist
39  International / Software / Re: Guardar datos del Puerto Serie on: March 11, 2013, 01:32:39 pm
Hola

Con cualquier terminal serie que hay por ahí, por ejemplo, realterm.
Incluso con el hyperterminal de Windows también lo puedes hacer.

Saludos,


Igor R.
40  International / Español / Re: Cálculo pérdida tensión on: February 28, 2013, 05:21:16 pm
Si vas a comprar una fuente de alimentación, puedes usar una que tenga "remote sensing line".
http://en.wikipedia.org/wiki/Sense_%28electronics%29
41  International / Software / Re: Gadget para desconectar un ascensor on: February 28, 2013, 02:40:26 pm
Hola,

Hay muchas maneras de hacerlo. La manera que yo elegí (que no es para nada como te pongo aquí abajo), la puedes ver en el código de mi librería y ejemplos....https://github.com/IgorReal/SECUduino/tree/master/FSM%20Library

Lo hagas como lo hagas, quieres que en tu loop se este haciendo todo el rato (hablando de una máquina sencilla):
1) Leer eventos (transiciones)
2) Actualizar estados
3) Realizar la función que corresponda a dicho estado.

Por ejemplo, una muy básica pero que tiene el problema de gastar mucha RAM por las variables utilizadas(ya que tienes una variable por cada evento), podría ser:


//EVENTOS
if (Serial.available()>0)   myReceivedByte=Serial.read();
ev_botonOK=digitalRead(5) || myReceivedByte=="O";
ev_botonUP=digitalRead(1) || myReceivedByte=="U";
if (RTC.Hora==13 && RTC.Minutos>=30)  
{
    ev_alarma1=1;
}else
    ev_alarma1=0;
}

//MAQUINA DE ESTADOS
switch(estado)
{
  case st_Menu:
    //Muestro por pantalla cosas, activo salidas, etc
    if (ev_botonOK) estado=st_Pantalla1;
  break;
  case st_Pantalla1;
    //muestro por pantalla cosas
    if (ev_botonUP)
    {
        estado=st_MENU;
    }else if (ev_alarma1)
    {
      estado=st_Alarma;
    }
    break;
  case st_Alarma:
     ....
   break;
   etc.
}


Y a partir de esto básico, pues seguro que ves como puedes mejorar y hacerla más efectiva (en cuanto a código).
Para botones, al leer tus entradas, puedes crearte un byte (o del tamaño que necesites) que cada bit sea una de ellas. Es decir, el bit0 es botonUP, el bit1 es botonOK, etc...Incluso si te lo montas bien en tu código, puedes conectarlo al mismo puerto(hardware), y leer el puerto de una vez.Cosa que será más rápida que digitalRead() de Arduino.
Bueno, en realidad podrías tener una variable evento, y que cada bit tiene un significado (según su posición, indica el estado de los eventos).

Luego usas máscaras para saber si está activo o no.

Pero poco a poco!! smiley-wink

Saludos,


Igor R.


[1] Manejo de puertos => http://arduino.cc/es/Reference/PortManipulation
[2] Máscaras y operaciones con bits => http://arduino.cc/es/Tutorial/BitMask
42  International / Software / Re: Gadget para desconectar un ascensor on: February 27, 2013, 02:50:09 pm
Lo he mirado rápido, pero tiene pinta que no hace lo que originalmente querías, no??

Si estás en el menu (y/o siguientes estados) no hay transición para que si es la hora XXhXX,dia D,etc haga tus acciones de desactivar,etc.
Es decir, se te quedaría bloqueado en dicho estado de muestra menu,etc sin poder desactivar o hacer lo que tienes en otras ramas.

Yo diría que te faltan transiciones en ese flujograma....no crees?

Un consejo, puedes crearte nombre de eventos cortos, para poner en tus transiciones y luego en un lateral describes lo que hace cada uno. Es más fácil de seguirlo, dibujar el diagrama y queda más limpio.
Por ejemplo: ev_pulsacion1, ev_pulsacion2, ev_alarm1,.... (ev=evento).
Y describes la lógica de cada evento en otro sitio que no sea sobre las transiciones:
ev_pulsacion1= pulsación de la tecla 1 (entrada digital 7)
ev_alarma1= Hora 7h30 && laborable && Stop
etc.

Es más, si lo programas así.... luego puedes sustituir lo que genera tu evento muy fácil!!! Yo lo hago así en mi programación, y esto me permite, por ejemplo, que mi evento pulsación tecla confirmar (ev_confirmar), pueda venir de una tecla o de un comando serie.
Para que me entiendas por dónde voy... de forma sencillísima, hago que mi programa se controle por comandos serie, por entradas digitales, o por ambos!!
Es un ejemplo, pero es para que entiendas la ventaja de pensarlo/programarlo así, que luego tus eventos son fáciles de cambiar las condiciones que lo generan, y si te has preparado el código, pues te resulta inmediato hacerlo.

Lo digo para que no hagas tu programación repetitiva con IF (RTC.hora...&& digitalread(x) { bla,bla}
Si no que leas todas tus entradas que generen eventos (RTC, entradas analógicas/digitales, serie,etc) y generes el evento/s que corresponda.
Luego en tu código sólo tienes, si estoy en (estado==5 && ev_alarma1), hago tal y cual.... Y tu ev_alarma=(RTC.hora==  && digitalRead...etc.).
A parte que el mismo evento, puede ser utilizado en varias transiciones y no tienes que repetir código.
Espero que me entiedas por donde voy...


smiley-wink



43  International / Español / Re: CAN BUS: Red de Arduinos on: February 23, 2013, 07:08:08 pm
Hola,

¿Sabes los mensajes CAN que controlan el cuadro? Si no lo sabes, esto es lo dificil...
Hay veces que aunque vayan por bus CAN, para los indicadores analógicos leen directamente la señal del tacómetro, por lo que no necesitas bus CAN. Aunque si quieres usar sólo un indicador de velocidad, y nada más del cuadro, por qué quieres usar uno mercedes? Lo digo porque venden indicadores universales para realizar lo que comentas.

Si te bajas por internet el manual de taller del coche, puedes mirar los esquemas eléctricos para ver que le llega al cuadro (para ver si le llega dicha señal o sólo bus CAN).

Saludos,

Igor R.
44  International / Software / Re: Libreria CAN (Controller Area Network) para Arduino Due on: February 16, 2013, 04:31:28 pm
Buen trabajo!!

 smiley-wink
45  International / Software / Re: Programando una camara cmos on: February 14, 2013, 05:29:58 pm
http://arduino.cc/forum/index.php/topic,144067.msg1086253.html#msg1086253
Pages: 1 2 [3] 4 5 ... 106