Show Posts
Pages: 1 [2] 3 4 ... 106
16  International / Hardware / Re: Cableado instalación Arduino on: September 24, 2013, 02:20:58 pm
Una idea es elegir sensores que tengan salida a frecuencia, en vez de analógicos.... (o usar circuito conversor voltage a frecuencia).
O sensores que tengan salida de corriente 4-20 mA.
O sensores que tengan salida de bus de comunicaciones.
O crearte módulos distribuidos con algun tipo de comunicación (bus de campo). De esta forma minimizas la distancia del sensor al ADC....ponerte rs485 en Arduino cuesta menos de 1 euro.

Saludos,


Igor R.
17  International / Español / Re: Aumentar la frecuencia de muestreo (Solucionado) on: September 15, 2013, 05:46:07 am
El micro sólo tiene un conversor ADC, y las diferentes entradas es un  multiplexador. Es decir, cuando configuras, es el módulo, así que es para todas las entradas.
Como te recomendé, lo mejor es tirar del datasheet del micro. Para que te hagas a la idea, mira este diagrama sencillo de un atmega8:



Aunque a lo mejor para ese proyecto, tienes que mirarte como usar un Timer para empezar las conversiones del ADC. Puede que te venga bien...
Por cierto, mirando los detalles de la librería FFT, he encontrado este video que me ha parecido curioso...





¿Has visto este proyecto? http://coolarduino.wordpress.com/2013/01/04/power-quality-meter/

Saludos,

Igor R.
18  International / Español / Re: Aumentar la frecuencia de muestreo (Solucionado) on: September 11, 2013, 05:16:46 pm
¿Como vas a calcular THD? ¿con Arduino?  ¿FFT? ¿tiene que ser a "tiempo real"?
¿Estamos hablando de Total Harmonic Distortion (THD)?

Así a primeras sin pensarlo mucho, suena a mucha caña para el micro del Arduino Mega....
Si vas a usar la librería FFT que hay de Arduino, me miraría primero las limitaciones que tiene... que son unas cuantas....No vaya a ser que no cumpla tus requerimientos.

Acerca del tema de la frecuencia del ADC, si la información tratada en los numerosos post de este tema no cubren tus dudas, lo mejor es que te descargues el datasheet del micro y eches un vistazo. Es la mejor fuente de información cuando necesitas estas cosas.


Saludos,


Igor R.
19  International / Proyectos / Re: Proyecto ECU para Range Rover on: September 08, 2013, 03:36:33 pm
20  International / Proyectos / Re: Proyecto ECU para Range Rover on: September 08, 2013, 02:47:10 pm
Pues si cuando se muestra interés, contestas así... no sé qué esperas...

Saludos,


Igor R.
21  International / Proyectos / Re: Proyecto ECU para Range Rover on: September 08, 2013, 02:44:26 am
Suena interesante. Ya nos contarás más detalles, videos, etc.

Saludos,


Igor R.
22  International / Español / Re: Quadcopter PID on: September 07, 2013, 05:15:51 am
En la práctica, lo más sencillo es sacarte por serie: entrada, salida, la parte proporcional, derivativa e integral.
Dibujarla en tiempo real con KST, Stamplot, etc .
De esta forma, puedes ver y entender qué pasa y cúando. Ayuda mucho para el "tuning".

Por otro lado, yo me haría mi propio código para el PID. Por ejemplo, es muy útil que tus constantes Kp,Kd e Ki sean tablas. Por ejemplo, tener una tabla que Kp depende del error, es muy útil. Para entendernos, puedes hacer que cuando el error sea muy grande, tu acción proporcional sea grande y vaya disminuyendo cuando te acercas al setpoint para evitar oscilaciones.

Podrías hacerlo mucho más completo....Por ejemplo, imagina que controlas la posición de un alerón. Podrías hacer una constante que dependa de la velocidad del avión (ya que la fuerza aerodinámica generada sobre él es al cuadrado de la velocidad), por lo que tu "control" te daría más flexibilidad para que sea mayor la cte a mayor velocidad. Es sin más un ejemplo, para ver las diferentes posibilidades que puedes tener.

También es útil tener control total de cuando la parte integral empieza a actuar. Por ejemplo, cuando el error sea menor de XX cantidad. Y fijar cual es el valor máximo al que puede llegar dicha acción.

