Module Arduino

(En dehors de problèmes liés au forum).
Avatar du membre
Oldtimer42
.
.
Messages : 7287
Enregistré le : 30 avr. 2014, 16:22
Région : France - Rhône-Alpes
année : 1951
Serie speciale : Ben ça dépend, ça change tout le temps

Re: Module Arduino

Message par Oldtimer42 »

T'as oublié les femmes, recommences depuis le début ! :cartonrouge:
temp100

Re: Module Arduino

Message par temp100 »

Oldtimer42 a écrit :T'as oublié les femmes, recommences depuis le début ! :cartonrouge:
je suis pas pour les histoires, tu me connais, mais Rachel risque de pas aimer quand je vais lui dire :lol:
MG O1->B69
.
.
Messages : 9093
Enregistré le : 30 nov. 2013, 12:04
Région : France - Pays de la Loire

Re: Module Arduino

Message par MG O1->B69 »

la sodomie, les impôts,
Au rique de passer pour un vieux réac, je note que dans les 2 cas ça fait tout aussi mal! :(
temp100

Re: Module Arduino

Message par temp100 »

MG O1->B69 a écrit :
la sodomie, les impôts,
Au rique de passer pour un vieux réac, je note que dans les 2 cas ça fait tout aussi mal! :(
ça dépend :P de quel côté du manche tu es :P

j'ai l'impression que tu dois être du mauvais côté :mdrx:
En ligne
Avatar du membre
gillesmgb
.
.
Messages : 1412
Enregistré le : 07 nov. 2014, 21:29
Région : France - Rhône-Alpes
Type : B
année : 1973

Re: Module Arduino

Message par gillesmgb »

korrignu a écrit :héhé ! Salut les gens !

Si tu commences à mettre tes doigts dans l'arduino, tu pourrais songer à ce qu'il faut pour monter une sonde pour un tripmaster DIY :)
...
Bonjour,
un petit bout de code pour récupérer l'info d'un capteur inductif (ou magnétique) en procédant par interruption.
Attention quand même, l'Arduino c'est pas du multiprocesseur, pendant qu'il compte il ne fait rien d'autre :)
Dans cet exemple, lorsqu'on ne compte pas, on pilote un petit moteur électrique (ce moteur me sert à "étalonner" mon compteur smiths)

Code : Tout sélectionner

// ------------------------------------------------------------------------------------------
// declaration partie poussoirs pilotage moteur
//-------------------------------------------------------------------------------------------
// arrêt moteur par bouton poussoir sur pin 7
#define Capt7 7
int etatCapt7;
int etatprecCapt7=HIGH;


// ------------------------------------------------------------------------------------------
// declaration partie capteur inductif de rotation
//-------------------------------------------------------------------------------------------
#define Capt2 2 //num entree numerique (num 2) pour la sortie capteur inductif rotation (fil noir)
int vitessecomptage=0; //vitesse de rotation entree tr/mn avec capt 2 impuls/tr
int compteCapt=0; //compteur impulsions capteur

unsigned long T0=0; // date de debut de comptage des impulsions
unsigned long currentms; // date en cours dans la boucle principale
long interval=1000; // duree de comptage des impulsions en ms  (1s)

unsigned long Tcapt=0; //date du dernier changement d'etat du capteur
long intervalcapt=5; // tempo en ms (5ms) pour eviter le rebond de comptage capteur
unsigned long currentcaptms; //date en cours dans la routine d'interruption de lecture du capteur

// ------------------------------------------------------------------------------------------
// declaration partie moteur (pour carte MotorShield)
//-------------------------------------------------------------------------------------------
const int 
PWM_A   = 3,    //constante sortie vitesse moteur A
DIR_A   = 12,   //constante canal moteur A
BRAKE_A = 9,    //constante canal frein A
SNS_A   = A0,   //constante sens rotation moteur A
consignemoteur = 195; //consigne de vitesse moteur 0-255
int vitessemoteur=0;  //consigne moteur courante
int etatmoteur= 0 ; // 1 si phase de mise en route, 0 si phase stop;

// ------------------------------------------------------------------------------------------
// declaration partie Vitesse et Transmission
//-------------------------------------------------------------------------------------------
const int tpkTransmission = 814;  //tours/Km du cable compteur
int vitessevoiture=0; //vitesse calculée voiture


// ------------------------------------------------------------------------------------------
// Sous-programme d'initialisation (reset ou mise sous tension carte)
//-------------------------------------------------------------------------------------------
void setup() {
  // Configuration da la sortie A MotorShield (moteur)
  pinMode(BRAKE_A, OUTPUT);  // Brake pin pour canal A
  pinMode(DIR_A, OUTPUT);    // Direction pin pour canal A
  // Configuration rotation moteur
  digitalWrite(BRAKE_A, LOW);  // brake LOW = frein desactive
  digitalWrite(DIR_A, LOW);   // direction LOW = rotation moteur sens - (sens horaire vu cote arbre moteur)
  // Configuration input (capteur rotation)
  pinMode(Capt2,INPUT_PULLUP); // Capteur declare sur entree numerique num 2
  attachInterrupt(0,Compter,FALLING); //declaration du sous-programme fonctionnant sur interruption port 0 (=entree num2) sur front descendant
  // Configuration boutons poussoirs pilotage moteur
  pinMode(Capt7,INPUT_PULLUP);
  // affichage moniteur sorie pour debuggage
  Serial.begin(9600);
  Serial.println("Motor shield DC motor Test:\n");
}


