Ho scritto un codice che legge i dati dal sensore MPU6050 e BMP180. Dopo la lettura, i dati vengono inviati tramite seriale all'ESP32.
Quando Arduino è collegato alla porta USB del computer funziona tutto perfettamente, ma quando provo ad alimentare Arduino con una batteria da 9V, MPU6050 si accende (il led verde si illumina), ma a quanto pare non passa il controllo MPU.begin().
Non ho verificato se anche il BMP180 ha lo stesso problema.
Ho provato anche a collegare la batteria al 5V di Arduino e al Vin ma non cambia nulla.
Credo che la corrente che può dare una batteria classica da 9V sia del tutto insufficiente per alimentare le cose che hai (il solo ESP32 assorbe di più di quanto la piletta possa dare). Devi usare batterie in grado di fornire più corrente come delle belle LiPo ...
Allora ... tu entri con X volt sul jack ... il regolatore lineare a bordo di Arduino abbassa tale tensione a 5V ... tu butterai in calore ( (X - 5) Volt x mA che assorbi), da cui ...
... se si alimenta Arduino da USB il massimo disponibile è di 500 mA
... se lo si alimenta da jack nero (o Vin) il massimo cambia in funzione dell'alimentazione e va da circa 300/350 mA se alimenti a 7V fino a scendere sui 200 mA se alimenti a 12V ... dopo di che c'è il rischio di "friggere" il regolatore lineare.
Detto questo vedi tu cosa collegare ai pin 5V di Arduino. Ricorda che se usi più alimentazioni i GND devono essere in comune.