Arduino pro mini ds1307

salve a tutti è da un po’ che non ne vengo fuori, ho scritto questo software che genera un impulso ogni minuto di polarità invertita tramite un l293d, non sono interessato all’ora esatto mi basta l’impulso ogni minuto presiso. Ho simulato il tutto su ISIS 7 e funziona su breadboard e funziona ma una volta sviluppato il pcb non funziona; non comunica nemmeno in seriale con il pc. Le piste sono integre e corrette qualcuno sa dirmi dove sbaglio?
ho caricato un’ immagine del pcb e schematic

#include <Wire.h>
const int R1 = 6;     
const int R2 = 7; 
const int BTC = 4;
//const int LED = 10;     // led per segnalazione batteria scarica
int k = 0;
int a = 0;
int i = 0;
int val = 0;
byte v = 0;

void setup()
{
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
//pinMode(LED, OUTPUT);      //dichiarazione led
pinMode(BTC, INPUT);

//inizializzo la seriale
Serial.begin(9600);
 
//inizializzo la libreria
Wire.begin();
 
//attivo la comunicazione con il DS1307
//l'indirizzo dell'RTC è 0x68
Wire.beginTransmission(0x68);
//il primo byte stabilisce il registro
//iniziale da scivere
Wire.write((byte)0x00);
//specifico il tempo e la data
Wire.write((byte)0x57); //1° byte SECONDI da 0x00 a 0x59
Wire.write((byte)0x21); //2° byte MINUTI da 0x00 a 0x59
Wire.write((byte)0x80 | 0x10); //3° byte ORE da 0x00 a 0x24
Wire.write((byte)0x01); //4° byte GIORNO della settimana da 0x01 a 0x07
Wire.write((byte)0x21); //5° byte GIORNO del mese da 0x00 a 0x31
Wire.write((byte)0x03); //6° byte MESE da 0x00 a 0x12
Wire.write((byte)0x12); //7° byte ANNO 0x00 a 0x99
Wire.endTransmission();
}
 
void loop()
{
//inizzializza la trasmissione partendo
//dall'indirizzo 0x00
Wire.beginTransmission(0x68);
Wire.write((byte)0x00);
Wire.endTransmission();
  if((digitalRead(BTC) == 0)&&(k == 0)){ 
      digitalWrite(R1, HIGH);
      digitalWrite(R2, LOW);
      delay(400);
      digitalWrite(R1, LOW);
      digitalWrite(R2, LOW);
      delay(400);
      k=1;
  }
  if((digitalRead(BTC) == 0)&&(k == 1)){
      digitalWrite(R1, LOW);
      digitalWrite(R2, HIGH);
      delay(400);
      digitalWrite(R1, LOW);
      digitalWrite(R2, LOW);
      delay(400);
      k=0;    
    }else{ 
//richiedo 7 byte dal dispositivo con
//indirizzo 0x68

Wire.requestFrom(0x68, 7);
//regupero i 7 byte relativi ai
//corrispondenti registri
byte secondi = Wire.read();
byte minuti = Wire.read();
byte ora = Wire.read();
byte giorno_sett = Wire.read();
byte giorno_mese = Wire.read();
byte mese = Wire.read();
byte anno = Wire.read();
////////////////////////////////////////////////////  lettura voltaggio batteria
/*
val = analogRead(A0);
 if(val <= 613){
  digitalWrite(LED, HIGH);}
  else{
    digitalWrite(LED, LOW);}
*/
////////////////////////////////////////////////////
  a = (int)secondi;
////////////////////////////////////////////////////
    if((k==0)&&(a == 0)){
      digitalWrite(R1, HIGH);
      digitalWrite(R2, LOW);
      delay(400);
      digitalWrite(R1, LOW);
      digitalWrite(R2, LOW);
      k=1;
      a=i;
      delay(600);
      }else{
    if((k==1)&&(a == 0)){
      digitalWrite(R1, LOW);
      digitalWrite(R2, HIGH);
      delay(400);
      digitalWrite(R1, LOW);
      digitalWrite(R2, LOW);
      k=0;
      a=i;
      delay(600);
      }
      }
////////////////////////////////////////////////////
////////////////////////////////////////////////////
Serial.print("Orario corrente: ");
Serial.print(ora, HEX);
Serial.print(":");
Serial.print(minuti, HEX);
Serial.print(":");
Serial.println(secondi, HEX);
 
Serial.print("Giorno della settimana: ");
Serial.println(giorno_sett, HEX);
 
Serial.print("Data corrente: ");
Serial.print(giorno_mese, HEX);
Serial.print("/");
Serial.print(mese, HEX);
Serial.print("/");
Serial.println(anno, HEX);

/*
Serial.print("Voltaggio batteria: ");  // stampaggio voltaggio batteria seriale
Serial.println(val);

Serial.println();
*/  
delay(400);
}
}
[code]

Prima di tutto, nella sezione in lingua Inglese si può scrivere SOLO in Inglese … quindi, per favore, la prossima volta presta più attenzione …

… poi, essendo questo il tuo primo post, nel rispetto del regolamento, ti chiedo di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il su citato REGOLAMENTO

… infine, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More → Modify) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Grazie.

Guglielmo

P.S.: Il tuo post è stato spostato nell’opportuna sezione del forum “Italiano”

Oggi ho riprovato e il PCB ha deciso di comunicare in seriale con il pc ma legge sempre lo stesso orario... (su breadboard funziona correttamente). Esempio di lettura:

Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1
Data corrente: 21/3/12
Orario corrente: 10:21:57
Giorno della settimana: 1

[code]