Activateur temporiser

bonjour j'ai un arduino depuis un moment et la seul chose que j'ai fait dessus c'est d'allumer et éteindre une led .......

bref j'ai un outil a faire, j'ai réussi a le faire avec des compostant (transistor condensateur pn555...) mai il n'est pas très précis.

l’objet est une télécommande dont un laser de 11w qui pointe sur un panneau solaire qui ce trouve dans un pvc a l’abri du soleil et qui déclenche le cycle d'une pompe (solaire et batterie ) qui ce trouve a 600m .
le tous fonctionne parfaitement mais c'est l’activation du laser qui est merdique .(trop rapide et trop lente a la foie)

et pour ceux qui poserai la question non la pompe n'est pas mise en autonomie car le terrain et assé capricieux en ce qui concerne la rétention d'eau ,et le petit filet d'eau qui arrive et lui aussi assé variable .

donc je dois refaire cette télécommande qui doi ce déclencher entre 30 seconde et 5 min
(contrôler par un potentiomètre )
le laser doi rester allumer quelque seconde (le temps d'activer le cycle) le tous sur une tentions usb de 5V
je script sur arma donc je connais le code mai Arduino a l'aire des plus différent
donc pour résulta ce que je souhaite:

 while {true} do {

laser == on;
sleep 4;
laser == off;
sleep (random 5 to 300); // variable selon la résistance 

}; 

merci a ceux qui m’aideront pour ce projet

Je ne connais pas ce langage, mais je peux imaginer ce qu'il signifie

Tu peux utiliser la commande delay à la place du sleep. Delay va stopper ton Arduino pendant une durée en millisecondes
delay(1000);
le bloque pendant une seconde.

Ensuite pour allumer et éteindre ton laser, il faut que l'Arduino commande une de ses sorties. Ça se fait avec digitalWrite (pin, niveau) ; où niveau vaut LOW ou HIGH selon que tu veux mettre la sortie à 0 ou 5V.
Après, il faudrait en savoir un peu plus sur le laser pour préciser comment écrire le code autour de ces instructions.

Pour la durée aléatoire, il existe une commande random aussi. Voici un lien vers la référence des instructions Arduino

Bonjour savoyard902

Pour ce faire il y a une excellente fonction dans le langage Arduino, la fonction map()
Ca donnerai ceci, en supposant que le point milieu de ton potentiomètre est connecté sur l'entrée analogique A0:

	unsigned long tempsEnclenchement = map(analogRead(A0), 0, 1023, 30000UL, 300000UL);     // 30 sec, 5 minutes
	// Enclencher
	delay(tempsEnclenchement);	
	// Déclencher

Joyeux Noël
Cordialement
jpbbricole

j’essaie de décortiquer ca mais globalement voila le schéma (en mode paint )
j'ai oublier de dire mais j'ai que des potentiomètre en 10k

et joyeux noël a tous

Bonsoir savoyard902

Je te rassure, moi aussi. Quand il s'agit de commander quelque chose avec un Arduino et un potentiomètre, j'utilise toujours un 10k.

En mode paint et surtout très "artistique" :wink:
En effet, ton schéma comporte quelques "incohérences".
Voici quelques tuyaux utiles:
Connecter un relais.
Connecter un potentiomètre.
Connecter une LED.

Cordialement
jpbbricole

Un laser de 11W qui pointe à 600m est extrêmement dangereux. C'est un peu comme si pour appuyer sur un bouton à 600m on utilisait une carabine.

j'en suis conscient ce laser est dangereux a qui compte le regarderai, mais mis a par des oiseau et quelque lapin qui passerai a coter de la pompe il n'y a pas de risque .le terrain est difficile d’accès par la nature du sol et surtout par les champs de ronce noir
et aussi ce laser a un excélent focus le faisceau n'est pas plus grand qu'une assiette (surtout pour une objet récupéré en décharge )

ca marche est c'est bien plus précis que mon ancien model même mon père en reviens pas fini la corvée d'aller arroser ses 4 arbre (même si il donne excellent fruit toute les année) merci a tous
voila le code si ca peux servir a certain
reste a modéliser un boitier et a l'imprimer et a acheter un mini arduino

//emission de signal entre 30s et 5 min
//liste:
//potentimetre de 10k
//2 led une resistance de 220ohm
//relai 5v

void setup() {
unsigned long portar = map(analogRead(A0), 0, 1023, 3000UL, 300000UL);     // 30 sec, 5 minutes
pinMode (3, OUTPUT);//led off = rien/atente du cycle
pinMode (2, OUTPUT);//led on = emission 
pinMode (4, OUTPUT);//relai 5v modifier en 2v
}

void loop() {
  //off
  digitalWrite(2, HIGH);
  digitalWrite(3, LOW); 
  digitalWrite(4, LOW);
  //on
  unsigned long tempsEnclenchement = map(analogRead(A0), 0, 1023, 30000UL, 300000UL);
delay(tempsEnclenchement);

  digitalWrite(2, LOW); 
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  delay(4000); 
}

vous savez quel Arduino mini il faudrait avec ca ?