Contrôleurs de moteur
SURVEILLANCE DU COURANT D'UN ACTIONNEUR LINEAIRE

Cet exemple de code utilise un MegaMoto Plus pour surveiller le courant d'un actionneur linéaire.

 /* Code pour surveiller la consommation actuelle de l'actionneur et pour couper l'alimentation s'il
 dépasse un certain montant.

 Écrit par Progressive Automations
 19 août 2015

 Matériel:
 - Cartes de contrôle RobotPower MegaMoto
 -Arduino Uno
 - 2 boutons poussoirs
 */

 const int EnablePin = 8 ;
 const int PWMPinA = 11 ;
 const int PWMPinB = 3 ; // pins pour Megamoto

 const int boutonGauche = 4 ;
 const int buttonRight = 5;//boutons pour déplacer le moteur

 const int CPin1 = A5 ; // retour moteur

 int leftlatch = FAIBLE ;
 int rightlatch = LOW ;//loquets du moteur (utilisés pour la logique du code)

 int hitLimits = 0;//commencer à 0
 int hitLimitsmax = 10;//valeurs pour savoir si les limites de déplacement ont été atteintes

 long dernier temps de retour = 0 ; // ça doit être long, sinon ça déborde
 int premier délai de retour = 750 ; //premier délai pour ignorer le pic de courant 
