Les lasers se commandent en principe en tension fixe. pour les petits lasers c'est souvent du 12V. La diode laser est d'abord une diode et pour qu'elle puisse éclairer, il faut lui donner ce dont elle a besoin, notamment le courant. Le flux lumineux dépend essentiellement de ce courant. Mais quand elle fonctionne elle va chauffer et sa température n'est pas fixe. Si on la commande en PWM, on peut avoir une puissance moyenne faible ou importante. La température peut donc varier énormément. Et la tension de la diode (tension directe qui est le fameux 0,6V pour une petite diode , mais plus de 3V pour une diode laser) va varier énormément. On ne peut donc pas commander le diode en tension sinon plus elle chauffe, plus sa tension diminue, ce qui fait augmenter le courant, donc la puissance, donc la chaleur... Elle sont donc alimentées en courant.
Si on diminue la tension, au lieu des 12V, on n'y met que du 10V, il est possible que l'électronique de commande ne soit plus alimenté correctement. Il est possible aussi que le générateur de courant fournisse toujours le même courant. On ne doit donc pas alimenter un laser avec une tension variable.
Pour les petits lasers, il peut y avoir seulement deux fils + et -. Dans ce cas pour faire varier l'intensité lumineuse, on le commande directement en PWM; Mais il faut pour cela un dispositif entre Arduino (qui ne peut délivrer que quelques mA) et le laser (qui demande quelques A), par exemple n FET.
Pour les plus gros lasers, on a 3 fils, +, - et pwm. On donne le 12V en permanence et le fil pilote pwm va allumer ou éteindre le laser. C'est presque pareil qu'au dessus, mais le bloc de puissance se trouve dans le laser. Par contre le ventilateur peut être mis au max même si la diode n'est pas utilisée au max, ce qui n'est pas le cas des lasers 2 fils.
A priori, remplacer un laser 3 fils par un autre laser 3 fils plus puissant ne changer rien sauf que l'alim doit être plus conséquente. Mais dans les deux cas, il faut une alim externe.
Attention aussi à une caractéristique importante: le rapport cyclique max. Par exemple pour des lasers 5W, certains vont indiquer un fonctionnement 100% du temps, d'autres seulement 50%. Dans le premier cas, on peut graver tout ce que l'on veut. Dans le deuxième cas, on peut délivrer 5W, mais pendant un certain temps maximum, par exemple 1 mn. Après il faut s'arrêter au moins 1 mn avant de recommencer. Cela permet de graver un court instant avec une puissance suffisante. Avec un laser 0,5W on ne peut pas couper du papier, avec la même puissance moyenne mais avec des pointe de 2W/1s et des repos de 0W/4s, on peut couper.
Attention à la confusion:
analogWrite(Pin,122);
ne délivre pas une tension analogique comme son nom semble l'indiquer, mais un signal carré (je dirais binaire).
Si:
binaire est un signal qui peut prendre 2 états
numérique (digital) est un signal qui peut prendre un ombre fini de valeurs (p ex 0..1024)
analogique est un signal qui peut prendre une infinité de valeurs et entre deux valeurs le signal peut aussi prendre une infinité de valeurs
alors:
- digitalWrite transforme une information binaire de l'Arduino en une tension binaire 0V/5V
- digitalRead transforme une tension analogique 0/5V en une information binaire LOW/HIGH
- analogWrite transforme une information numérique de l'Arduino 0/255 en une tension binaire 0V/5V, mais avec un rapport cyclique variable 0%, 100%
- analoglRead transforme une tension analogique 0/5V en une information numérique 0..1024