// ------------------------------------------------------------------------------------------
// Sous-programme de calcul de la vitese en fonction de l'info capteur de rotation
//-------------------------------------------------------------------------------------------
int calculvitesse(int entree) {
  float result;
  double vcpt;
  vcpt = float(entree)*60/float(tpkTransmission);
  result = vcpt;
 return int(result);  
}

// ------------------------------------------------------------------------------------------
// Sous-programme de comptage des impulsions capteur, fonctionne sur interruption
//-------------------------------------------------------------------------------------------
void Compter() 
{
  currentcaptms = millis();
  if(currentcaptms-Tcapt > intervalcapt) compteCapt ++ ;
  else {}; 
  Tcapt = millis();
  }


// ------------------------------------------------------------------------------------------
// Sous-programmes de modification de la vitesse du moteur
//-------------------------------------------------------------------------------------------
void lancemoteur(){
  etatmoteur =1; 
  while (vitessemoteur < consignemoteur)
  {
    vitessemoteur ++;
    analogWrite(PWM_A,vitessemoteur);     // envoi consigne de vitesse au moteur
    if (vitessemoteur < 20) {delay(10);} else {delay(50);}
  }
}

void stopmoteur(){
  etatmoteur = 0;
  while (vitessemoteur >0)
  {
    vitessemoteur --;
    analogWrite(PWM_A,vitessemoteur);     // envoi consigne de vitesse au moteur
    delay(50);
  }
}


// ------------------------------------------------------------------------------------------
//--------------------------------- PGM PRINCIPAL -------------------------------------------
// ------------------------------------------------------------------------------------------
void loop() {
  currentms = millis();
  //--- action sur front descendant bouton poussoir -----
  etatCapt7 =digitalRead(Capt7);
  if ((etatCapt7 == LOW) and (etatprecCapt7 == HIGH))
  {
    etatprecCapt7 = LOW;
    if (etatmoteur == 0) {lancemoteur();} else {stopmoteur();} 
  }
  if ((etatCapt7 == HIGH) and (etatprecCapt7 == LOW)) {etatprecCapt7 = HIGH;}
  // -----------------------------------------------------  
  if(currentms-T0 > interval)
  {
    // ------Calculs vitesse ---- 
    vitessecomptage = 30 * compteCapt;  // en tr/mn (2 impulsions/tr)
    vitessevoiture = calculvitesse(vitessecomptage); 
    Serial.print("vitesse comptage (tr/mn) : ");   
    Serial.println(vitessecomptage);   
    Serial.print("Vitesse voiture : ");
    Serial.println(vitessevoiture);
    // ----------------------------
    compteCapt=0; 
    T0 = millis();
  }
}
manu59
Messages : 864
Enregistré le : 05 nov. 2007, 07:06
Type : B
année : 1970

Re: Module Arduino

Message par manu59 »

Bonjour,

Je découvre ton sujet.

Pourquoi ne pas remplacer le LCD par un module bluetooth et mettre l'affichage sur ton smartphone.

Comme cela tu peux mettre ton arduino où tu veux.

cdt
temp100

Re: Module Arduino

Message par temp100 »

la mise en boite :lol:

Image

Image

Image
Avatar du membre
Oldtimer42
.
.
Messages : 7287
Enregistré le : 30 avr. 2014, 16:22
Région : France - Rhône-Alpes
année : 1951
Serie speciale : Ben ça dépend, ça change tout le temps

Re: Module Arduino

Message par Oldtimer42 »

A part ça tu la fais rouler de temps en temps cette MGA Loulou ?
temp100

Re: Module Arduino

Message par temp100 »

rouler ? noooooooon fait trop froid et j'ai pas encore été au CT
mais le moteur ronronne tout les jours :lol:

me reste qql petits détails, dont l'étalonnage de la jauge à essence, le réglage du train avant et des phares et fixer les ouies latérales
Avatar du membre
Oldtimer42
.
.
Messages : 7287
Enregistré le : 30 avr. 2014, 16:22
Région : France - Rhône-Alpes
année : 1951
Serie speciale : Ben ça dépend, ça change tout le temps

Re: Module Arduino

Message par Oldtimer42 »

Et le problème de pont que tu trouvais bruyant sans la caisse ?
temp100

Re: Module Arduino

Message par temp100 »

non, je ne l'entends plus, mais bon, on verra à 180 sur l'anneau à Belchamp
Avatar du membre
Oldtimer42
.
.
Messages : 7287
Enregistré le : 30 avr. 2014, 16:22
Région : France - Rhône-Alpes
année : 1951
Serie speciale : Ben ça dépend, ça change tout le temps

Re: Module Arduino

Message par Oldtimer42 »

Tu l'entendais probablement parce que t'étais pratiquement assis dessus quand il n'y avait qu'un châssis sans coque.

C'est pour quand le CT ? ...t'avais déjà fait l'immat avant de la désosser ou t'es toujours en papiers US ?
temp100

Re: Module Arduino

Message par temp100 »

suis en papier US, mais t'as raison, j'aurais du l'immat avant

normalemant, si le temps se réchauffe un poil ... d'ici la fin du mois le CT sera fait
temp100

Re: Module Arduino

Message par temp100 »

et voilà le proto est prêt

Image

Image
Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités