Va falloir être moins avare en info si tu veux qu'on te réponde parce que la on est pas devin ... Quelle modèle de verrin ? Une ref ? Quelles "informations" ? Température ? Position ? Angle par rapport au soleil ? Signe astrologique ?
clyveur44:
Salut , je voulais savoir comment faire pour relever des informations du capteur d'un vérin électrique .
Il faut que je puisse afficher les valeurs du capteurs (impulsion) sur la console IDE d'arduino mais je ne vois pas comment faire .
Merci d'avance pour votre aide .
bonjout
tu aurais du rester sur ton topic d'origine http://forum.arduino.cc/index.php?&topic=215835.msg1589715#msg1589715
ceci etant les infos que tu donne n'expose pas un retour d'info venant du verin.
lien vers des caracteristiques plus approfondies ? (connections entre autres)
C'est le vérin électrique "KLD3" , 12v/24v dc motor , max speed 45mm/sec .
J'ai relevé qu'il faut 12 seconde pour qu'il effectu sa course entièrement et il a besoin d'environ 1070 impulsion pour effectuer sa course totale .
Donc j'ai brancher mon vérin électique a une alimentation de 12v , mon gnd & mon 5v est branché sur la carte arduino et je dois mesurer les impulsions envoyer sur 2 fils (Data1 et 2) quand mon vérin électrique est actionné .
Donc j'ai fais un programme tout simple , mais je ne relève rien (0) :
int receptionData1;
int capteur1;
int receptionData2;
int capteur2;
Il a besoin de 1070 impulsions ? Ou il te donne 1070 impulsions sur sa course ?
Quand tu écris delay(1000) ... ton arduino ne fait rien , il ne voit rien et n'entend rien ... Bref il dort ...
Avec analogRead ... Tu peux esperer voir une impulsion avec une probabilité de 1 sur 100 ( si tu optimises ton code et que tu n'envoies pas ta carte au dodo)... Donc c'est une mauvaise idée ...
Du coup j'ai refais mon programme qui était vraiment pas au point :0
int receptionData1; // Réception de l'info envoyée dans Data1
int Data1; // Incrémentation de la valeur Data 1
int capteurAngle; //Capteur angle du vérin électrique
int valeurAngle;
void setup ()
{
Serial.begin(9600);
}
void loop()
{
receptionData1=digitalRead(5); // Lire l'info envoyée dans la broche (5)
if (receptionData1 != 1) // Si l'info envoyé par data 1 est différente de 1
{
if (Data1 != receptionData1) // Et par conséquent si l'informatino Data1 est différente de la réception Data1
{
capteurAngle++; // Ajoutez 1 à la valeur de l'angle
valeurAngle=capteurAngle*0.110701107; //Coefficient directeur de la droite (impulsion en fonction des degrés et donc des mm)
Serial.print("Valeur angle= ");
Serial.println(valeurAngle);
}
}
Data1=receptionData1;
}
J'ai relevé les impulsions car je sais que pour 1084 impulsion il y a une course de 100mm d'effectué et 120 degré .
J'ai regarder avec le moniteur série et sa s'arrete à 70 (valeur de l'angle) .
clyveur44:
J'ai relevé les impulsions car je sais que pour 1084 impulsion il y a une course de 100mm d'effectué et 120 degré .
J'ai regarder avec le moniteur série et sa s'arrete à 70 (valeur de l'angle) .
bonjour
ça veut dire quoi exactement ?
ton verin bloque à 70° ou pour une course maxi de 120° le serial ne te renvoie que 70°
si c'est le 2eme cas , il est fort possible que tu perde des impulsions !
l'ideal avec les systeme à impulsion est de passer par une interruption pour le comptage
Ton programme ne peut voire une implusion qu'au moment du digitalRead ... si une impulsion intervient juste après (pendant un serial.print ou un if ou un delay ...) tu ne la vois pas !
C'est pas si compliqué et quand ton programme sera plus évolué ce sera incontournable (ton programme est encore relativement léger et déjà il rate des impulsions...) ... alors autant commencer sur de bonnes bases