Go Down

Topic: Alimentación data logger arduino MEGA (Read 981 times) previous topic - next topic

achop87

Buenos días! Soy nuevo en el foro y desearía pediros ayuda:
Estoy realizando un data logger multicanal (10 canales) con el Arduino MEGA. Este data logger estará alimentado de una bus de CC 65-80V (con su correspondiente regulador estabilizado para alimentar la placa a 5V), pero quiero asegurar una alimentación auxiliar (mediante batería o súper condensador) sobretodo para una vez desconectada la alimentación del bus, asegurar el correcto "apagado" del Arduino y asegurar los datos registrados en la tarjeta SD (aproximadamente un par de minutos como mucho).
Mis dudas residen en el tema de como solucionar este aspecto, ya que en caso de usar baterías (había pensado usar baterías de 9V) debería garantizar la posibilidad de recargarlas desde el bus cuando estas no sean requeridas y no se si esto lo puede realizar directamente el Arduino MEGA o debería añadirle un shield o otro sistema externo.
Sobre el tema del súper condensador, como seria la conexión de este? Es un sistema fiable (me garantiza el tiempo que deseo)? Entiendo que este sistema es mejor, ya que a priori parece más "simple" e incluso mas compacto.
Muchas gracias!

riscking

Hola, yo estoy intentando hacer lo mismo que tu pretendes hacer, uso un duemilanove y compre dos de estos supercap que la verdad que con uno que son de 4f con el consumo del arduino y la plaquita de una controladora l298+l297 para motores paso a paso, me viene a durar la alimentacion unos 15 segundos desde los 5v hasta los 4v que se los meto a traves del puerto vin, la idea tambien es que de una bateria de 12v a traves de un divisor de tension sacar 5v y con eso alimentar arduino que a la vez alimenta el candensador y cuando esta bateria bajase de x entre en una interrupcion que grabe el estado actual en una eeprom y se apague.
Tengo problemas con la programacion  pero esa es la idea, si nos podriamos ayudar mejor que mejor, como tenias intencion de hacerlo tu, la programacion digo??

http://www.ebay.es/itm/2PCS-4F-5-5V-KAMCAP-SP-Z-Combined-Super-Capacitor-Low-ESR-Moderate-Current-/261117323300?pt=LH_DefaultDomain_0&hash=item3ccbce2824

Sergegsx

#2
Apr 11, 2013, 10:36 pm Last Edit: Apr 11, 2013, 10:49 pm by Sergegsx Reason: 1
hola compañeros.
tengo un proyecto en mente que realizare proximamente y tiene particularidades comunes a los vuestros. Me apunto a lo de compartir conocimientos. cuando defina mis requisitos los pondre, así como los avances.
riscking que problemas tienes de programación? a ver si puedo ayudarte.

achop, las 10 entradas son digitales o analogicas? que nivel de tensión?

riscking

#3
Apr 11, 2013, 11:14 pm Last Edit: Apr 11, 2013, 11:16 pm by riscking Reason: 1
Hola Sergegsx, pues algo tan simple como esto,  si en el pin3 tiene 5v que vienen de la bateria si corto la corriente,usando un boton con un esquema como este para los rebotes
si se corta imprima guarda y cuando vuelva recupera, pero no hay tu tia, entra en una o en otra pero luego si le sigues dando no hace nada, he probado usando el pin2 para high y tampoco, supongo que no lo hare bien, si me pueder orientar te lo agradecería.

Code: [Select]

void setup() {
 pinMode(3, INPUT);

 Serial.begin(9600);
 /*sei();
 EIMSK |= (1<<INT0);
 EICRA |= (1<<ISC10);*/
 attachInterrupt(1, guarda, LOW);
 attachInterrupt(1, recupera, HIGH);
}



void loop(){

}
//ISR(INT0_vect)
void guarda()
{
 detachInterrupt(1);
 Serial.println("guarda");
}
void recupera(){
 detachInterrupt(1);
 Serial.println("recupera");
}

Sergegsx

porque usas interrupciones?
la verdad es que tengo experiencia limitada con ellas. lo miro con mas calma

riscking

Pues porque voy a trabajar con motores y mientras trabaja el motor no voy a estar comprobando la tension en un pin constantemente no?? lo ideal seria que en cuanto detecte la caida vaya directo y me guarde el paso en el que este el motor y los estados que haya hecho para saber donde retomar el asunto, en mi caso, no se asi lo habia pensado, pero no se, estoy abierto a otras posibilidades si funcionan mejor o similar. Esto seria por si se desconecta la bateria de golpe o por lo que sea, luego me gustaria monitorizar el estado de la carga de la bateria por si bajase demasiado para que hiciese lo mismo, esa es otra movida pero bueno, jeje, poco a poco.

noter

Perdón por interferir, pues igual meto la pata, pero así como entiendo la interrupción para detectar el corte de corriente, creo que sobra usarla para la reanudación, ya que se supone que la recuperación de datos se debe hacer en el setup del programa, ¿no?
Eso sí, cuando se detecta el corte de corriente se deberían grabar los datos y no hacer nada más hasta que el arduino vuelva a encender tras el corte, porque si modificamos mientras las posiciones de los servos respecto a lo grabado...
Es decir, yo entiendo que cuando se detecta corte, se debería:
-guardar los datos.
-entrar en un bucle sin fin, comprobando que la corriente no haya vuelto, en cuyo caso retornaría a la ejecución de programa (no hará falta recargar datos, ya que no se deberían haber perdido) y que el arduino "languidezca" en ese bucle si no vuelve la corriente.
A nivel hardware, creo que había por ahí algo llamado brownout detector, para mantener el arduino en reset al bajar la corriente de un punto, evitando que "malfuncione" al bajar la tensión o al recuperarla, mientras ésta no sea estable.

riscking

vaya es verdad q alicate soy, de q manera me estaba complicando,con poner tonces un low efectivamente valdria, voy a mirar lo de brownout.

Muchas gracias noter, mañana lo pruebo si puedo con la eeprom y el supercapacitor, lo pense en su dia bien pero me he ido por los cerros de ubeda y anda q no he perdido tiempo.

Sergegsx

Jajaja. Por eso dceia q hay que conocer un poco el proyecto de que va. Asi poder ver si hace falta interrupciones.

Go Up