Nouvelles:

Bienvenue au Forum de discussion Électro-Bidouilleur! Inscrivez-vous pour participer aux discussions!: 
https://forum.bidouilleur.ca/index.php?action=signup Les demandes d'inscription sont révisées quotidiennement.

Menu principal

L298N et CSA et CSB

Démarré par stephcache, Mars 30, 2022, 09:04:57 PM

« précédent - suivant »

Curiosus


Oui, tu auras 16 positions

     A+

stephcache

#76
Un petit relevé de courbe de la journée. Reste à  interprété, par conte les mesure ont pas était faite en même temps alors pas simple mais samedi je pourrais faire la mesure sur ADC et en parallèle de la résistance de shunts en même temps.

stephcache

#77
En attendant les mesures de demain, un petit problème à  résoudre avec le codeur rotatif.


int MDCR_1 = A2;
int MDCR_2 = A3;
int MDCR_4 = A4;
int MDCR_8 = A5;
int MGCR_1 = 10;
int MGCR_2 = 11;
int MGCR_4 = 12;
int MGCR_8 = 13;

int tableau_codeur[16][4] = {{1,1,1,1}, {0,1,1,1}, {1,0,1,1}, {0,0,1,1}, {1,1,0,1}, {0,1,0,1}, {1,0,0,1}, {0,0,0,1}, {1,1,1,0}, {0,1,1,0}, {1,0,1,0}, {0,0,1,1}, {1,1,0,0}, {0,1,0,0}, {1,0,0,0}, {0,0,0,0}};

int valeur_codeur[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

int valeur_codeurs[16] = {30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390, 420, 450, 480};

int info_codeur(int D1, int D2, int D4, int D8, int G1, int G2, int G4, int G8)
{
  Serial.print(digitalRead(D1));
  Serial.print(".");
  Serial.print(digitalRead(D2));
  Serial.print(".");
  Serial.print(digitalRead(D4));
  Serial.print(".");
  Serial.print(digitalRead(D8));
  Serial.print("/");
  Serial.print(digitalRead(G1));
  Serial.print(".");
  Serial.print(digitalRead(G2));
  Serial.print(".");
  Serial.print(digitalRead(G4));
  Serial.print(".");
  Serial.print(digitalRead(G8));
  Serial.println(";");

  for(size_t i = 0; i < 16; i++)
  {
    if(tableau_codeur[i][0] == digitalRead(D1) && tableau_codeur[i][1] == digitalRead(D2) && tableau_codeur[i][2] == digitalRead(D4) && tableau_codeur[i][3] == digitalRead(D8))
    {
      Serial.println(i);
      Serial.print(valeur_codeurs[i]);
      Serial.println(" mV");
    }
  }

  for(size_t j = 0; j < 16; j++)
  {
    if(tableau_codeur[j][0] == digitalRead(G1) && tableau_codeur[j][1] == digitalRead(G2) && tableau_codeur[j][2] == digitalRead(G4) && tableau_codeur[j][3] == digitalRead(G8))
    {
      Serial.println(j);
      Serial.print(valeur_codeurs[j]);
      Serial.println(" mV");
    }
  }
}

void setup()
{
  pinMode(MDCR_1, INPUT_PULLUP);
  pinMode(MDCR_2, INPUT_PULLUP);
  pinMode(MDCR_4, INPUT_PULLUP);
  pinMode(MDCR_8, INPUT_PULLUP);

  pinMode(MGCR_1, INPUT_PULLUP);
  pinMode(MGCR_2, INPUT_PULLUP);
  pinMode(MGCR_4, INPUT_PULLUP);
  pinMode(MGCR_8, INPUT_PULLUP);

  Serial.begin(9600);
}

void loop()
{
  info_codeur(MDCR_1, MDCR_2, MDCR_4, MDCR_8, MGCR_1, MGCR_2, MGCR_4, MGCR_8);
 
  delay(3000);
}


Donc voila sa donne sa, si vous avez des idée amélioration je suis preneur.

Curiosus

A ce que je vois tu t'amuses bien  ;)

CitationÉcrit par stephcache : En attendant les mesures de demain, un petit problème à  résoudre avec le codeur rotatif.

Quelle est ton problème

En ce qui concerne le codeur rotatif, généralement en fait un AND logique, puis on va chercher le résultat dans un tableau

     A+




stephcache

#79
Pour le code, j'ai mit ma solution.

Pour les courbes, je ferais les mesure demain matin. je tente toujours de comprend la différence entre la mesure qui va sur ADC et celle en parallèle du shunt

stephcache

Donc voila les courbes en courant consommé par les moteurs et info en tension sur ADC.
Moteur droit puis gauche

Curiosus



Qu'un moteur consomme plus qu'un autre c'est possible, car la mécanique droite ou gauche peux varié de quelque mm, donc il faudra prévoir un réglage

Gauche pour haut, et gauche pour bas,  Droite pour haut, et droite pour bas

Sur le moteur droit je vois des valeurs négative, c'est pas normal, il faut remédié à  ça, à  moins que ça soit pour ton réglage.

     A+

stephcache

Oui j'ai vu la valeur négative mais je sais pas d’où va viens. j'ai fait plusieurs mesure et sa sait produit d'une fois. Par conte je vois pas comment évité ça ?

stephcache

Bonjour, j'ai une question optionnelle. le module ACS712, on peut faire passé du 230 V ?

Curiosus

Bonjour,

Autant pour moi, j'ai corrigé

Merci

   A+