Remonter d'info Moniteur Serie

Bonjour,

je suis nouveau dans la programmation et de plus dans l'arduino...

je souhaitais remonter des info sur le moniteur série: 2 boutons on/off (1/0): en port 10et l'autre 11 1 potentiomètre: en A0 2 leds dont une verte et un rouge: une en 12 et l'autre en 13

niveau branchement es-ce bon?

si quelqu'un peu m'aiguiller dans le code :-)

Ps: je suis sous Léonardo

Merci

Bonjour, La boule de cristal est tombée, elle ne fonctionne plus ;) Comment est fait ton câblage (mettre le schéma ou plan de câblage ou une photo) ?

Voila mon schema

Merci a toi

Re,

SkyDrive91: Voila mon schema

Ton schéma est bon, mais maintenant tout va dépendre de ton programme surtout au niveau déclaration des interrupteurs. @+

Sachant que c'est un test les leds n'ont pas d'utilité pour l'instant donc ne pas en tenir compte, je voudrais juste faire remonter les infos des interrupteurs et du potar

Voici mon code (qui est loin d’être complet):

const int ledPin =  13;
const int BoutonG =  10;
const int BoutonD =  11;

int ledState = LOW;


unsigned long previousMillis = 0;


const long interval = 1000;

void setup() {
  
  Serial.begin(9600);
  
  pinMode(BoutonG, OUTPUT);

  pinMode(BoutonD, OUTPUT);
}

void loop() {

  int sensorValue = digitalRead(BoutonG); // lit l'état du BoutonG et met le résultat dans la variable
  Serial.println(sensorValue, DEC);


  
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {

    previousMillis = currentMillis;


    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }


    digitalWrite(ledPin, ledState);
  }
}

Comment faire pour ajouter un 2eme bouton et le potar?

Bonjour,

Il y a quelques problèmes dans ton schéma

  • si tu tiens absolument à mettre tes boutons entre l'entrée et le 5V, il te faut mettre une résistance de pull down (4.7k à 10k entre l'entrée et GND) autrement tu vas avoir des états indéfinis sur tes entrées. Il est en général préférable d'utiliser le pullup interne et mettre le bouton entre l'entrée et GND.

  • Pour ton potentiomètre, l'entrée doit être connecté au point milieu. GND et 5V aux points extérieurs sinon tu va faire disjoncter l'alim quand tu sera en butée d'un des cotés. Mais c'est peut être la représentation qui est fausse et la connexion réelle bonne.

Dans ton programme des boutons doivent être déclarés en entrée

pinMode(BoutonG, INPUT);

ou

pinMode(BoutonG, INPUT_PULLUP);

si tu décides d'utiliser le pullup interne (et de connecter test boutons entre entrée et GND)

Et ta led en sortie

pinMode(ledPin , OUTPUT);

Bonjour Kamill deja merci pour commencé ;-)

je viens de rajouter les résistances de PULL DOWN et je changé "pinMode(BoutonG, OUTPUT);" en "pinMode(BoutonG, INPUT);" mais maintenant sur le moniteur je n'ai plus de changement d’état (passage de 1 a 0) il passe en 0 pendant l'action et se remet a 1 une fois l'action fini :-/

Comment fais-tu pour avoir les infos des 2 boutons qui ressorte sur le terminal?

Je ne comprend pas ce que tu veux dire. Avec ton programme tel que tu l'a mis plus haut, tu devrais afficher 0 quand le bouton est relaché et 1 quand il est appuyé.

Qu'est ce que tu veux afficher sur le terminal. L'état du bouton ou de la led ?

Si tu veux afficher l'état de 2 boutons, il suffit d'utiliser 2 variables

 int sensorValueG = digitalRead(BoutonG); // lit l'état du BoutonG et met le résultat dans la variable
 int sensorValueD = digitalRead(BoutonD); // lit l'état du BoutonD et met le résultat dans la variable
 Serial.print("G:");
 Serial.print(sensorValueG);
 Serial.print("   D:");
 Serial.println(sensorValueD);

