Étape 1: Contrôler un moteur à courant continu avec résistance variable
La première chose que nous allons faire est d’obtenir chaque moteur fonctionnant avec un contrôleur.
Utiliser une manette de jeu avec potentiameter pour la commande de la vitesse et la direction d’un moteur à courant continu.
Cela servira à :
-Relevez et abaissez la griffe
-ouvrir et fermer le clow
Chaîne de matériel :
Manette de jeu (potentiameter) -> Arduino avec code -> DC motor driver V1.1 (make.rrf.org\dcmd-1.1) - > moteur
S’appuie sur : http://www.reprap.org/bin/view/Main/DC_Motor_Driver_1_1#Wire_up_test_devices
Voici le code de l’arduino :
Remarque : Ceci ne fonctionne qu’un moteur à courant continu
********************ARDUINO*****************
POT à contrôler une vitesse moteur DC et la direction *** / /
définir les variables et les broches
int potPin = 2 ; Sélectionnez l’entrée pin pour le potentiomètre
int val = 0 ; variable pour stocker la valeur provenant de la sonde
int j = 0 ;
int Dir_A = 4 ;
int Speed_A = 5 ;
void setup() {}
pinMode (Dir_A, sortie) ;
pinMode (Speed_A, sortie) ;
Serial.Begin(9600) ;
}
void loop() {}
Lire l’emplacement du joystick et de calculer la distance et du centre
Val = analogRead(potPin) ; lire la valeur de la sonde
j = val - 517 ; 517 est positions centrales - Comment loin du centre
j = abs(j) ; valeur absolue
mettre quelques limites sur j pour garder les valeurs PWM utile
inférieur à 100, le moteur ne se déplacent et PWM maximum est de 255
Si (j > = 510) {}
j = 510 ; le plus la goupille PWM peut faire est de 255
}
Si (j < = 200 & & j > = 10) {}
j = 200 ; au-dessous de 100 PWM, le moteur fait un pich élevé son et ne bouge pas
}
Si (j < = 10) {}
j = 0 ; inférieur à 10, le joystick est très proche de centre
}
Exécuter le moteur de C.C A basé sur les entrées analogiques de la manette de jeu
Si (val > = 520) {}
digitalWrite (Dir_A, élevé) ; autre sens
analogWrite (Speed_A, j/2) ; PWM à (diviser par 2 parce que max est de 255)
}
Si (val < = 510) {}
digitalWrite (Dir_A, basse) ; //
analogWrite (Speed_A, j/2) ; //
}
Si (val < = 520 & & val > = 510) {}
analogWrite (Speed_A, 0) ; Mettez hors tension si le joystick se trouve dans le centre
}
imprimer les valeurs pour le débogage
Serial.Print(Val) ; Envoyer des numéros à PC, ainsi vous pouvez voir ce que ça va
Serial.Print(",") ;
Serial.println(j) ;
}