hola amigos estoy desarrollando un registrados de datos climaticos (humedad, presion atmosferica, temperatura y precipictacion) el cual cual se alimenta con una bateria li-ion de 600ma-h. los datos son almacenados en una memoria cada cierto tiempo (configurable entre 1 y 60 minutos). bien mi problema es que el circuito solo trabaja durante unas 4 horas con la bateria completamente cargada, me di el consumo y me da 230mA creo que tengo algo mal, ya que lo que tengo conectado es lo siguiente:
sensores
lm358
ds1307
cd4050
memoria SD
un LED
por otra parte a la salida de la bateria tengo un convertidor DC/DC para alimentar la placa arduino, es decir, el arduino se esta alimentando con 8V...
Es correcto que tenga ese consumo?
de ser asi como puedo disminuirlo?
Las memorias SD creo que tienen picos de consumo al go elevado pero no como dar una media del consumo que indicas. Yo iría comprobando el consumo quitando uno a uno todos los elementos a ver si en alguno hay algo mal.
Otra cosa, si quieres optimizar el consumo no es lo mejor alimentar a 8 V. ¿De qué tensión es la batería? Lo mejor es poner un convertidor DC-DC con salida 5 V para alimentar directamente. Si lo haces a 8 V estás tirando una proporción de 3/8 de la batería, casi la mitad.
no dices la tensión de la batería, si es de Litio entiendo que tiene que ser múltiplo de 3.7 V, o es de tres celdas como mínimo o el conversor es un step-up.
En función del tipo de sensores y de la frecuencia de las lecturas es buena idea alimentarlos solo cuando tengas que leer (en realidad un poco antes para que se estabilicen), en función del consumo, directamente de una salida digital del Arduino o con un transistor. Tampoco indicas si pones la placa en modo sleep cuando no lees.
El conversor DC/DC debería de ser un switching regulator, que son los que tienen mayor rendimiento, en las hojas de características puedes verlo, lo normal entre un 85% y un 90%, pero si alimentas la placa del Arduino con 8V estás disipando un 3/8 de la energía en forma de calor tal como te indica Cheyenne, deberías de eliminar el regulador de la placa Arduino y conectar directamente a 5V.
Otra opción si no requieres de mucha potencia de cálculo es cambiar el cristal del Arduino de 16 Mhz a 8 o a 4, el consumo es más o menos proporcional. Por orden de preferencia yo:
Eliminaría el regulador de la placa y alimentaría a 5V.
Utilizaría los modos Sleep del Arduino.
Alimentaría los sensores solo cuando los leyera.
Bajaría la frecuencia del cristal.
hola amigos gracias por las respuestas, en cuanto a la bateria es una de 3.7v /600ma-h,
la cual cargue completamente y luego la use para energizar mi circuito (registrando datos cada un minuto),
que solo permanecio registrando datos por unas 5 horas, descargandose completamente la bateria para este tiempo ...
He estado midiendo el consumo del modulo arduino duemilanove que es es de unos 24mA y sin el microcontolador mide 9.5mA esto con un cristal de 16MHz, cuando cambie el cristal por uno de 4MHZ la corriente bajo a 15.4mA, bueno bastante de 24mA a 15.4mA, hasta aqui todo biien, pero cuando conecto el arduino a la pc para grabar otro programa o modificar el que tiene, no puedo me da un
error Problem uploading to board... es por el cristal?
Por otra parte como puedo usar el arduino en modo sleep, uso un timer que despierte cada cierto tiempo?
Para ahorrar energía el modo sleep y reducir la velocidad incluso usando el cristal externo son dos buenas opciones. Puedes despertarlo con timers internos o con interrucpiones externas.
Si miras el datasheet de el atmega 328P verás que hay registros que puedes deshabilitar y reducir aún más el consumo.
Si reduces la velocidad al minimo con cristal interno (4Mhz) creo que puedes alimentar el atmega con tan solo 1.8V sobre la pagina 321 del datasheet de atmel 328P
si usas una batería de 3,6V el conversor DC-DC debe de ser un step-up, tienes una reducción por el rendimiento del conversor, otra por el conversor del Arduino, etc. Posiblemente la mejor opción en este caso sea un Arduino FIO o alguno por el estilo, pensados para los 3,3V, alimentados directamente con la batería, etc.
Sobre el tema del cambio de cristal y las comunicaciones, creo recordad que en algún sitio se le indica la frecuencia al micro (posiblemente en los fuses del micro), porque si no lo haces el puerto serie comunica a cuatro veces menos velocidad. Echa un ojo a: AVR® Fuse Calculator – The Engbedded Blog
hola, bueno les comento lo que he realizado para bajar el consumo del circuito.
He obsrevado que el consumo fuerte de mi circuito esta en el Arduino de unos 24mA, bien lo que hice fue quitar el regulador de 5V del arduino y asi estoy alimentado directamente desde bateria por la entrada VIN, con esto consegui que el consumo se redujera a 16ma, por otra parte tengo dos sensores que trabajan con no mennos de 5V, por lo que tome la salida de 3.3v del Aduino y la coloque como entrada del convertidor DC/DC ajustado para que entregue 5V, hasta ahora he conseguido que el circuito trabaje con la bateria por un tiempo de 24Horas (aun no se el total de horas debido a que todavia esta trabajando, despues les comento esto)
Por otra parte el inconveniente que se me presento fue con el convertidor DC/DC cuando elevaba de 3.7V(prporcionados por la bateria) a 5V para alimentar Arduino y demas dispositivos, para esta situacion tenia un consumo de 52mA con una autonomia del circuito de 14horas.....
ahora bien voy hacer lo que me dijeron por ahi, de alimentar los sensores solo cuando se tomara el datto
hola amigos nuevamente por aca, el anterior mensaje en el que comentaba que el modulo arduino estaba registrando por mas de un dia pues es falso, el dia 20/03/2012 a las 08:30am de la mañana desacargue los datos, y me encontre que solo habia registrado desde las 10:14 am del dia 18/06/2012 hasta las 18:06:00 esto da una duracion de 8 horas, adjunto un diagrama en bloques de lo que estaba haciendo, por otra parte el alimentar los sensores de humedad y temperatura por medio del convertidor DC/DC afecta los datos, es decir, se alejan de la realidad... ahora pienso que el problema esta en que la SD necesita cierta corriente y para cuando han pasado 8 horas la bateria no es capaz de proporcionarla, no se que otra cosa hacer para disminuir el consumo y lograr mayor duracion de la bateria,
Yo eliminaría el conversor, lo mejor es utilizar sensores que funcionen hasta 3,3V, en temperatura y humedad los SHT1X de Sensiríon funcionan sin problemas los AM2302 también a esas temperaturas.
Solo alimenta los sensores cuando leas, conecta la alimentación a una salida del Arduino y la pones a nivel alto un poco antes de la medida y a nivel bajo después.
Tu objetivo debe de ser reducir el duty cycle de todo el circuito, que debería de estar la mayor parte del tiempo dormido. Yo estoy consiguiendo duraciones de hasta 2 años con dos baterías AAA en nodos Xbee.
El consumo en los modos de sleep es más que razonable, pero si no es suficiente seeedstudio tiene una placa con un 328p que tiene un reloj rtc al que se le pueden programar alarmas que la despierten, échale un ojo al esquema y al wiki, seeeduino si no me acuerdo mal.
Con todos los trucos que te estamos indicando puedes bajar el consumo unos miliAmperios, la diferencia de verdad viene cuando consigues que la placa solo consuma un 1% de su tiempo porque el resto esté apagada.