Bonjour à tous,
Lorsque je veux compiler un programme, j'ai l'erreur suivante:
ethylo:18: error: expected initializer before 'void'
ethylo:19: error: expected initializer before 'void'
ethylo.ino: In function 'void loop()':
ethylo:56: error: 'val' was not declared in this scope
ethylo:65: error: 'val' cannot appear in a constant-expression
ethylo:69: error: 'val' cannot appear in a constant-expression
ethylo:69: error: 'val' cannot appear in a constant-expression
ethylo:75: error: 'val' cannot appear in a constant-expression
ethylo:75: error: 'val' cannot appear in a constant-expression
ethylo:82: error: 'val' cannot appear in a constant-expression
ethylo:82: error: 'val' cannot appear in a constant-expression
ethylo:90: error: 'val' cannot appear in a constant-expression
ethylo:90: error: 'val' cannot appear in a constant-expression
ethylo:99: error: 'val' cannot appear in a constant-expression
ethylo:99: error: 'val' cannot appear in a constant-expression
ethylo:109: error: 'val' cannot appear in a constant-expression
ethylo:109: error: 'val' cannot appear in a constant-expression
ethylo:120: error: 'val' cannot appear in a constant-expression
ethylo:120: error: 'val' cannot appear in a constant-expression
ethylo:132: error: 'val' cannot appear in a constant-expression
ethylo:132: error: 'val' cannot appear in a constant-expression
ethylo:145: error: 'val' cannot appear in a constant-expression
Et voici le code qui va avec:
#define LED1 20
#define LED2 21
#define LED3 22
#define LED4 23
#define LED5 24
#define LED6 25
#define LED7 26
#define LED8 27
#define LED9 28
#define LED10 29
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int val
void setup()
{
lcd.begin(16, 2);
lcd.print("Ethylotest V1.1");
delay(15000);
lcd.clear();
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(LED9, OUTPUT);
pinMode(LED10, OUTPUT);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED9, LOW);
digitalWrite(LED10, LOW);
}
void loop()
{
lcd.setCursor(0, 0);
lcd.print(((1023-analogRead(A0))*0.4)/153);
lcd.print("mg/L Air exp");
val= (((1023-analogRead(A0))*0.4)/153);
lcd.setCursor(0,1);
lcd.print((((1023-analogRead(A0))*0.4)/153)*2);
lcd.print("g/L Sang");
if(val) // attente d'une touche valide
{
switch (val)
{
case val <= 0.025:
digitalWrite(LED1, HIGH);
case val > 0.025 && val <= 0.05:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
break;
case val >0.05 && val <= 0.075:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
break;
case val >0.075 && val <= 0.1:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
break;
case val >0.1 && val <= 0.125:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
break;
case val > 0.125 && val <= 0.150:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
break;
case val > 0.150 && val <= 0.175:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
break;
case val > 0.175 && val <= 0.2:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
break;
case val >0.2 && val <= 0.25:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
break;
case val > 0.25 :
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
break;
default:
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
digitalWrite(LED10, HIGH);
}
}
}
Le but de se code est de lire la valeur d'un capteur MQ-3. Ensuite il affiche le taux d'alcool dans le sang et dans l'air epiré sur un LCD. Parallèlement pour un taux dans l'air expiré allant de 0 à 0.25 mg/L un nombre de Leds doivent s'allumer pour indiquer si il y a dépassement où non de la limite. En tout dix leds. Il y a une led allumée en plus tou les 0.025 mg/L en plus (0; 0.025; 0.05; ... 0.25)
Merci.
Edwin