j'ai ajouté un Laser à cette machine, en parallèle sur la plaque qui supporte la broche. donc la broche reste disponible et le laser est pilotable par la fonction M106 et M107 (ventilateur de la Ramps)
je vous presente mon branchement.
le laser est un laser chinois de 5.5W qui malheureusement inverse les commandes TTL. j'utilise les commandes du ventilateur de la RAMPS pour le piloter et ventilateur à 0% allume le laser à fond et ventilateur à 100% eteint le laser...
https://www.aliexpress.com/item/5-5w-hi ... 4c4dLL3KbE
j'attache ma config marlin, ou j'ai ajouté le support du laser (cherchez mes commentaires "sebastien" qui montre tout ce que j'ai changé dans le code). quand vous allumez votre CNC, il y a une fonction Laser (peut etre dans un sous menu...) sur votre RAMPs pour controller le laser en manuel.
pour répetier, je joins le fichier de conf du firwmare repetier que vous pouvez utiliser sur le site repetier, et je détaille les changements que j'ai fait (il reste un probleme : quand j'allume la CNC, le laser est allumé, je n'ai pas encore eu le temps de modifier le code pour ca. par contre, le laser s'allume et s'éteint bien pendant l'impression et a la fin de l'impression.
n'oubliez pas ! surveillez toujours votre impression et n'allez pas faire vos courses pendant celle-ci ... et proteger vos yeux !!
mon code marlin mon fichier repetier : j'ai aussi changé le firwmare repetier :
Printer.cpp (modification comme ceci pour pouvoir changer la puissance du laser correctement - c'est la fonction vitesse du ventilateur puisque le laser est branché sur la broche du ventilo (FAN) ) :
void Printer::setFanSpeedDirectly(uint8_t speed) {
int vallaserinvert = (speed - 255)*-1;
uint8_t trimmedSpeed = TRIM_FAN_PWM(vallaserinvert);
#if FAN_PIN > -1 && FEATURE_FAN_CONTROL
if(pwm_pos[PWM_FAN1] == trimmedSpeed)
return;
ui.cpp (modifier comme ceci)
EVENT_START_NEXTPREVIOUS(action, increment);
switch(action) {
//sebastien fan
case UI_ACTION_FANSPEED:
int myspeed;
myspeed = (Printer::getFanSpeed() - 255) * -1;
//Commands::setFanSpeed(Printer::getFanSpeed() + increment , true);
Commands::setFanSpeed(myspeed + increment , true);
break;
voila... j'espere que cela aidera les plus témeraires

+