Aide Butée positionnement pour SCIE PANNEAU sur base arduino et codeur incremental ?

dubois
Compagnon
11 Novembre 2008
1 952
  • Auteur de la discussion
  • #1
Bonsoir a tous ,
Je suis en train de réalisé une scie a panneau en m'inspirant un peu de ce modèle :
afin de mesurer avec précision je souhaite intégrer sur cette scie une butée pour la coupe des planches sur base arduino avec un afficheur ,un membre du forum (il se reconnaîtra ! ) m'a donné ce codeur couplé avec un câble sur enrouleur de 2,3 mètre ,pil poil pour mon application ,reste a récupérer les information de ce codeur et les traiter avec l'arduino pour afficher la valeur en mm sur l'afficheur ,il faut juste une fonction mise a zéro ,je voudrez avoir un affichage à 0,1 mm voir moins si le capteur le peut ,je suis une bille en électronique ,mon precedent projet Arduino de démarreur simultané pour aspirateur ici http://www.usinages.com/threads/demarreur-simultane-pour-aspirateur-a-copeaux-datelier.96703/ a été réalisé grâce au compétence des membres de ce forum ,je redemande donc votre aide pour m'assisté dans ce projet ,déjà si mon capteurs est utilisable pour cette application ! ,j'ai déjà l'arduino l'afficheur i2c et l'alimentation usb reste a raccorder tout ça !
Bonne soirée a tous
quelques photo de l'engin :

20170926_185512.jpg


20170926_185520.jpg


20170926_185512.jpg


20170926_185520.jpg
 
Fichiers joints
vibram
Compagnon
15 Mars 2014
3 536
FR-74
Salut
Ton codeur sort un sinal en quadrature, quelque chose de tres courant
Donc je te conseille de rechercher des librairies pour decoder la quadrature.
Sur Arduino c'est vraiment simple avec la bonne librairie, tu branches les 2 phases et en avant
tu as pas mal d'info ici:
https://playground.arduino.cc/Main/RotaryEncoders

Il sort 2048 pulse par tour, si tu decodes en X4, 8192 pulse par tour. il faut que tu fasses attention car selon ta vitesse de déplacement, l'arduino peut éventuellement ne pas aller assez vite pour compter toutes les pulses. Il faut que tu regardes la vitesse de l'arduino, ta vitesse de déplacement et que tu comptes ce que tu peux faire/ne pas faire.
Je pense que vue ta précision demandée, 2048 pulse par tour semble suffire.
Ce codeur vient incrémenter une variable.
Tu as juste a mettre un bouton poussoir pour remettre cette variable à 0 quand tu le désires. apres on peut faire encore plein de choses différentes/supplémentaires
 
jpbbricole
Compagnon
26 Mai 2016
1 962
Corsier-sur-Vevey (Vaud)
Salut
je suis une bille en électronique
Peut-être, quoi que? Mais à voire tu y prends goût!

C'est volontier que je te donne un coups de main. Je suis, actuellement, en plein dans les quadratures, si tu le désires, je te fais un petit exemple, après, libre à toi de l'adapter à tes besoins.
@vibram a déjà donné de bonnes indications de départ.

Cordialement
jpbbricole
 
dubois
Compagnon
11 Novembre 2008
1 952
  • Auteur de la discussion
  • #5
Bonsoir
merci a tous pour votre aide !

Bonsoir Vibram !
"tu branches les 2 phases et en avant"
il ya 12 PINS il ne faut pas tous les utilisé donc ? la tension de 5vdc du codeur correspond a celle de l'arduino a priori

'Il sort 2048 pulse par tour"
Oui je pense aussi reste a voir combien de tour fait le codeur en fonction de la longueur du câble mais je pense qu'un etalonnage sera a faire en realisant quelques essais .

"apres on peut faire encore plein de choses différentes/supplémentaires"
Oui comme incrementer ou decrementer entrer une valeur de depart etc ..

Bonsoir jpbbricole !
" Je suis, actuellement, en plein dans les quadratures, si tu le désires, je te fais un petit exemple,"
Oui jpbbricole je veut bien ,la dernière fois j'ai réussi a mettre en application vos exemple programme et schémas ,mais la le codeur je ne maitrise vraiment pas mais je me dit y'a pas de raison que ça fonctionne pas !!

Bonsoir Daniel !
"un montage tout simple"
ça fonctionne avec un Potentiomètre non ?
 
jpbbricole
Compagnon
26 Mai 2016
1 962
Corsier-sur-Vevey (Vaud)
Salut Mister dubois

