Go Down

Topic: Utiliser un interrupteur à clef (Read 211 times) previous topic - next topic

Galaksy2020

Bonsoir à la communauté  ;)

Je commence tout juste dans l'arduino. J'ai réussi grâce à des tutos de la communauté à créer 2 sketchs de commande en hexa : une commande On et une commande Off pour un contrôleur.

Je souhaiterai utiliser un interrupteur à clef pour lancer soit la commande Off, soit la commande On et je ne parviens pas à trouver un tuto à ce sujet. J'en viens à me demander si c'est possible ...

Une âme charitable pour m'orienter à ce sujet ?

Merci par avance  :)

PBZOOM

bonjour.    a mon avis..

il faut statuer sur le modèle d'interrupteur a clef ,

avec un lien (net) ,

 a partir de la , voir  a quel type d' interrupteur simple on peu l' assimiler.(schémas câblage)
       voir exemple botton arduino ide...
puis en fonction de se que vous lui demandez   intégrer  dans votre programme existant
les lignes conditionnelle(if) déterminant telle ou telle action.

ensuite si vous partez sur un anti rebond programme (=! de matériel) il vous faudra déterminer le délai nécessaire...

c' est une façon parmi d' autres..

68tjs

Que l'interrupteur soit à clé ou pas à clé ne demande pas de tuto particulier.
La clé c'est juste pour que seules les personnes qui ont la clé puissent manœuvrer l'interrupteur.

Ce qu'il faut connaître c'est ce qu'il fait.
Combien de contacts ?
Au repos les contacts sont t-il ouverts ou fermés ?
Il y en a t-il d'ouverts et d'autres fermés ?
S'agit t-il de contacts simples ou de contacts à deux positions, on parle alors d'inverseur.
Une fois activé les contacts sont-il éphémères (dès qu'on relache ils retrouvent leur position de repos) ou permanents et pour les faire retrouver leur position de repos il faut tourner la clé ?

Donc oui un lien cliquable (utiliser l'icône en forme de chaîne) vers le matériel est indspensable.

Autre point indispensable : lire les tuto d'Eskimon autant pour débuter la programmation que pour connaître le matériel, les interrupteurs sont bien évidement traités.
Tu peux les trouver soit directement (Qwant, gogole, etc) soit en suivant le lien "Zeste de savoir" accessible à partir du message épinglé "Règles du Forum Francophone" qui donne aussi des conseils et qu'il faut lire.

Galaksy2020

#3
Oct 28, 2019, 10:50 am Last Edit: Oct 28, 2019, 10:51 am by Galaksy2020
Bonjour,

Merci beaucoup pour votre aide et sincèrement désolé pour la réponse tardive mais je ne me souvenais plus du tout sur quel forum et avec quel nom d'utilisateur j'avais écrit ce message !  :smiley-confuse:  :smiley-confuse:  :smiley-confuse:

Pour répondre à la principale question posée, voici le type d'interrupteur que j'ai :

Interrupteur à clef KS5

C'est le câblage qui m'interroge le plus ...

Je vais bien sur faire un tour sur les tutos dispos :)

hbachetti

Avec un ohmmètre ... déterminer si les contacts sont ouverts ou fermés au repos ne devrait pas être insurmontable.

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

fdufnews

La doc ne donne aucune indication. Il faut donc tester pour savoir quels contacts utiliser.

Galaksy2020

#6
Oct 28, 2019, 11:53 am Last Edit: Oct 28, 2019, 11:55 am by Galaksy2020
Merci pour votre réactivité ! ;)

J'ai suivi le schéma de montage suivant (en connectant sur la bread board les pins 1 et 2 de l'interrupteur) avec le sketch correspondant :

Schéma button

La led ne s'allume pas, par contre la résistance chauffe beaucoup quand je bascule l'interrupteur dans le sens horaire ( j'ai mesuré la tension à 4v) et s'arrête de chauffer dans le sens inverse : plutôt encourageant ...


fdufnews

s'arrête de chauffer dans le sens inverse : plutôt encourageant ...
C'est une façon de voir les choses.
Mais, si tu as, comme dans le lien que tu cites, utilisé une résistance de 10K c'est étonnant qu'elle chauffe.

Galaksy2020

#8
Oct 28, 2019, 12:15 pm Last Edit: Oct 28, 2019, 12:24 pm by Galaksy2020
En fait je viens de m'apercevoir que j'ai utilisé une résistance de 220 ohms ... J'en déduis que j'ai du niquer la led ?

Pas grave, j'apprends ! En tout cas mon contact on/off se fait bien, c'est ce que je voulais avant tout.

Maintenant plus qu'à envoyer les conditions.

Edit : dans ma situation, je n'ai pas besoin de résistance si c'est pour envoyer un code ?
Et pour le sketch, si je comprends bien :  si pin 2 (high) alors commande off sinon commande on. C 'est ça ?

hbachetti

220Ω sous 5V donnent 20mA et 100mW. Cela ne doit pas chauffer énormément.

La LED sur D13 possède sa propre résistance, aucune chance de la griller.

La résistance est inutile si tu places le bouton entre D2 et GND et que configures ton bouton en INPUT_PULLUP.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Galaksy2020

Est-ce que the sketch vous parait correct ? :

Code: [Select]
// constants won't change. They're used here to set pin numbers:
const int buttonPin = 3;     // the number of the pushbutton pin
#define ENABLE 10      // for read

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // Baud transmission speed
  Serial.begin(9600);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
  // initialize the pin 10 as output
  pinMode(ENABLE, OUTPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {  
  digitalWrite(ENABLE, LOW); //power down signal
  delay(50);
  uint8_t cmdOff_1[9] = {0x16, 0x00, etc ...}; //motor off
  Serial.write(cmdOff_1, 9);
  delay(50);
  uint8_t cmdOff_2[9] = {0x16, 0x00, etc ...}; //light off
  Serial.write(cmdOff_2, 9);
  delay(50);
  } else {
  digitalWrite(ENABLE, HIGH); //power up signal
  delay(50);
  uint8_t cmdOn_1[9] = {0x16, 0x01, etc ...}; //motor on
  Serial.write(cmdOn_1, 9);
  uint8_t cmdOn_2[9] = {0x00, 0x01, etc ...}; //light on
  Serial.write(cmdOn_2, 9);
  uint8_t read_on[16] = {0x08, 0x4c, et ...}; //read
  Serial.write(read_on, 16);
  delay(1000);
  }
}

Galaksy2020

220Ω sous 5V donnent 20mA et 100mW. Cela ne doit pas chauffer énormément.

La LED sur D13 possède sa propre résistance, aucune chance de la griller.

La résistance est inutile si tu places le bouton entre D2 et GND et que configures ton bouton en INPUT_PULLUP.

Ok , merci. Je modifie mes connections et je rectifie mon sketch publié dans le post précédent.

Galaksy2020

Bon ben ... tout fonctionne !  :)  :)  :)

Merci beaucoup pour votre aide et à bientôt sur le forum car je commence à prendre goût à cette bestiole qu'est l'arduino  ;)

hbachetti

Au plaisir ... bonne continuation
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Go Up