Bonjour SAMCO
J'ai un soucis, si je branche la base du transistor TIP122 à la broche D3 pour pouvoir utiliser la PWM, rien ne ce passe
si je branche la base du transistor à la broche 2 , le fil est chaud et coupe sans problème (mais utilisé à 100%)
Je n'arrive pas à configurer la gestion de la chauffe au niveau de JEDICUT! est ce qu'il y'a un tuto la dessus?
Comment je doit procéder afin que je puisse modifier les valeurs de la chauffe en mode manuel ou dynamique ?
C'est bizarre, cela devrait fonctionner. Ce qui se passe sur la broche 2 est normale, elle est destinée à commander un relais dont le contact est en série avec le fil de l'arc. Certains modéliste ajoute ceci par sécurité . Normalement la broche 3 doit fonctionner, il n'y a pas de configuration particulière de Jeicut. Voici le code qui traite l'information de Jedicut reçu par l'arduino.
Code : Tout sélectionner
case 'H': // Wire Heat ON/OFF (may be programmed as PWM (analog out))
if(val > 0) {digitalWrite(2, LOW);}
else {digitalWrite(2, HIGH);}
analogWrite(3,val*2.55); // PWM for wire heating (stretch 0-100% to a range of 0-255)
break;
Je vais essayer de vous le détailler:
Jedicut envoie des valeurs de fonctionnement sous la forme d'une lettre suivie d'une valeur ; pour la chauffe, la lettre est "H" et la valeur comprise entre 0 et 100 pour 0-100% de chauffe.
Ces lignes de code sont exécutées lorsqu'un H est détecté (case H)
La variale "val" contient la valeur qui suit "H" exemple 0% ; si (val plus grand que 0) dans notre cas 0% n'est pas plus grand que 0 on ne fait donc pas l'instruction {digitalWrite(2, LOW);} mai s on exécute {digitalWrite(2, HIGH);} ce qui met la sortie digitale 2 à "1".
Ensuite on exécute la ligne suivante "analogWrite(3,val*2.55);" ce qui veut dire la sortie analogique PWM 3 est mise à 0 x 2.55 ce qui fait zéro ( pas de rapport cyclique)
Les sorties analogiques sont définies par un octet ce qui donne 255 valeur possible du rapport cyclique ; dans Jedicut on a des valeurs de 0 à 100, dans l'arduino des valeurs de 0 à 255, c'est pour cela que l'on multiplie la valeur par 2.55.
Prenons l'exemple ou la valeur H50 on exécute la ligne if(val > 0) {digitalWrite(2, LOW);} on met donc la sortie digitale 2 à "0".
On passe donc la ligne else
Ensuite on exécute la ligne suivante "analogWrite(3,val*2.55);" ce qui veut dire la sortie analogique PWM 3 est mise à 50 x 2.55 ce qui fait 127 ce qui donne par rapport à 255 un rapport cyclique de 50% c'est bien égal à ce que Jedicut envoie.
J'espère que cette description t'aidera à résoudre ton problème. D'après ce que tu dis que la sortie 2 fonctionne donc le programme arduino parcourt bien les lignes que je viens de décrire.
Vérifies si ton montage à transistor réagit bien dans le bon sens, +5v en commande --> le fil chauffe.
Tu me dis que la sortie 2 chauffe le fil lorsque tu fais une commande de Jedicut alors que le programme met if(val > 0) {digitalWrite(2, LOW);} (LOW = 0) , tout dépend de l'utilisation du relais, pour inverser le sens du relais il faut inverser LOW et HIGH entre les 2 lignes, C'est cela qui me dit que ton montage à transistor serait plutôt 0V --> fil chauffe.
Bonnes recherches.