Voici un premier jet, comme on dit!
le schéma sous entend que les sorties A et B de l'encodeur sont au standard TTL 5v.

Code:
/*'************************************************************************************************
'*  Name    : Butée positionnement pour SCIE PANNEAU sur base arduino et codeur incremental       *
'*  Author  : jpbbricole pour Usinages.com dubois                                                 *
'*                                                                                                *
'*  Date    : 26.09.2017                                                                          *
'*  Version : 0.1                                                                                 *
'*  Notes   : Decodage du capteur incremental sur affichage LCD et bouton de raz                  *
'*                                                                                                *
'*  Sources :                                                                                     *
'**************************************************************************************************
*/
//------------------------------------- Affichage LCD
#include <Wire.h>                                          // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20, 4);                         // 0x27 = adresse sur bus i2C, peut être 0x3f

//------------------------------------- Decodeur d'encodeur!!!
#include <Encoder.h>
#define rotencApin 2                                       // 2 pin pour A et B de l'encodeur
#define rotencBpin 3                                       // Ces 2 pin sont des entrees interrupt sur le UNO
Encoder encBaum(rotencApin, rotencBpin);
int encPosIncrement = 0;                                   // Position incrementielle de l'encodeur
int encPosIncrementPrec = 0;                               // Position incrementielle de l'encodeur precedente
float encStepValueMm = 0.0125;                             // Valeur d'un pas  mm codeur rotatif 80 pas 1 tour = 1mm
//float encStepValueMm = 0.0123;                             // Valeur d'un pas  mm règle magnétique 83mm
float butPosMillimetres = 0.0;                             // position de la butée en mm                     
#define razBoutonPin 7                                     // Pour connexion bouton RAZ

void setup()
{
    Serial.begin(9600);
    pinMode(razBoutonPin, INPUT_PULLUP);                   // PULL_UP évite de mettre une résistance de polarisation.

    lcd.begin();                                           // Initialisation de l'affichage LCD
    lcd.noBacklight();                                     // 3 lignes suivantes pour faire clignoter
    delay(500);                                            // l'affichage comme cela on est
    lcd.backlight();                                       // certain de l'adresse i2C

    lcdAffichageInfo();
}

void loop()
{
    encPosIncrement = encBaum.read();                                // Lecture du codeur
    if (encPosIncrement != encPosIncrementPrec)                      // Pour agir seulement en cas de changement
    {
        butPosMillimetres = (float)encPosIncrement*encStepValueMm;   // Conversion position en mm
        lcdAffichageInfo();
        encPosIncrementPrec = encPosIncrement;
    }

    if (digitalRead(razBoutonPin) == LOW)                        // Bouton actif à 0 (GND)
    {
        encBaum.write(0);
    }
}
//------------------------------------- Affichage des positions
void lcdAffichageInfo()
{
    lcd.setCursor(0, 0);
    lcd.print("** Dubois systeme **");

    lcd.setCursor(0, 1);
    lcd.print("Pos. enc: " + String(encPosIncrement) + "    ");

    lcd.setCursor(0, 2);
    lcd.print("Pos. mm: " + String(butPosMillimetres) + "    ");
}
Le schéma
upload_2017-9-27_15-7-37.png


Deux petites vidéos
Dans les démonstrations vidéo, la version encodeur j’ai fixé arbitrairement un tour de 80 pas = 1 mm,
la version à règle magnétique = 6757 pas pour 83mm

Il est à noter qu'entre la version encodeur rotatif (façon four à micro ondes :-D) et le version règle magnétique, le programme, mise à part l'échelle, est strictement identique.

Cordialement
jpbbricole

Les fichiers nécessaires
 
Fichiers joints
Dernière édition:
metalux
Compagnon
11 Janvier 2009
4 696
nord
hello
dis moi jpbbricole
sur ta vidéo le capteur magnétique est de qu'elle provenance? chip AS53XX ?
 
metalux
Compagnon
11 Janvier 2009
4 696
nord
ok merci :wink:

j'aurai l'occasion de te mettre a contribution vu que tu touches ta bille en programmation Arduino si tu le veux bien.
 
dubois
Compagnon
11 Novembre 2008
1 952
Bonsoir a tous ,
He ben ça traîne pas !!! :7dance:
J'arrive pas a voir la première vidéo il me dit vidéo non disponible ?

Donc si je comprend bien j'ai juste trois pinS de mon codeur a raccorder GND ,A+ et B+ ? mais ça correspond a quoi sur mon capteur ?

pin1 GNDB
pin 4 : SPUR A
pin 6 : SPUR B

ça serez ça ? ou je me plante ?
 
Haut