int feedbacktimedelay = 50 ; //délai entre les cycles de retour, à quelle fréquence vous souhaitez que le moteur soit vérifié
 long currentTimefeedback = 0 ; // ça doit être long, sinon ça déborde

 int anti-rebondTime = 300 ; // montant pour anti-rebond des boutons, des valeurs plus faibles rendent les boutons plus sensibles
 long lastButtonpress = 0; // timer pour anti-rebond
 long currentTimedebounce = 0 ;

 int CRaw = 0 ; // valeur d'entrée pour les lectures actuelles
 int maxAmps = 0 ; // limite de déplacement

 bool dontExtend = false;
 bool firstRun = vrai ;
 bool FullyRetracted = false ; // logique du programme

 void setup()
 {
 Série.begin(9600);
 pinMode (EnablePin, SORTIE);
 pinMode(PWMPinA, SORTIE);
 pinMode (PWMPinB, OUTPUT); // Définir les sorties du moteur
 pinMode(boutonGauche, INPUT);
 pinMode(boutonDroite, INPUT);//boutons

 digitalWrite(boutonGauche, HAUT);
 digitalWrite(buttonRight, HIGH);//activer les pullups internes
 pinMode (CPin1, INPUT); // définir l'entrée de retour

 currentTimedebounce = millis();
 currentTimefeedback = 0;//Définir les heures initiales

 maxAmps = 15 ;// RÉGLER LE COURANT MAX ICI

 }//fin de la configuration

 boucle vide()
 { 
latchButtons();//vérifie les boutons, voir si nous devons bouger

 moveMotor();//vérifier les loquets, déplacer le moteur vers l'intérieur ou l'extérieur

 }//fin de la boucle principale

 annuler latchButtons()
 {
 if (digitalRead(buttonLeft)==LOW)//left est en avant
 {
 currentTimedebounce = millis() - lastButtonpress;// vérifier le temps depuis la dernière pression
 if (currentTimedebounce > debounceTime && dontExtend == false)//une fois que vous avez déclenché dontExtend, ignorez toutes les pressions vers l'avant
 {
 leftlatch = !leftlatch;// si le moteur est en mouvement, arrêtez-vous, s'il est arrêté, commencez à bouger
 firstRun = true ; // définit l'indicateur firstRun pour ignorer le pic actuel
 FullyRetracted = faux ; // une fois que vous avancez, vous n'êtes pas complètement rétracté
 lastButtonpress = millis();//stocker l'heure de la dernière pression sur le bouton
 retour;
 }//fin si
 }//fin btnGAUCHE

 if (digitalRead(buttonRight)==LOW)//right est en arrière
 {
 currentTimedebounce = millis() - lastButtonpress;// vérifier le temps depuis la dernière pression

 if (currentTimedebounce > debounceTime)
 { 
rightlatch = !rightlatch;// si le moteur est en mouvement, arrêtez-vous, s'il est arrêté, commencez à bouger
 firstRun = true ; // définit l'indicateur firstRun pour ignorer le pic actuel
 lastButtonpress = millis();//stocker l'heure de la dernière pression sur le bouton
 retour; }//fin si
 }//fin btnDROITE
 }//fin des boutons de verrouillage

 annuler moveMotor()
 {
 si (leftlatch == HIGH) motorForward (255); //vitesse = 0-255
 if (leftlatch == LOW) motorStop();
 si (rightlatch == HIGH) motorBack (255); //vitesse = 0-255
 if (rightlatch == LOW) motorStop();

 }//fin du moteur de déplacement

 void motorForward (vitesse int)
 {
 while (dontExtend == false && leftlatch == HIGH)
 {
 digitalWrite (EnablePin, ÉLEVÉ);
 analogWrite (PWMPinA, vitesse);
 analogWrite (PWMPinB, 0); // déplacer le moteur
 if (firstRun == true) delay(firstfeedbacktimedelay); // plus grand délai pour ignorer le pic de courant
 sinon délai (feedbacktimedelay); //petit délai pour arriver à la vitesse

 Avoir un retour();
 firstRun = faux ;

 latchButtons();//vérifier à nouveau les boutons
 }//fin pendant

 }//fin du moteurAvant

 void motorBack (vitesse int)
 { 
tandis que (rightlatch == HIGH)
 {
 digitalWrite (EnablePin, ÉLEVÉ);
 analogWrite (PWMPinA, 0);
 analogWrite (PWMPinB, vitesse); // déplacer le moteur
 if (firstRun == true) delay(firstfeedbacktimedelay);// délai plus long pour ignorer le pic de courant
 sinon délai (feedbacktimedelay); //petit délai pour arriver à la vitesse
 Avoir un retour();

 firstRun = faux ;

 latchButtons();//vérifier à nouveau les boutons

 }//fin pendant

 dontExtend = false;//permet au moteur de s'étendre à nouveau après qu'il ait été rétracté

 }//fin du moteurRetour

 annuler motorStop()
 {
 analogWrite (PWMPinA, 0);
 analogWrite (PWMPinB, 0);

 digitalWrite (EnablePin, FAIBLE);
 firstRun = true ;//une fois le moteur arrêté, réactivez firstRun pour tenir compte des pics de courant de démarrage

 }//fin d'arrêtMoteur

 annuler getFeedback()
 {
 CRaw = lectureanalogique(CPin1); // Lire le courant

 si (CRaw == 0 && hitLimits < hitLimitsmax) hitLimits = hitLimits + 1;
 sinon hitLimits = 0 ; // vérifie si le moteur est aux limites et si le courant s'est arrêté

 si (hitLimits == hitLimitsmax && rightlatch == HIGH)
 { 
verrou droit = ​​BAS ; // arrête le moteur
 FullyRetracted = vrai ;
 }//fin si

 sinon si (hitLimits == hitLimitsmax && leftlatch == HIGH)
 {
 loquet gauche = BAS ;//arrêt du moteur
 hitLimits = 0 ;
 }//fin si

 si (CRaw > maxAmps)
 {
 dontExtend = vrai ;
 verrou gauche = BAS ; // s'arrête si le feedback dépasse le maximum
 }//fin si

 lastfeedbacktime = millis();//stocke l'heure précédente pour recevoir des commentaires
 }//fin getFeedback
CONTRÔLER PLUSIEURS ACTIONNEURS AVEC LE MULTIMOTO ARDUINO SHIELD
CONTRÔLEUR DE MOTEUR WASP POUR LA COMMANDE D'ACTIONNEURS LINÉAIRES
UTILISATION DE RELAIS POUR CONTRÔLER DES ACTIONNEURS LINÉAIRES
CONTRÔLE DU TEMPS D'UN SEUL MOUVEMENT D'ACTIONNEURS LINÉAIRES
ÉTENDRE ET RÉTRACTER EN CONTINU UN ACTIONNEUR LINÉAIRE AVEC MOTEUR CC SANS BALAI
PA-12 MICRO SERVO ACTUATOR SAMPLE CODES
Où puis-je trouver des informations supplémentaires sur vos produits ?

Nous avons des fiches techniques, des manuels d'utilisation, des modèles 3D, des schémas de câblage et plus encore dans nos sections Ressources et Centre d'apprentissage .

