Est ce que va mieux/moins mal? nota: je doute que ce que vous avez transmis compile....
//define the threshold value
const double SEUIL = 3.9; // 2.5;
//define the inputpin analog voltage
int analogPin = 0;
//define the ouput pin for red LED
int LEDpin = 3;
void setup() {
// initialize serial communication at 9600bits per second:
Serial.begin(115200);
// DEFINIR LEDpin en sortie remarque de Kamil
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the input on analog pin 0
int sensorValue = analogRead(analogPin);
// convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = (sensorValue * 5.0) / 1023.0; // changé parenthéses
//detect if analog signal is > SEUILvolts
if (voltage > SEUIL){
// print out the value you read:
Serial.println(sensorValue);
Serial.println(voltage);
Serial.println("LED is on");
//turn the LEDpin on
digitalWrite(LED,HIGH);
} else{
//print out the value you read:
Serial.println(sensorValue);
Serial.println(voltage);
Serial.println("LED is off");
}
}
//turn the LEDpin off
digitalWrite(LED,LOW);
}
//delay for display on the serial monitor
delay(200);
}
si si ça compile, par contre la précision n'est pas là, il faut que je code à 4.2 pour avoir 3.92.
Sinon la détection se fera directement sur un élément d'accu lipo donc quand il atteindra les 3.92.
Comment je dois faire parce qu'il faut alimenter indépendamment l'arduino et avoir la tension de référence 3.92 pour la détection?
double threshold = 3.92;
//define the inputpin analog voltage
int analogPin = 0;
//define the ouput pin for red LED
int LEDpin = 3;
void setup() {
// initialize serial communication at 9600bits per second:
Serial.begin(9600);
pinMode(LEDpin, OUTPUT);
}
void loop()
{
// read the input on analog pin 0
int sensorValue = analogRead(analogPin);
// convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
//detect if analog signal is > 2.5volts
if (voltage > 3.92)
{
// print out the value you read:
Serial.println(sensorValue);
Serial.println(voltage);
Serial.println("LED is on");
//turn the LEDpin on
digitalWrite(LEDpin,HIGH);
}
else
{
//print out the value you read:
Serial.println(sensorValue);
Serial.println(voltage);
Serial.println("LED is off");
//turn the LEDpin off
digitalWrite(LEDpin,LOW);
}
//delay for display on the serial monitor
delay(200);
}
La précision du convertisseur dépend (en grande partie) de la précision de la tension de référence.
Par défaut la tension de référence est la tension d'alimentation du micro. La mesure dépend donc de cette tension.
Si tu veux avoir une mesure plus précise il faut que tu mesures la tension "5V" et que tu utilises cette tension pour le calcul de la tension mesurée. Ce n'est cependant pas la panacée car cette tension peut varier en fonction de l'alimentation (tension usb, alimentation par jack ...)
diiity:
j'ai essayé de mettre la référence à 3.92, ça ne marche pas mais je pense que c'est du au pont diviseur.
Il faut que je fasse un pont qui me donne en sortie la valeur d'entrée, c'est ça?
Comme je te l'ai dit la valeur lue dépend de la tension d'alimentation.
Il faut que tu mesures le tension d'alimentation et que tu utilises cette valeur.
Si la tension vaut 4.6V la tension lue sera