Comportamiento extraño del arduino

Hola, estoy trasteando con mi arduino nano v3.0, tengo conectados 3 altavoces de 8ohm en serie al pin 9 y alimentados con 2 baterías de litio 18650.

El código que estoy metiendo en el arduino es el siguiente:

#include "LowPower.h"
#define LED_pin 9

// Track LED state
bool LED_state = false;

// Set frequency and duty cycle of LED
float blinkrate = 200; // In Hz
int dutyCycle = 80; // in percent (%)

// Since time slices are much smaller, use microseconds
int granularity = 100;
float delay_between_check = 1000000.0 / blinkrate / granularity; // 1 sec/rate, divided into 100 segments
int cyclePosition = 0; // out of 100

// Track blinking cycle times of LED
long lastCheckedTime;

void setup() {
  pinMode(LED_pin, OUTPUT);
  lastCheckedTime = micros();

}

void onda() {
    long now = micros();
    long tiempo = millis();

    if (now - lastCheckedTime > delay_between_check) {
      // Only turn LED on if current cycle position is less than the duty cycle
      if (cyclePosition < dutyCycle) {
        digitalWrite(LED_pin, HIGH);
      } else {
        digitalWrite(LED_pin, LOW);
      }A

      // Increment cycle position, zero it out if it's too big
      cyclePosition++;
      cyclePosition %= granularity;
      lastCheckedTime = now;
     
    }
    if (millis() >= tiempo+10000) {
     LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
     delay(1000);
    }
}

void generar() {
  tone(9,random(40,1000));
  delay(random(100,400));
  noTone(9);  
}
void loop() {
generar();
generar();
generar();
generar();
generar();
  LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
  delay(1000);
}

Básicamente genera 5 pulsos diferentes, con frecuencias diferentes en intervalos diferentes.

Pero la cuestión mas bien es con el consumo de dicho arduino (solo el arduino)

Pretendo alimentarlo con las mismas baterías 18650, por medio del PIN Vin y GND de la placa.

El comportamiento extraño viene ahora:

Si conecto solo las baterías, el arduino, consume 60mA en estado activo, y baja a 40mA cuando entra en juego el modo dormido (que ya de por si me parece un disparate, ya que el nano debía consumir 15mA)

Si estando conectado a las baterías, enchufo al PC, y desenchufo, el consumo baja radicalmente, en estado activo a 24mA, y dormido a 9mA.

He probado a usar una powerbank en lugar del PC (manteniendo las dos baterías en el Vin) y no sucede lo mismo, es decir, los mA registrados son los mismos que con solo las baterías (60mA despierto, 40mA dormido) y al desenchufar la powerbank y dejar que el arduino se alimente solo de las baterías, el consumo sigue siendo el mismo. Solo si en lugar de la powerbank pongo el PC; entonces si, al desconectarlo del PC, el consumo baja y consume 25mA o 9mA de las baterías por el pin Vin.

Que estoy haciendo mal? Necesito que el arduino consuma lo minimo posible, y pasar de 40mA dormido a 9mA es crítico.

Un saludo y gracias

Update

Agrego el diagrama, además, la bateria es de 8V porque son 2 18650.

¿Puedes poner un esquema de las conexiones?

Los 3 parlantes en serie suman 24 ohms, es mucha carga para un pin (incluso para el micro en su conjunto), tienes que agregar una resistencia de al menos 120 ohms.

Para empezar porque tienen que ser 3 parlantes de 8 ohms? Porque no, uno de alta impedancia, asi no comprometes ni el consumo ni la salida del pin? Un buzzer tal vez, sería una buena alternativa.
Por lo demás, lograr que el NANO consuma poco esta muy bien documentado.
Comienza retirando el LED de power y considera usar un LDO de 5V con bajo corriente de mantenimiento. Olvida el regulador que tiene el NANO pq no es bueno y es peor si se trata de un clon.
Irás incluso mas abjo de los 9mA

aqui tienes

Se me olvidó comentar sobre el mosfet que sale del pin 9, disculpa, no creo que haya problema con eso, ya que el mosfet no consume.

Un saludo y gracias por tu respuesta.

He puesto 3 porque con uno solo, la corriente era demasiado alta.

El motivo de usar esos, es porque los tengo por ahi de aparatos viejos xD

El tema del consumo del arduino, ya tiene fuera el led, lamentablemente de forma fatal para él...

Que regulador me recomiendas en lugar del que trae?

PD: a otro usuario le he puesto el esquema de conexiones, se me olvidó apuntar en el primer post que el pin ataca a un mosfet, por lo que no hay problema con la salida del pin.

PD2: aún así, 60mA de serie no es demasiado? los 9mA son con el arduino dormido, pero el datasheet del nano habla de 15mA despierto, el mio (cualquiera de los 2 que tengo) consumen 4 veces eso..

Un saludo y gracias por tu respuesta

Te iba a comentar lo del LED Power pero veo que ya te has encargado de ello. :crazy_face:

Gracias por el esquema, pequeña omisión la tuya. Jaja