Comment puis-je déterminer quel actionneur linéaire est le mieux adapté à mon application ?
Qu'est-ce que le cycle de service et comment est-il calculé ?
Puis-je utiliser vos actionneurs pour remplacer celui que je possède déjà ?
Que signifie la course ? Comment suis-je censé savoir quelle taille choisir ?
Comment puis-je savoir quel indice de force convient à mon application ?
Puis-je utiliser ma propre source d'alimentation pour mes actionneurs ?
Comment puis-je commander le mouvement des actionneurs pour qu'ils se déplacent en même temps ?
Pourquoi mon actionneur linéaire fait-il du bruit ?
Puis-je personnaliser un actionneur linéaire sur mesure selon mes spécifications ?
Puis-je synchroniser mes actionneurs linéaires ?
Des kits d'actionneurs linéaires sont-ils disponibles ?
La température affectera-t-elle mon actionneur linéaire ?
Puis-je jumeler l’un de vos actionneurs à un mécanisme de tiers ?
Quel est le brochage de mon actionneur linéaire ?
Puis-je obtenir des modèles 3D CAO pour mon actionneur linéaire ?
Quelles sont les options du boîtier de commande pour mon actionneur ?
Puis-je utiliser vos boîtiers de commande avec un produit de tiers ?
Vendez-vous des boîtiers de commande Wi-Fi ?
Tous vos boîtiers de commande sont-ils compatibles avec tous vos actionneurs linéaires ?
Puis-je utiliser mon propre boîtier de commande ?
Avez-vous un exemple de codage que je pourrais utiliser ?
Je n'ai pas de source d'alimentation – Que puis-je faire ?
Puis-je utiliser ma propre source d'alimentation ?
Disposez-vous de sources d'alimentation 220 VAC ?
Puis-je commander les colonnes de levage avec un boîtier de commande de tiers ?
Puis-je utiliser deux colonnes de levage Flt-11 ensemble ?
Quel boîtier de commande dois-je jumeler à mes colonnes élévatrices ?
Vos systèmes de levage de table/bureau/TV peuvent-ils être faits sur mesure?
Quelles tailles de téléviseurs vos systèmes de levage TV peuvent-ils soutenir ?
Quelle est la capacité de poids de vossystème de levage de table/bureau ?
Mon actionneur linéaire est-il livré avec des supports de fixation ?
Où puis-je trouver un guide d'utilisation étape par étape pour mon produit ?
J'ai suivi le schéma de câblage mais ça ne fonctionne pas – que dois-je faire ?
Organigramme pour la sélection d'actionneur
Les boîtiers de commande FLTCON peuvent-ils fonctionner avec mes actionneurs ?
Qu’est-ce que le retour arrière ? -- Que signifient les charges nominales dynamiques et statiques ? -- Qu'est-ce que le chargement latéral ?
Comment puis-je passer une commande ?

Les commandes peuvent être passées par l'un des moyens suivants :

En ligne : Utilisez notre processus de commande en ligne avec des options de paiement par carte de crédit ou PayPal.

Téléphone : 1-800 – 676 – 6123

Courriel : sales@progressiveautomations.com

Offrez-vous des rabais par rapport aux quantités commandées ?
Quels modes de paiement acceptez-vous?
Dans quelle devise sont vos prix ?
Comment savoir si le produit que je souhaite commander est en stock ?
Combien coûteront les frais d'expédition et quelles méthodes de livraison proposez-vous ?

Les frais d'expédition de Progressive Automations sont calculés en fonction de divers facteurs, y compris, mais sans s'y limiter : l'emplacement, les quantités et le poids total de votre commande. Les petits articles sont expédiés par colis tandis que les articles plus volumineux et les commandes de grande quantité sont expédiés via un service de transport de marchandises. Nous nous efforçons toujours de fournir des prix d'expédition compétitifs à tous nos clients.

Les méthodes d'expédition sont disponibles via les commandes en ligne et par téléphone. Si vous souhaitez recevoir une estimation des frais d'expédition de votre commande, vous pouvez le faire en consultant votre panier final.

Quelles compagnies de transport de marchandise utilisez-vous ?
Vais-je devoir payer des droits de douanes?
Quelle est votre politique de retour ?
Combien de temps dure la livraison ?
Offrez-vous la livraison gratuite ?
Je veux que le côté le plus long de ma table soit à gauche. Le cadre de bureau debout en forme de L peut-il être installé à gauche ou à droite ?