Puedes mirar un ejemplo muy sencillo aquí => http://real2electronics.blogspot.co.uk/2011/07/maqueta-de-control-pid-con-arduino.html


Saludos,


Igor
 
23  International / Español / Re: Conversiones automáticas de tipo, comparaciones de números con signo y sin signo on: July 02, 2013, 03:55:38 pm
Hola,

Quote
Serial.println((unsigned int)i,BIN);

Echando un vistazo rápido en \hardware\arduino\cores\arduino\Print.cpp
Si no me equivoco Serial hereda de Stream, que a su vez de print (lo he mirado en Arduino versión 22). Seguramente cambie en versiones posteriores, pero sirve de idea de por donde tienes que investigar para resolver tus dudas.... smiley-wink

void Print::print(unsigned int n, int base)
{
  print((unsigned long) n, base);
}

Internamente se hace un cast a unsigned long (que es una variable de 4 bytes=32 bits) .


Saludos,



Igor R.

24  International / Hardware / Re: Precisión del ADC del ATMega on: June 29, 2013, 03:58:27 am
Para el que quiera ampliar el tema, Atmel tiene una interesante nota técnica:
http://www.atmel.com/images/doc8003.pdf


Saludos,


Igor R.
25  International / Software / Re: duda sobre interrupcion externa on: June 29, 2013, 03:43:15 am
Hola,

Cuando estás dentro de la interrupción, millis() o micros() no se actualiza, ya que se desactivan las demás interrupciones mientras estás atendiendo otra.
millis() y micros() usa el timer0 y se va actualizando mediante interrupción de desbordamiento del mismo.
Podrías hacer un retraso mediante código (es decir, el típico for anidado con NOP dentro u operación similar). O usar delayMicroseconds() que está realizado de esta forma (software).
La función delay() usa micros(), por lo que no funcionará.

Puedes ver esto en la carpeta \hardware\arduino\cores\arduino\wiring.c

De todas formas, lo mejor es que hagas lo mínimo posible dentro de la función de interrupción y realices fuera todo lo que necesites. Usa una variable (bool, de estado,etc) para que al salir de la interrupción, hagas los delays u otras cosas que necesites.

Saludos,


Igor R.
26  International / Español / Re: Arduino Robot Unboxing by Complubot on: June 03, 2013, 02:22:07 pm
+1

smiley-wink
27  International / Español / Re: Separar float en digitos on: June 03, 2013, 02:02:02 pm
Busca info acerca dtostrf() (necesitas incluir stdlib.h)

Otra manera, puedes multiplicar x10,x100,x1000... según los decimales que quieras y meterlo en un int. Luego haces tú codigo, pero metiendo una "," cuando toque... O le restas la parte no decimal y sólo tendrías los decimales,etc

Saludos,


Igor R.
28  International / Español / Re: limitaciones de texto al escribir un archivo en una SD???? on: May 19, 2013, 04:58:39 pm
No tienes que hacer nada. También es conocida como memoria de programa (es decir, donde se sube tu programa).

 smiley-wink
29  International / Español / Re: limitaciones de texto al escribir un archivo en una SD???? on: May 19, 2013, 04:23:02 pm
Si tienes muchas cadenas de texto, guárdalas en memoria flash. Ahora las tienes todas en RAM...
http://playground.arduino.cc/Learning/Memory
30  International / Proyectos / Re: Ayuda con CANBus Modo Listen on: April 11, 2013, 11:06:36 am
Cuando dices que el peak no funciona? Como lo conectas en el bus? Me refiero electricamente,etc
Ten en cuenta que es un bus, que estara terminado (120 ohm) en los extremos,etc

Quote
En listen aparece BUSHEAVY.

Yo te decia que si habias conectado el Arduino+shield (en modo listen) y al conversor de Peak, sin ningun otro dispositivo mas en el bus, es normal que no te funcione, ya que no hay nadie en el bus que cambie el ACK de los mensajes transmitidos por ese nodo. Si quieres saber mas de esto, puedes leer la parte que explica el modo Listen Only en el datasheet del mcp2515.


Saludos,


Igor
Pages: 1 [2] 3 4 ... 106