[risolto] problema con codice

ciao
vorrei sottoporre il codice sottostante alla vostra verifica, perchè adesso non funziona più, lo ho provato con successo qualche giorno fà, nel frattempo ho riprodotto lo schema della breadboard su una millefori e non funziona, ma il problema è che non funziona più neanche sulla breadboard che avevo comunque mantenuto come verifica di quello sulla millefori, lo scopo della scheda e del codice è quello di determinare con che frequenza si manifestano gli eventi sugli interrupts e di visualizzarli tramite l’accensione di un ledH se superiori a un certo valore, sul led centrale se all’interno di un intervallo, sul led L se inferiori ad un certo valore.
Un occhio diverso solitamente trova qualcosa che al momento può sfuggire.

grazie
stefano

/*
stato operativo
versione con interrupt 

*/
//#include <LiquidCrystal.h>  // include the library code
//LiquidCrystal lcd(9,8,7,6,5,4); // initialize the library with the numbers of the interface pins

int statosensore1=HIGH;  //stato iniziale del sensore
int statosensore2=HIGH;  //stato iniziale del sensore

int i,j,k,x;

float freq[2]={0,0};//per la frequenza degli eventi di interrupt
int count[2]={0,0};//conteggio degli eventi per il calcolo del tempo

unsigned long tempo[2][10]={{0,0,0,0,0,0,0,0,0,0},
                            {0,0,0,0,0,0,0,0,0,0}};//memorizza l'istante di tempo in cui accade l'evento
unsigned long deltatempo1;//tempo di attesa in mancanza di eventi
unsigned long deltatempo2;//tempo di attesa in mancanza di eventi

//shiftout
int latchPinOUT = 7;//ST_CP di 74HC595 pin 12
int clockPinOUT =6;//SH_CP di 74HC595 pin 11
int dataPinOUT = 5;//DS di 74HC595  pin 14

byte ledRossiH = B00000000; //matrice 3x2 di led 
byte ledVerdi = B00000000; //matrice 3x2 di led 
byte ledRossiL = B00000000; //matrice 3x2 di led 

void setup() 
{
//lcd.begin(16,4);  // set up the LCD's number of columns and rows:
 i=0;
 j=0;
 k=0;
 x=0;

   attachInterrupt(0,sensore1,FALLING); //sensore collegato al pin 2
   attachInterrupt(1,sensore2,FALLING); //sensore collegato al pin 3
     
pinMode(2,INPUT);
pinMode(3,INPUT);

digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
 
//--------------------------shiftout
  pinMode(latchPinOUT, OUTPUT);
  pinMode(clockPinOUT, OUTPUT);
  pinMode(dataPinOUT, OUTPUT);
  
   Serial.begin(9600);
}

void loop()
{
 //------------------------sensore 1
  if (statosensore1==LOW)       
{ 
  count[0]++;
  //Serial.println(count[0]);
 //Serial.println(i);
 // Serial.println(count[0]);
  tempo[0][i]=millis(); i++;
    //   Serial.println(tempo[0]);
      //   Serial.println(tempo[9]);
      
   if(i==10)
  {
    freq[0]=(count[0]-1)*1000/(tempo[0][9]-tempo[0][0]);
   i=0;
   count[0]=0;
  // Serial.println(freq[0]);
   }
  statosensore1=HIGH;
}


 
//---------------------------sensore 2
 if (statosensore2==LOW)        
{ 
  count[1]++;
  tempo[1][j]=millis(); j++;
    
 if(j==10)
  {
    freq[1]=(count[1]-1)*1000/(tempo[1][9]-tempo[1][0]);
   j=0;
   count[1]=0;
 // Serial.println(freq[1]);
   }
  statosensore2=HIGH;
}

deltatempo1=millis()-tempo[0][9];
//Serial.println(deltatempo1);
deltatempo2=millis()-tempo[1][9];

if (deltatempo1>1000)
{
freq[0]=0;
}

if (deltatempo2>1000)
{
freq[1]=0;
}

for(k=0;k<=2;k++)
{
 //  Serial.println("freq[0] ");
  // Serial.println(freq[0]);
 //  Serial.println("freq[1] ");
 //  Serial.println(freq[1]);
   
if(freq[k]>12 && freq[k]<18)
{
     bitWrite(ledRossiH,k,0);// 00000000
      bitWrite(ledVerdi,k,1);// 01000000 accensione del led centrale
     bitWrite(ledRossiL,k,0);// 00000000
   // Serial.println(freq[0]); 
 //Serial.println(bitRead(ledVerdi,k));
  
}
if(freq[k]<10)
{
 // Serial.println(pulseIn(k+2,LOW));
     bitWrite(ledRossiH,k,0);
      bitWrite(ledVerdi,k,0);
     bitWrite(ledRossiL,k,1);// accensione del led inferiore
}
if(freq[k]>20)
{ 
     bitWrite(ledRossiH,k,1);// accensione del led superiore
      bitWrite(ledVerdi,k,0);
     bitWrite(ledRossiL,k,0);
}

    digitalWrite(latchPinOUT,1);     //Pull latch LOW to start sending data
     shiftOut(dataPinOUT, clockPinOUT, MSBFIRST, ledRossiH);    //Send the data byte rossi
       shiftOut(dataPinOUT, clockPinOUT, MSBFIRST, ledVerdi);    //Send the data byte verdi
     shiftOut(dataPinOUT, clockPinOUT, MSBFIRST, ledRossiL);    //Send the data byte rossi 
    digitalWrite(latchPinOUT,0);                      //Pull latch HIGH to stop sending data

}
}
  
void sensore1() //pin 2 a cui attaccare il sensore induttivo
{
  statosensore1=LOW;
}
void sensore2() //pin 2 a cui attaccare il sensore induttivo
{
  statosensore2=LOW;
}

seminatrice_console.pdf (17.5 KB)

Non ne sono sicuro, ma non mi convince l'uso che fai di i,j,k e x.

ciao grazie ho risolto, mi serviva una boccata d'aria ho trovato fili collegati male sulla brad

stefano