int potPin = A0;
int b2Pin = 12;
int b1Pin = 11;
int b0Pin = 10;
int b0R = 3;
int b1R = 4;
int b2R = 5;
int outputPin = A4;
void setup() {
pinMode(b2Pin, OUTPUT);
pinMode(b1Pin, OUTPUT);
pinMode(b0Pin, OUTPUT);
pinMode(b2R, OUTPUT);
pinMode(b1R, OUTPUT);
pinMode(b0R, OUTPUT);
pinMode(potPin, INPUT);
pinMode(outputPin, INPUT);
digitalWrite(b0R, LOW);
digitalWrite(b1R, LOW);
digitalWrite(b2R, LOW);
Serial.begin(9600);
}
void loop() {
int potValue = analogRead(potPin);
int command = map(potValue, 0, 1023, 0, 7);
int b2 = bitRead(command, 2);
int b1 = bitRead(command, 1);
int b0 = bitRead(command, 0);
digitalWrite(b2Pin, b2);
digitalWrite(b1Pin, b1);
digitalWrite(b0Pin, b0);
digitalWrite(b0R, b0);
digitalWrite(b1R, b1);
digitalWrite(b2R, b2);
float theoreticalVoltage = 5.0 * (b2 * 0.5 + b1 * 0.25 + b0 * 0.125);
float measuredVoltage = analogRead(outputPin) * 5.0 / 1023.0;
float error = measuredVoltage - theoreticalVoltage;
Serial.print("Commande : ");
Serial.println(command);
Serial.print("Binaire : ");
Serial.print(b2); Serial.print(b1); Serial.println(b0);
Serial.print("Tension Théorique : ");
Serial.print(theoreticalVoltage);
Serial.println(" V");
Serial.print("Tension Mesurée : ");
Serial.print(measuredVoltage);
Serial.println(" V");
Serial.print("Erreur : ");
Serial.print(error);
Serial.println(" V");
Serial.println("------------------------");
delay(1000);
}