PROBLEMA CON MODULO RTC DS1302

Salve a tutti, premetto che sono un neofita e che mi sto dilettando nella costruzione di una serra idroponica con arduino uno. Ho installato un modulo rtc ds1302 con la libreria ds1302 e wire. il problema a cui non ho trovato soluzione e riferimenti su internet è questo: carico lo sketch base per provare ad impostare l ora e a data sul modulo e tutto funziona a dovere. Se stacco arduino dal usb e lo faccio spegnere, riattaccando l usb riprende l ora da dove l aveva lasciata. se invece stacco l usb e attacco il trasformatore con cui si alimenta arduino,il modulo rtc si resetta e il conteggio riparte da zero. riparte da zero anche quando attacco sulla stessa ciabatta elettrica ove è collegato il trasformatore che alimenta arduino un altro componente :o naturalmente ho accertato che la batteria che ho inserito sull rtc sia carica.. ho ricaricato lo sketck dopo aver impostato l ora e la data, commentando le righe di impostazione... non capisco cosa possa essere.. ho anche cambiato modulo rtc con uno uguale ma dà lo stesso problema.. qualcuno mi puo aiutare?
allego lo sketch

#include <DS1302.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Creazione oggetto RTC
DS1302 rtc(2, 3, 4); // rispettivamente ai pin RST, DAT e CLK

// Creazione dell'oggetto LCD
// Imposta l'indirizzo LCD 0x27 per un display a 16 caratteri e 2 linee

LiquidCrystal_I2C lcd(0x27, 20, 4); 

void setup()
{
  // Imposta RTC in run-mode e disabilita la protezione da scrittura
  
  rtc.halt(false);
  rtc.writeProtect(false);

  // Imposta la comunicazione seriale
  
  Serial.begin(9600);

  // inizializza il display
  
  lcd.init();
  
 //accende la retroilluminazione 
  
  lcd.backlight(); 
      
 //impostare giorno,ora e data per farle memorizzare dal modulo rtc  
  //rtc.setDOW(WEDNESDAY);
  //rtc.setTime(10, 12, 00);
  //rtc.setDate(05, 02, 2020);
  
  // Le seguenti linee possono essere commentate per
  //utilizzare i valori già memorizzati nel DS1302
  //rtc.setDOW(SUNDAY);        // Imposta il giorno della settimana a SUNDAY
  //rtc.setTime(11, 32, 0);     // Imposta l'ora come 11:32:00 (Formato 24hr)
  //rtc.setDate(12, 2, 2017);   // Imposta la data cone 12 febbraio 2017
}

void loop()
{

  // Invia giorno della settimana
  
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");

  // Invia data
  
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Invia ora
  
  Serial.print(rtc.getTimeStr());
  Serial.print(" -- ");

  
  // Scrive i valori sul display LCD

  lcd.clear();//cancella precedenti valori
  data (); // Scrive su LCD la data
  ora (); // Scrive su LCD l'ora



// Aspetta un secondo prima di ripetere

  delay (1000);
}

void data ()
{

  lcd.setCursor(0, 0);
  lcd.print(rtc.getDOWStr());
  lcd.print(" ");
  lcd.print(rtc.getDateStr());
}

void ora()
{
  
  lcd.setCursor(5, 1);
  lcd.print(rtc.getTimeStr());

Comportamento molto strano, mi viene in mente di cambiare ciabatta ma non ha senso, mentre potrebbe avere senso cambiare alimentatore.

Comunque dalla descrizione il problema pare essere elettrico e quindi è da escludere un problema al software.

Io farei ulteriori prove per sicurezza (sempre che già non l'hai fatto) al fine di verificare che il problema non è nel software ma sull'hardware e in particolare tra le due cose, scarpetta multipresa e alimentatore.

Faccio comunque fatica ad imagginare che un alimentatore malfunzionante possa azzerare la RTC.

Ciao.

Inanzi tutto grazie della risposta.
Infatti anche secondo me è molto strano questo comportamento dell rtc.. dovrebbe tenere in memoria a mezzo della batteria da 3v l orario impostato.. comunque provo a cambiare l'alimentatore o tipo di alimentazione ad arduino o all rtc e vi faccio sapere.

Tutto fa pensare a forti disturbi elettromagnetici. In questo caso sarebbe necessaria una foto dei collegamenti (meglio di qualsiasi descrizione).

Comunque qui consigliano una resistenza da 220 Ohm sul filo dati.

Ciao,
P.

Grazie, proverò con la resistenza.. Intanto allego l foto ler far capire di più.. Ho il trasformatore 220 12v vicino d arduino.. Forse è quello

Scansione 12 feb 2020.pdf (620 KB)