Tengo 3 Nano (clones) de diferentes proveedores, los 3 consumen alrededor 30 mA con el LED Power aún con vida, "despiertos" y alimentados con 7V por la entrada Vin.

Si descuento los aproximadamente 5 mA del LED (tiene R de 1K en serie), andan en los 25 mA.

De por sí me parece muy alto el consumo de tus Nano y no creo que 1V de diferencia en la alimentación genere un consumo de 30 mA extras, aunque tendría que testearlo.
Al margen ten en cuenta que el consumo "dormido" depende del modo sleep que setees.

Yo hice algunas pruebas en modo power down y el consumo caía sustancialmente, como no "volé" el LED power no te puedo decir exactamente cuanto era el consumo real, pero era cercano al del LED así que era mínimo el consumo del micro.
Si encuentro las notas que tomé en su momento te cuento lo que medí.

Saludos

No recuerdo pero cae mucho, el consumo, creo que 0.5mA sin Led Power y sin regulador que consume MUCHO tmb.
Un LDO de baja corriente de mantenimiento.
Dime que pagina de componentes electronicos tienes y te sugiero alguno pero los de Microchip andan bien y consumen poco. En 5V no he mirado en 3.3V me he sorprendido cuando descubrí lo malo que es el AMS1117 que tanto he sugerido. Bueno anda bien para aplicaciones de 3.3V pero no para bajo consumo.

Gracias. Si, es muy extraño que consuma tanto....

De todos modos, lo que no comprendo es porque al alimentarlo por baterías al con, y a la vez enchufarlo por USB, y luego desenchufar solo USB, el amperímetro mide diferente.

Es decir, solo con baterías, son unos 60 despierto y 40 en modo powerdown.

En cuanto enchufo al USB y desenchufo, pasa a 25 y 9 mA.

Pero ojo, solo si el USB es un pc, porque si alimento el arduino con una powerbank, y desenchufo, sigue con los 60 y 40mA.

Acaso al desenchufar del pc se desconecta algo más? O al ser un clon, se deja cosas activadas al usar el vin?

Me he pillado en AliExpress unos pro mini del palo, no puedo permitirme casi 40€ por un mini de sparkfun (me cuesta casi 3 veces más el envío a España que el arduino) al menos puede que consuman menos que el Nano.

Saludos!

Estaba pensando en el 78L05 por ejemplo

Pensé que habría algún regulador estándar de sustitución, si vale cualquier LDO, es cuestión de probar.

De todos modos me he comprado unos pro mini clon... Por mucho que consuman, no deberían ser más que el Nano, jajajaja

Saludos

Con los pro Mini iras mejor pero de nuevo, los reguladores que tiene son AMS1117 y no son buenos pero mejores que un Nano alimentado con 7V por ejemplo.

Esta es la nota de Nick Gammon, mira como el termina usando un ATmega328 sin nada.. okay, es importante para luego comparar del mismo modo.
El habla de 360uA

Lo del powerbank estoy casi seguro que es porque no se llega a activar (la mayoría necesitan al menos 100 mA de consumo para "arrancar"), en cambio el PC envía siempre los 5V al puerto (al menos mientras está encendida aunque algunas incluso estando apagadas).

Por qué cae el consumo con la PC no me llego a dar cuenta cuál sería el motivo, lo voy a pensar a ver si se me ocurre algo.

Para mí el exceso de consumo es por el regulador.
Si tienes forma de alimentar el Nano con alguna fuente de 5V, haz la prueba de alimentarlo por el pin 5V y mide ahí el consumo. La diferencia es culpa del regulador.

Saludos

[Edito]
PD: Si no tienes una fuente de 5V puedes usar un regulador de 5V externo, y con éste alimentas al Nano por el pin 5V para medir el consumo sobre este pin.

¡Mi biblia del modo sleep!

Es simplemente una belleza!!

he probado el atmega328 solito, con un lm317 a 5V

listo xD

9mA despierto, y 0.00 dormido, mi polímetro no da para mas, así que es pequeñito y ya jajaja

He puesto el atmega solo, con un cuarzo de 4MHz y el regulador lm317

9mA despierto e inmedible dormido, me marca 0.00mA asi que debe andar por uA.

Ahora ya me ha entrado el gusanillo de jugar con arduino... sin arduino jajajaj

Excelente!

Saludos

Como dije, ese tutorial vale oro!!.
Si, estas en uA en el Arduino pero el LM317 se encarga de comerte la batería. Debes mejorar ese punto.
Hay un LDO de microchip que consume nA si mal recuerdo 100nA. Lo encuentro y te lo sugiero.

Estoy mirando la corriente antes del lm317. Es decir, justo a la salida de la batería, por lo que los 0.00 y lo 0.09 mA son incluido el lm317 xd

Voy a tomar un LM317T según digikey (ver link hoja de datos)
Para ajustar el pin a la tensión que quieres deben circular 100uA asi que ese es el consumo del LM317.
Pero este valor compromete el funcionamiento
Minimum Load Current to Maintain Regulation (VI−VO = 40 V) 3.5 a 10 mA (max).
O sea que tu arduino debe consumir 3.5mA para garantizar la tensión deseada.
Qué dilema no?