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.