Bouton poussoir en interrupteur

Bonjour, je débute sur Arduino, j'ai appris comment marchait le bouton poussoir et j'ai essayé d'en faire un interrupteur.

Mon code ne marche pas, j'ai trouvé des solutions sur ce forum mais j'aimerais comprendre ce qui ne marche pas dans mon code... Le voici:

const int buttonState =2;
const int ledPin = 13;

voice(setup){
pinMode(buttonState, INPUT);
pinMode(ledPin, OUTPUT);
}

voice (loop){
if (digitalRead(buttonState)==HIGH){
if (digitalRead(ledPin)==LOW){
digitalWrite(ledPin)= HIGH}
else{
digitalWrite(ledPin)=LOW}
}
}

Je ne cherche pas comment améliorer ce code, mais simplement comprendre pourquoi il ne fonctionne pas!
Merci de vos conseils!

Thibault

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone”

La syntaxe correcte serait :

digitalWrite(ledPin,LOW);

Bonjour,

Un forum cela se parcoure avant de se précipiter pour poser sa question.
Ici sur tu es sur la partie francophone du forum et nous avons nos règles propres.
En premier comme Perry te l'a déjà demandé, il faut lire le message épinglé :

Important quand tu postes du code :
Il faut obligatoirement le placer entre balises codes ( icône </> ) .
Sinon il peut apparaître des caractères bizarres à l'intérieur et personne ne le lira.

Mais avant il y a deux opérations importantes à faire pas seulement pour nous, mais principalement pour toi.

  1. Indenter le code. Dans l'éditeur de l'IDE tu fais Ctrl+t.
    Fais-le et tu verras que le code sera plus lisible et qu'il te sera plus facile de trouver tes erreurs.

  2. Il faut compiler le code avant de le poster. Je ne sais pas si le code qui est dans ton message est passé au travers de traducteurs automatiques, mais voice setup() et voice loop() n'ont aucune chance de passer la compilation.
    Quand il y a des erreurs, il faut obligatoirement commencer par corriger la première. Très souvent la première erreur dérègle le compilateur et les suivantes n'existent pas.
    Si tu n'arrives pas à trouver les erreurs, tu le dis, et tu fais un copier coller de ce que contient la fenêtre des erreurs.

Ça, c'est le type de propos qui nous déplait profondément.
Toi, tu sais ce qui ne fonctionne pas comme tu le souhaiterais, mais nous comment on peut le savoir ?

Il n'y a que des bénévoles ici, nous ne demandons pas mieux que donner de l'aide, mais encore faut-il que le demandeur y mette du sien et explique clairement son problème.

En recopiant le code dans l'IDE :

  1. En indentant j'obtiens :
const int buttonState = 2;
const int ledPin = 13;

voice(setup) {
  pinMode(buttonState, INPUT);
  pinMode(ledPin, OUTPUT);
}

voice (loop) {
  if (digitalRead(buttonState) == HIGH) {
    if (digitalRead(ledPin) == LOW) {
      digitalWrite(ledPin) = HIGH
    }
    else {
      digitalWrite(ledPin) = LOW
    }
  }
}
  1. En compilant :
    J'obtiens les erreurs suivantes :

sketch_oct13a:5:7: error: expected constructor, destructor, or type conversion before '(' token
voice(setup){
^
sketch_oct13a:10:7: error: expected constructor, destructor, or type conversion before '(' token

voice (loop){
^
sketch_oct13a:5:6: error: expected constructor, destructor, or type conversion before '(' token

voice(setup){
^
sketch_oct13a:10:7: error: expected constructor, destructor, or type conversion before '(' token
voice (loop){
^
exit status 1
expected constructor, destructor, or type conversion before '(' token

Ces erreurs sont fondamentales le compilation n'a pas pu terminer son analyse.
Il y en ad'autres.

Compare avec ce que j'ai rectifié ci-dessous :

const int buttonState = 2;
const int ledPin = 13;

void setup() {
  pinMode(buttonState, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (digitalRead(buttonState) == HIGH) {
    if (digitalRead(ledPin) == LOW) {
      digitalWrite(ledPin, HIGH);
    }
    else {
      digitalWrite(ledPin, LOW);
    }
  }
}

Il y a encore du travail.
Apprend en consultant :

ou avec le tuto d'Eskimon qui est en français :
https://eskimon.fr/

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.