Oui, le bureau debout en forme de L facilite l'orientation et peut être installé selon vos préférences. Voici un article étape par étape qui explique comment cela est possible : Manuel d'utilisation du FLT-05

Comment puis-je définir les hauteurs maximales/minimales de mon(mes) cadre(s) de bureau debout ?

REMARQUE : Les étapes ci-dessous peuvent varier en fonction du modèle de télécommande dont vous disposez. Les instructions suivantes ont été faites pour la télécommande RT-11 standard. Pour définir la hauteur maximale de votre cadre, accédez à la hauteur souhaitée que vous souhaitez définir et suivez les étapes ci-dessous :

  1. Appuyez sur M et voyez [5 -] indiqué sur l'écran
  2. Appuyez sur le bouton UP et remarquez que [5 -] clignote
  3. Maintenez le bouton M enfoncé jusqu'à ce que vous voyiez [999] sur l'écran.
  4. La hauteur maximale a maintenant été définie

Pour définir la hauteur minimale de votre cadre, accédez à la hauteur souhaitée que vous souhaitez définir et suivez les étapes ci-dessous :

  1. Appuyez sur M et voyez [5 -] indiqué sur l'écran
  2. Appuyez sur le bouton DOWN et remarquez que [5 -] clignote
  3. Maintenez le bouton M enfoncé jusqu'à ce que [000] s'affiche à l'écran.
  4. La hauteur minimale a maintenant été définie

Pour réinitialiser les limites, suivez les étapes ci-dessous :

  1. Appuyez sur M et voyez [5 -] indiqué sur l'écran et relâchez
  2. Tenez le M que vous voyez [555]
  3. Les limites ont été réinitialisées
Je dois maintenir les boutons de la télécommande enfoncés pour atteindre ma hauteur prédéfinie. Existe-t-il un moyen de le faire avec une seule pression ?

REMARQUE : Les étapes ci-dessous peuvent varier en fonction du modèle de télécommande dont vous disposez. Les instructions suivantes ont été faites pour la télécommande RT-11 standard.

Si vous devez maintenir enfoncés les boutons de la télécommande pour atteindre votre hauteur prédéfinie, cela signifie que votre boîtier de commande est en contrôle momentané. Pour régler votre télécommande en mode non momentané, suivez les étapes ci-dessous

  1. Assurez-vous qu'il n'y a rien sous votre bureau, car nous devons entrer dans la procédure de réinitialisation
  2. Appuyez et maintenez enfoncé le bouton DOWN jusqu'à ce que l'écran affiche [ASr]
  3. Une fois que [ASr] est affiché, appuyez et maintenez [1] et vous pouvez voir deux valeurs :

    un. 10.1 = Mode non momentané
    b. 10.2 = Mode momentané

  4. Terminez la procédure de réinitialisation en maintenant le bouton BAS jusqu'à ce que votre bureau debout descende et monte légèrement.
Comment modifier la sensibilité de la détection de collision ?

Nos bureaux debout disposent de 3 paramètres de détection de collision, qui peuvent être définis selon vos préférences. Pour continuer, suivez les étapes ci-dessous :

  1. Assurez-vous qu'il n'y a rien sous votre bureau car nous devons entrer dans la procédure de réinitialisation.
  2. Appuyez et maintenez enfoncé le bouton DOWN jusqu'à ce que l'écran affiche [ASr]
  3. Une fois que [ASr] est affiché, appuyez et maintenez le bouton UP [ ^ ] et vous pouvez voir trois valeurs :

    un. 10,5 = 11 livres
    b. 10,6 = 22 livres
    c. 10,7 = 33 livres

  4. Terminez la procédure de réinitialisation en maintenant le bouton BAS jusqu'à ce que votre bureau debout descende et monte légèrement.
Ma télécommande affiche un code d'erreur sur l'écran ? Que dois-je faire?

Nous avons quelques étapes de dépannage à suivre si vous voyez l'un des codes d'erreur suivants sur les cadres équipés de boîtiers de commande de la série FLTCON :

Vérifiez le code d'erreur ici .

Si le problème que vous rencontrez persiste après avoir suivi ces étapes, n'hésitez pas à contacter nos ingénieurs techniques produits au 1-800-676-6123 ou à nous envoyer un e-mail à sales@progressiveautomations.com .