Arduino Due problème de lecture par le Serial Monitor des pins digitales

Bonjour,
Je suis novice en Arduino et j'essaie depuis 3 jours à essayer de relire l'état de pins digitales de mon Arduino Due et ceci dans le but de débugger un programme que j'essaie d'adapter à mon utilisation

Dans ce but , j'ai écrit un petit code , que j'espère sans trop d'erreurs pour relire l'état d'une pin 44 de l'Arduino Due afin de comprendre la synthase à utiliser
Il me renvoie toujours l'état 0, mais si la pin sort du 3.3v contrôlé au volmètre.

:grin: Merci pour toutes vos pistes ou solutions que vous pouvez me proposer

Nota: Merci de déplacer ce post et de m'en informer si j'ai publié ce post à un mauvais endroit ( SVP pas un forum en anglais ! , l'anglais je dois le traduire via Google )

Code renvoyant un mauvais résultat : 0 quelque soit l'état de la pin digitale

/*PB RELECTURE D'UN PORT DIGITAL d'une Arduino DUE  
   Problème
   serial.print renvoie toujours comme réponse 0 que le port soit HIGH ou LOW
   L'état réel du port est conforme à la commande : vérification faite au voltmètre
   But
   Lire par le serial monitor l'état de sortie de pin digital dans le but de débuger un code
   que j'essaie d'adapter
*/
const int Pin_44 = 44;
int valeurPin44 =0;

void setup() 
{
pinMode (Pin_44,OUTPUT) ; 
digitalWrite (Pin_44,HIGH);           // idem à essai avec digitalWrite (44,HIGH);
Serial.begin(115200) ;
delay(1000);
}

void loop() 
{
valeurPin44 = digitalRead(Pin_44);
Serial.println(valeurPin44);          // ERREUR Affiche toujours 0 alors que l'état est HIGH 
}

bonjour,
mauvaise section

si rien de connecté sur la pin, ca renvoie zéro, normal

Bonjour
Merci pour la réponse.
Si je branche un voltmètre sur la pin , Serial Monitor doit donc indiquer le bonne état ?

Y-a-il un code qui retournerait le bon résultat même sur l'Arduino est connecté à aucun consommateur.?
Les ports de registre ne peuvent -ils pas résoudre le problème. Je n'ai jamais réussi à les utiliser.
Avez-vous un code avec Serial Monitor et un OUTPUT Digital qui les utilisent?

Afin de ne pas ouvrir un nouveau post dans une mauvaise section , merci de me fournir le lien vers les post en français de ce genre :grin:

Bonsoir,

Impatient après plusieurs journée de recherche , j'ai branché un voltmètre sur la pin digitale de l'Arduino Due :

  • Serial Monitor reste à 0 quelque soit l'état de la pin
  • Le voltmètre digital répond fidèlement à chaque test

Il me semblait bien avoir déjà fait ce test infructueux.
Avez vous d'autres pistes pour tester les pins digitales non câblées

Nota: le test des pins Output PWM avec un autre code fonctionne très bien avec Serial Monitor

Avec les Arduino Uno , le problème est le même ?

Bonjour

Je n’arrive toujours pas à lire l’état des pins digitales.
J’ai essayé , d’étudier des posts du forum anglais afin de passer par la manipulation des ports et j’ai toujours laissé un voltmètre connecté sur la pin testée

Voici le nouveau code que j’ai testé en vain ( sur le forum anglais le post que j’ai essayé de comprendre n’aboutit pas à une solution)
Le Sérial Monitor renvoie toujours un " 0 " ! :stuck_out_tongue_closed_eyes:

int Pin_44;

void setup() {
 Serial.begin(115200);
 pinMode(44,OUTPUT);
 }

void loop(){
  
  // *******************************************************
  // ****** Arduino Due avec SAM 3x8e  et IDE 1.63  ********
  // *******************************************************
  
   Pin_44 = 6666;                       // Valeur quelconque pour vérifier la lecture par les registres
     
 //digitalWrite(44,LOW);                       // Pin_44 (PC19) LOW
   REG_PIOC_CODR = 0x1 << 19;                   // Pin_44 (PC19) LOW            Fonctionne car vérifié au voltmètre
  
 //Pin_44 = digitalRead(44);                                            //ERREUR REVOIE TOUJOURS O
   Pin_44 =(PIOC->PIO_PDSR & (1 << 19));  //lecture Pin_44 (PC19))      //ERREUR REVOIE TOUJOURS O
   Serial.print("Le resulat devrait etre 0( LOW )  ---> ");
   Serial.print(Pin_44);
   
  
  delay (1000);
    Pin_44 = 9999;                       // Valeur quelconque pour vérifier la lecture par les registres

//digitalWrite(44,HIGH);                    // pin Pin_44 (PC19) HIGH
  REG_PIOC_SODR = 0x1 << 19;                // pin Pin_44 (PC19) HIGH           Fonctionne car vérifié au voltmètre

 //Pin_44 = digitalRead(44);                                            //ERREUR REVOIE TOUJOURS O
   Pin_44 =(PIOC->PIO_PDSR & (1 << 19));  //lecture Pin_44 (PC19))      //ERREUR REVOIE TOUJOURS O
   Serial.print("                Le resulat devrait etre 1( HIGH )  ---> ");
   Serial.println(Pin_44);
  
  delay(2000);
}

J’utilise une Arduino Due avec un SAM 3X8E

Ai-je des fautes dans mon code ?

Avez-vous déjà réussi à le faire ?

Merci de toute votre aide ! :grin: