contact sec avec un PNP

Bonjour à tous,

Est-il possible de réaliser un contact sec avec un transistor PNP ?

Merci par avance.

Raspoutitsa:
Est-il possible de réaliser un contact sec avec un transistor PNP ?

Bonsoir
C'est qoui pour toi , un "contact sec" ? 8)

Un interrupteur "simple" donc libre de potentiel.

En gros mon arduino doit jouer le rôle d'un interrupteur simple sur un circuit électronique déjà complet.
Je pourrais raccorder ce circuit directement à l'arduino mais quand celui-ci est éteint le circuit est ouvert.

@pepe, peux-tu m'en dire plus ? la tension du circuit est de l'ordre de 3V.

Raspoutitsa:
Un interrupteur "simple" donc libre de potentiel.

Pour moi :
un contact sec , c'est "un" simple établissement de contact "métalliques" entre 2 extrémités
C'est la cas d'un contact de relais électromagnétique, d'un simple interrupteur "domestique", "de 2 bouts de fils qui se touchent 8) , ... autres
Mais ce n'est surement pas une possibilité "offerte" par un transistor (quel qu’il soit)

Artouste:
Pour moi :
un contact sec , c'est "un" simple établissement de contact "métalliques" entre 2 extrémités
C'est la cas d'un contact de relais électromagnétique, d'un simple interrupteur "domestique", "de 2 bouts de fils qui se touchent 8) , ... autres
Mais ce n'est surement pas une possibilité "offerte" par un transistor (quel qu’il soit)

C'est aussi la définition que j'ai d'un contact sec. J'attend toutefois de voir ce que pepe a derrière la tête

Jambe:
C'est aussi la définition que j'ai d'un contact sec.

Note aussi au passage que je considère comme sec , un contact inter métallique éventuellement en phase liquide (I.e Hg)
8)

pepe:
C'est une évidence. Un transistor n'étant pas un contact électromécanique, on doit comprendre la question dans sens où le transistor "ferait office de" contact sec, et où la fonction essentielle recherchée est la commutation tout-ou-rien.

Bonsoir pepe

perso mon pragmatisme , me pousse très simplement à répondre juste au "postulat" exposé

pour simple "rappel" de la question initiale

Est-il possible de réaliser un contact sec avec un transistor PNP ?

pepe:
et où la fonction essentielle recherchée est la commutation tout-ou-rien.

c'est exactement ca !

Je suis vraiment profane en elec et vous pouvez pas imaginer la satisfaction d'avoir l'impression d'être compris.

La partie électronique est vraiment la partie la plus simple, le code Arduino fait 4 lignes mais n'ayant pas les compétences cela me demande plus d’énergie que je ne l'avais pensé. Initialement, je voulais connecté directement l'arduino.

Mon idée est de piloter une télécommande à distance par l’intermédiaire de l'arduino. Le circuit imprimé de la télécommande comporte deux pistes et l'ordre est envoyé lorsque celle-ci sont en court circuit.
Le rôle de l'arduino sera donc de faire ce court circuit.La télécommande cible est piloté par un accu 3V 160mah.

Après,si vous me dite qu'utiliser un pnp ne rime à rien,je peux acheter un ensemble de 4 relais sur ebay.

Pour les faibles puisances il existe des relais ampoules (1) encapsulés dans un petit boitier DIP avec bobine et diode de protection.
L'avantage est d'avoir un vrai contact indépendant d'un quelquonque potentiel ce qui n'est pas possible avec un transistor.
Un contact par lames mues mécaniquement est pour moi aussi est la définition d'un contact sec. (2)

(1) appelés aussi ILS ou relais reed.
Le transistor de commande reste nécessaire.

(2) je suis d'accord y compris ceux mouillés au mercure car c'est bien connu que le mercure ne mouille pas :grin: .

Merci pour toutes ces informations.

Vu mon niveau en électronique je ne vais pas prendre de risque et acheter ce module :

lien

Je vous tiens au courant

N'oublie pas qu'un relais c'est une pièce mécanique et qu'il y aura obligatoirement des rebonds.

D'un autre coté si "la chose" que veut utiliser était prévue pour être actionnée avec un bouton poussoir les rebonds d'un relais ou d'un bouton poussoir sont les mêmes et ont déjà été pris en compte.

68tjs:
...
Le transistor de commande reste nécessaire.

bonjour 68tjs
on trouve des relais ILS dont le courant de bobine est compatible avec ce que peux fournir un pin en output

BOnjour à tous,

Relais reçus par contre je deviens chèvre.

Le câblage est exactement comme celui-ci :

Pour faire mes tests je n'ai rien derrière les relais, je veux juste les faire claquer.

Sauf que, quand je fais un script tout simple :

const int disarm = 7;
int i = 0
void setup() {
        Serial.begin(9600);    
         pinMode(disarm, INPUT_PULLUP);  // J'ai essayé avec et sans :/
        pinMode(disarm, OUTPUT);
          
}

void loop() {

       if (i == 0){
                    digitalWrite(disarm, HIGH);   
                    delay(500);
                    digitalWrite(disarm, LOW);  
                    delay(500);

       }

                    
}

Le relais reste collé. Au fil de mes recherches, j'ai vu que ca pouvait être un probleme de tension vu que la carte relais est alimenté directement par l'arduino.

Sauf que, si je modifie ma boucle comme cela :

void loop() {

  
                    digitalWrite(disarm, HIGH);   
                    delay(500);
                    digitalWrite(disarm, LOW);   
                    delay(500);

     

                    
}

Le relais fait bien un UP/down.

Je suis perdu.

Quelqu'un pour m’éclairer ?

Merci.

Erreur dans le copier/coller. À première vu il manque le ; après i =0. Je mets le code à jour dans le précédent post

J'ai compris ce qu'il se passe.

Par defaut, lorsqu'on donne l'instruction pinMode(....,OUTPUT) la sortie est automatiquement mise en HIGH.
Le contournement c'est donc de specifier pinMode(...,INPUT_PULLUP) mais dans ce cas les notions de HIGH et LOW sont inversés.

Voila le code corrigé (assez content que cela fonctionne !) :

const int disarmP = 2;
const int ArmP = 3;
const int PartP = 4;
const int StatusP = 5;

void setup() {
  Serial.begin(9600);    
  
  pinMode(disarmP, INPUT_PULLUP);
  pinMode(disarmP, OUTPUT);
  
  pinMode(ArmP, INPUT_PULLUP);
  pinMode(ArmP, OUTPUT);
  
  pinMode(PartP, INPUT_PULLUP);
  pinMode(PartP, OUTPUT);
  
  pinMode(StatusP, INPUT_PULLUP);
  pinMode(StatusP, OUTPUT);
}


void loop() {
  if (Serial.available() > 0) {
    int value = Serial.read();
      
    switch(value) {
      case 68:
        digitalWrite(disarmP, LOW);
        delay(1500);
        digitalWrite(disarmP, HIGH);
        break;
      case 65:
        digitalWrite(ArmP, LOW);
        delay(1500);
        digitalWrite(ArmP, HIGH);
        break;
      case 80:
        digitalWrite(PartP, LOW);
        delay(1500);
        digitalWrite(PartP, HIGH);
        break;
      case 83:
        digitalWrite(StatusP, LOW);
        delay(1500);
        digitalWrite(StatusP, HIGH);
        break;
    }   
  }

}