Ce n'est pas un bouton poussoir mais un enfin deux interrupteurs c'est pour ça qu'il repasse a l’état 1 je pense

Je vais tester ton code merci ;-)

Voici mon nouveau code:

const int BoutonG =  10;
const int BoutonD =  11;
const int ledPinGreen =  13;
const int ledPinRed =  12;

int buttonStateG = 0;
int buttonStateD = 0;

void setup() {

  Serial.begin(9600);

  pinMode(BoutonG, INPUT);
  pinMode(BoutonD, INPUT);
  pinMode(ledPinGreen, OUTPUT);
  pinMode(ledPinRed, OUTPUT);
}


void loop() {

  buttonStateG = digitalRead(BoutonG);
  buttonStateD = digitalRead(BoutonD);

  if (buttonStateD == HIGH) {

    digitalWrite(ledPinRed, HIGH);
  }
  else {

    digitalWrite(ledPinRed, LOW);
  }

  if (buttonStateG == HIGH) {

    digitalWrite(ledPinGreen, HIGH);
  }
  else {

    digitalWrite(ledPinGreen, LOW);
  }

  int sensorValueG = digitalRead(BoutonG); // lit l'état du BoutonG et met le résultat dans la variable
  int sensorValueD = digitalRead(BoutonD); // lit l'état du BoutonD et met le résultat dans la variable
  int sensorValueLedG = digitalRead(ledPinGreen); // lit l'état du ledPinGreen et met le résultat dans la variable
  int sensorValueLedR = digitalRead(ledPinRed); // lit l'état du ledPinRed et met le résultat dans la variable
  Serial.print("ledPinGreen:");
  Serial.print(sensorValueLedG);
  Serial.print("ledPinRed:");
  Serial.print(sensorValueLedR);
  Serial.print("BoutonG:");
  Serial.print(sensorValueG);
  Serial.print("BoutonD:");
  Serial.println(sensorValueD);

}

peux-tu me dire d’où vient le problème avec mes boutons qui reste en 1?

Si c'est vraiment un interrupteur avec deux états stables, c'est normal qu'il reste dans le dernier état.

C’est bon tout est reglé

Voici le code:
(+ schéma modifier)

const int BoutonG =  10;
const int BoutonD =  11;
const int ledPinGreen =  13;
const int ledPinRed =  12;

int buttonStateG = 0;
int buttonStateD = 0;
int potPin = A0;



void setup() {

  Serial.begin(9600);

  pinMode(BoutonG, INPUT);
  pinMode(BoutonD, INPUT);
  pinMode(potPin, INPUT);
  pinMode(ledPinGreen, OUTPUT);
  pinMode(ledPinRed, OUTPUT);
}


void loop() {
  
int sensorValueG = digitalRead(BoutonG); // lit l'état du BoutonG et met le résultat dans la variable
int sensorValueD = digitalRead(BoutonD); // lit l'état du BoutonD et met le résultat dans la variable
int sensorValueLedG = digitalRead(ledPinGreen); // lit l'état du ledPinGreen et met le résultat dans la variable
int sensorValueLedR = digitalRead(ledPinRed); // lit l'état du ledPinRed et met le résultat dans la variable
int sensorValuepotPin = analogRead(potPin); // lit l'état du ledPinRed et met le résultat dans la variable



  if (sensorValueD == HIGH) {

    digitalWrite(ledPinRed, HIGH);

  }
  else {

    digitalWrite(ledPinRed, LOW);
  }

  if (sensorValueG == HIGH) {

    digitalWrite(ledPinGreen, HIGH);

  }
  else {

    digitalWrite(ledPinGreen, LOW);
  }


  Serial.print("potPin:");
  Serial.print(sensorValuepotPin);
  Serial.print("ledPinGreen:");
  Serial.print(sensorValueLedG);
  Serial.print("ledPinRed:");
  Serial.print(sensorValueLedR);
  Serial.print("BoutonG:");
  Serial.print(sensorValueG);
  Serial.print("BoutonD:");
  Serial.println(sensorValueD);
  delay(1000);

}