Arduino Mega2560 e strano comportamento

Buongiorno a tutti, sono Angelo e sono nuovo del forum.
Uso arduino da abbastanza tempo per i più svariati utilizzi, e per quest'ultimo progetto ricevo da arduino uno strano comportamento.

Vi spiego:
Ho creato una pcb a doc per il progetto, il problema sta in una strana "interferenza" causata dalla pressione di uno pulsante, dei sei presenti, che manda a livello alto altre due porte di arduino, e non capisco il problema.

un pezzo di codice è questo, relativo alla lettura della pressione dei tasti:

if(digitalRead(pulsanteAA) == HIGH) {
          if(millis()>=punteggioTime_A+(tempoAttesa.toInt()*1000)) {
             alpha = 1;
             punteggioTime_A = millis();
             digitalWrite(ledAA, HIGH);
             digitalWrite(ledAB, LOW);
           } 
      }
      
      if(digitalRead(pulsanteAB) == HIGH) {
          if(millis()>=punteggioTime_B+(tempoAttesa.toInt()*1000)) {
             alpha = 2;
             punteggioTime_B = millis();
             digitalWrite(ledAA, LOW);
             digitalWrite(ledAB, HIGH);
           } 
      }

ho provato anche con il debounce, ma il problema non cambia.
Leggento per curiosità cosa mi sparava fuori in seriale, ho notato questo:
AA , BA sono i nomi dei pulsanti..

Quando non premo nulla mi ritorna che ogni pulsante è a valore logico 0
AA: 0 - BA: 0 - CA: 0 --- AB: 0 - BB: 0 - CB: 0

Se premo il pulsante BA per esempio, mi ritorna questo, che è corretto:
AA: 1 - BA: 0 - CA: 0 --- AB: 0 - BB: 0 - CB: 0

Se premo invece BB mi ritora questo che non può essere cosi:
AA: 0 - BA: 0 - CA: 1 --- AB: 0 - BB: 1 - CB: 1

quindi BB diventa 1 ed è giusto, ma CA e CB dovrebbero essere a 0 non a 1..

Speso di aver spiegato bene, e confido nella vostra esperienza.
Grazie mille a tutti.

Anj87:
Buongiorno a tutti, sono Angelo e sono nuovo del forum.

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Grazie, ora mi sono presentato :slight_smile: :slight_smile:
Ho provato a dare un occhio ai vari link, però non trovo soluzione al mio problema (ammesso che lo sia e non sia solo un problema di inesperienza)...

Link generici.

Nel tuo caso:

  1. nella pressione dei pulsanti devi tenere conto del debounce, ovvero falsi segnali 1-0-1 quando premi un pulsante
    http://arduino.cc/en/Tutorial/Debounce
  2. fai un disegno del circuito hw, magari il problema stà li.

Grazie per la risposta,
allora avevo gia provato cn il debounce, magari ora riporovo con più accuratezza.
Nel frattempo allego le immagini per una maggior chiarezza.

Nell'immagine "terminale_A" si possono notare che in entrata/uscita tramite un rj45 arrivano il GND e i 5V più due pin per i pulsanti e 2 pin per i led.

Nell'immagine "Schema_a_Arduino" si può vedere che sempre tramite l'rj45 vi sono i vari collegamenti, notando che appunto i terminali sono 3, quindi i famosi 6 pulsanti di prima.

Nell'immagine "PCB" mostro il disegno (una parte) del pcb realizzato con i collegamenti vari.

Una cosa che mi faceva venire il dubbio, sono le piste che ho creato a 90°, avevo letto che potevano dare fastidio e generare strani impulsi magnetici... :astonished: :astonished:

Spero di essere stato esaustivo. :slight_smile: Grazie mille...

Per non lasciare il post aperto....
Ho risolto con alcune resistenze abbassando cosi la tensione che mi creana interferenze.