温度传感器对LED的点亮状态

时间:2019-05-22 09:36:35

标签: arduino-uno

我正在编写一个程序,当温度低于30°C时,该程序应点亮LED。编译时出现错误。你们可以看看吗?我在做什么错了?

/*
 * Code d'exemple pour le capteur LM35DZ (0°C ~ +110°C).
 */
const int led_rouge = 3; //définition de la broche 3 de la carte étant la LED

 int valeur_brute;
// Fonction setup(), appelée au démarrage de la carte Arduino
void setup() {

  // Initialise la communication avec le PC
  Serial.begin(9600);

  //initialisation de la broche 3 comme étant une sortie 
  pinMode(led_rouge, OUTPUT);


}

// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop() {

  // Mesure la tension sur la broche A1
  int valeur_brute = analogRead(A1);

  // Transforme la mesure (nombre entier) en température via un produit en croix
  float temperature_celcius = valeur_brute * (5.0 / 1023.0 * 100.0);

  // Envoi la mesure au PC pour affichage et attends 250ms
  Serial.println(temperature_celcius);
  delay(250);

  //Condition de fonctionnement de la LED
  if( valeur_brute < 100/110 ) //si température inférieur à 30°C
  {
    digitalWrite(led_rouge, HIGH);
  }
  if ( valeur_brute > 100/110 ){
    digitalWrite(led_rouge, LOW);
  }
}

这是我在前面的代码中遇到的错误

F:\Alexis\Temperature\Temperature - LED.ino: In function 'void setup()':
F:\Alexis\Temperature\Temperature - LED.ino:6:6: error: redefinition of 'void setup()'
 void setup() {
      ^
F:\Alexis\Temperature\Temperature.ino:8:6: note: 'void setup()' previously defined here
 void setup() {
      ^
F:\Alexis\Temperature\Temperature - LED.ino: In function 'void loop()':
F:\Alexis\Temperature\Temperature - LED.ino:13:6: error: redefinition of 'void loop()'
 void loop() {
      ^
F:\Alexis\Temperature\Temperature.ino:20:6: note: 'void loop()' previously defined here
 void loop() {
      ^
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

1 个答案:

答案 0 :(得分:0)

您正在设置中重新定义CONST变量 int led_rouge = LOW;。 const变量不能被覆盖。只需在设置中删除该行即可。以下素描对我来说很好用:

const int led_rouge = 3; 
int valeur_brute;

void setup() {
  Serial.begin(9600);
  pinMode(led_rouge, OUTPUT);
}

void loop() {
  int valeur_brute = analogRead(A1);
  float temperature_celcius = valeur_brute * (5.0 / 1023.0 * 100.0);
  Serial.println(temperature_celcius);
  delay(250);
  if( temperature_celcius < 100/110 ){
    digitalWrite(led_rouge, HIGH);
  }
  if ( temperature_celcius > 100/110 ){
    digitalWrite(led_rouge, LOW);
  }
}