Créer un retardateur

Bonjour,
Je voudrais créer un petit boîtier avec un jack femelle en entrée et un jack femelle en sortie pour retarder un signal. J'aimerais pouvoir régler le retard de 0 à 1000 millisecondes à l'aide d'un potentiomètre.

Le but de ce projet est le suivant : sur les appareils photos de la gamme GFX (Fujifilm), le "shutter lag" de l'obturateur (temps d'inertie) est d'une lenteur épouvantable (de l'ordre de la demi-seconde). Ce qui fait que si on déclenche le boîtier et une sirène (par exemple) en même temps (1 seul contacteur pour les deux), la photo est prise 1/2 seconde trop tard. Je voudrais que le boîtier permette (à l'aide d'un potentiomètre) de trouver le bon retard pour que les deux événements soient synchrones. Pensez-vous que la choses soit réalisable en Arduino ?

PS : je suis un grand débutant né dans les années 40. Pardonnez-moi si ma question vous semble triviale.

Bonjour Dormeur74

As-tu déjà "fait de l'Arduino"?
As-tu déjà lu un potentiomètre et un contact?

A+
Cordialement
jpbbricole

Il faut que tu décrives le signal à retarder. Est-il du type Tout ou Rien ?

Pardon? :sweat_smile:

@flix09 c’est le fil de @Dormeur74

Cherchez sur internet avant de venir dérailler cette discussion.

Merci beaucoup pour votre réactivité. Je vais d'abord répondre aux questions posées, puis décrire mon besoin précisément.

  • oui, j'ai déjà réalisé quelques projets en Arduino : un calculateur de profondeur de champ pour la photographie, un séchoir à légumes qui suit la trajectoire du soleil et un portillon électronique pour mon poulailler.
  • oui, le signal est un courant de 12 volts qui doit passer ou non pour alimenter un électro-aimant (je ne sais pas si on peut parler de TOR, mais ça y ressemble).

Détail du besoin. J'ai un boîtier de commande (contacteur simple) qui fait deux choses :

  1. il déclenche l'appareil photo (câble de commande à distance filaire classique : circuit 1)
  2. il commande un retardateur qui va envoyer un courant de 12 volts vers un électro-aimant (circuit 2).

Le shutter lag de l'obturateur (inertie) met entre 100 et 1000 millisecondes pour réagir (temps variable ne dépassant jamais 1 seconde), ce qui fait qu'avec le retardateur à zéro, l'électro-aimant se déclenche et l'obturateur s'ouvre trop tard. Le potentiomètre a pour but de régler le retard pour que les deux circuits soient à peu près synchrones.

vous pouvez faire, en fait - adapter légèrement l'exemple de l'IDE arduino

Merci pour le retour.
Pourriez-vous me donner le lien avec l'exemple dont vous parlez ? Je ne manquerai pas de l'adapter si la chose est possible et s'il utilise la fonction millis().

Bonjour Dormeur74

Une dernière petite question, vu que l'on a qu'un contact de commande cela veut dire que l'e retardateur Arduino devra "coexister", sur ce contact, avec l'appareil de photo. Est cela risque de poser un problème, sachant que l'entrée de l'Arduino aura une résistance PULL_UP (contre +5v,), entre 20 et 50k.

Cordialement
jpbbricole

Si je comprends bien, tu veux décaler la sirène pour qu'elle ait le même retard que l'obturateur ?
Dans ce cas, c'est assez simple : lorsque le signal de déclenchement de l'obturateur est émis, tu ajoute un
delay(duree);
duree est une variable qui dépend de la valeur lue sur le potentiomètre :

int x = analogRead(pin_pot);
int duree = map(x,0,1023,0,1000);

La fonction map est décrite ici :

Elle fait une interpolation linéaire entre deux bornes (ici 0 et 1000 (ms)) à partir d'une valeur de référence (ici x) qui varie dans un intervalle (ici 0, 1023)

Après le delay, tu déclenches la sirène.

Bonjour jpbbricole,
Je ne suis pas certain d'avoir bien compris (jamais fait d'électro, trois fois hélas !).
Non, il ne doit surtout pas y avoir de coexistence entre l'appareil photo et le retardateur. Le contacteur unique doit permettre de fermer deux circuits indépendants, chacun d'eux ayant sa propre alimentation (circuit 1 = appareil photo et circuit 2 = électro-aimant).

C'est exactement ce que je veux faire : retarder le déclenchement de la sirène avec un bouton pour régler le retard, si possible en millisecondes.

dessiner le schéma courant

Tu peux faire un prototype sur breadboard, par exemple avec un potentiomètre, un bouton poussoir et une LED. L'appui sur le bouton représente l'arrivé du signal de l'obturateur, la LED la sirène.
Un exemple de code :

#define pin_pot A0
#define pin_LED 13
#define pin_bouton 7

void setup() {
  Serial.begin(115200);
  pinMode(pin_LED, OUTPUT);
  pinMode(pin_bouton, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(pin_bouton) == LOW) { // bouton enfoncé
    unsigned int x = analogRead(pin_pot);
    Serial.print("Valeur potentiomètre : ");
    Serial.print (x);
    unsigned int duree = map(x, 0, 1023, 0, 1000); // millisecondes
    Serial.print(" durée (ms) : ");
    Serial.println(duree);
    delay(duree);
    digitalWrite(pin_LED, HIGH);
    delay(1000);
    digitalWrite(pin_LED, LOW);
  }
}

Le potentiomètre est connecté sur la pin A0 comme ceci :

Le bouton poussoir est connecté entre GND et la pin 7, comme ceci :


La LED est connectée entre la pin 13 et le GND, avec une résistance de limitation de courant (220 Ohms typiquement) comme ceci :

Le code a été écrit sans tester, donc il peut ne pas fonctionner comme prévu.
Ce qui est attendu : tu règles le potentiomètre comme tu le désires, tu appuies sur le bouton. Après un délai (fonction de la valeur du potentiomètre, entre 0 et 1 seconde), la LED s'allume puis s'éteint au bout d'une seconde. La valeur du potentiomètre et la durée sont affichées dans la console (régler sur 115200 baud).

Merci beaucoup, ça constitue une bonne base de départ.

Petite modification : la ligne suivante n'est pas nécessaire
pinMode(pin_pot, INPUT);

OK, je supprime.

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