Compilation error: 'Wire' does not name a type

#include <LiquidCrystal_I2C.h>   //includerea librariilor utilizate
#include <Wire.h>
#include <wire.h>

#define TRIGPIN 6    //Pin to send trigger pulse
#define ECHOPIN 7   //pin to receive echo pulse
#define buton1 11
#define buton2 10
#define buton3 8
#define buton4 9
#define PompaAlimentare 5

LiquidCrystal_I2C lcd(0x27, 20, 2); //Set the lcd address to 0x27 for a 16 chars and 2 line display

float nivel_de_referinta = 16.0;
int Hmax = 29.5;
float eroarea = 0.0;
float eroarea_anterioara = 0.0;
float integrala = 0.0;
float integrala_anterioara = 0.0;
float kp=100, ki=1.5, kd=0.02; 

float PID_P=0, PID_I=0, PID_D=0;

float marimea_de_comanda = 1.0;
double nivel_masurat=0.0;
int pushButton1=1;
int pushButton2=1;
int pushButton3=1;
int pushButton4=1;
float delta=0.1;  //perioada de esantionare in secunde
int ok=0;
long interval = 500;
long previousMillis=0;

byte sensorInterrupt = 0; //0=digital pin 2
byte sensorPIN = 2;
float calibrationFactor = 150;
volatile byte pulseCount;
float flowRate;
unsigned int flowMilliLitres;
unsigned longMilliLitres;
unsigned long oldTime;

void setup() {}

Wire.begin();
Serial.begin(9600);

pinMode(buton1, INPUT_PULLUP);
pinMode(buton2, INPUT_PULLUP);
pinMode(buton3, INPUT_PULLUP);
pinMode(buton4, INPUT_PULLUP);
pinMode(buton1, INPUT_PULLUP);
pinMode(ECHOPIN,INPUT);
pinMode(TRIGPIN,OUTPUT)
pinMode(PompaAlimentare,OUTPUT);
pinMode(sensorPin,INPUT);
digitalWrite(sensorPin,HIGH);

pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
oldTime = 0;

attachInterrupt(sensorInterrupt, pulseCounter, FALLING);

lcd.backlight();
lcd.init();

void pulseCounter()
{
  pulseCount++;
}

void loop() {
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > interval)  {
    lcd.setCursor(0,0);
    lcd.print("Ref=");
    lcd.print(nivel_de_referinta-1,1);
    lcd.print("cm");
    lcd.setCursor(0,1);
    lcd.print("H=");
    lcd.print(nivel_masurat, 1);
    lcd.print("cm");
    lcd.setCursor(11,0);
    lcd.print("FlowR");
    lcd.setCursor(9,1);
    lcd.print(flowRate,1);
    lcd.print("l/m");
    previousMillis = currentMillis;
  }


digitalWrite(TRIGPIN,LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN,HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN,LOW);
nivel_masurat = Hmax - ((pulseIn(ECHOPIN, HIGH))*0.034/2);

if((millis() - oldTime) > 1000)   {
  detachInterrupt(sensorInterrupt);
  flowRate = ((1000.0/(millis() - oldTime)) * pulseCount)/calibrationFactor;
  oldTime = millis();
}
flowMilliLitres = (flowRate/60)*1000;

totalMilliLitres += flowMilliLitres;

pushButton1 = digitalRead(buton1);
pushButton2 = digitalRead(buton2);
pushButton3 = digitalRead(buton3);
pushButton4 = digitalRead(buton4);

if (pushButton1 == LOW)
 nivel_de_referinta = nivel_de_referinta -1;
if (pushButton2 == LOW)
nivel_de_referinta = nivel_de_referinta +1;

if(nivel_de_referinta < 4)
  nivel_de_referinta = 4;
if (nivel_de_referinta > 24)
  nivel_de_referinta = 24;

if (pushButton1 == LOW || pushButton2 == LOW)
delay(500);

if(pushButton4 == LOW)
{ ok = 0;
analogWrite(PompaAlimentare, marimea_de_comanda);
marimea_de_comanda = 0; }

if(pushButton3 == LOW || ok==1) {
  ok=1;
}

eroarea = nivel_de_referinta - nivel_masurat;
integrala = integrala_anterioara + (eroarea + eroarea_anterioara)/2.0 * delta;
PID_P= kp * eroarea;
PID_I = ki * integrala;
PID_D = kd * ((eroarea - eroarea_anterioara)/delta);

eroarea_anterioara = eroarea;
integrala_anterioara = integrala;
marimea_de_comanda = PID_P + PID_I + PID_D;

if(eroarea <=0)
{ marimea_de_comanda = 10;
}
if(marimea_de_comanda > 255.0)
{ marimea_de_comanda = 255.0;
analogWrite(PompaAlimentare, marimea_de_comanda);
}

pulseCount = 0;

attachInterrupt(sensorInterrupt, pulseCounter, FALLING);

Serial.print("nivel de referinta =");
Serial.print(nivel_de_referinta);
Serial.print("nivel masurat =");
Serial.print(nivel_masurat);
Serial.print("flowRate = ");
Serial.print(flowRate); 
}

Please let the IDE format your code (CTRL-T).

Please copy the full error message and the offending line.

That looks like a trouble maker.

One '}' too soon.

1 Like

Your setup () stuff is not inside, not within, braces.

void setup() {

Wire.begin();
Serial.begin(9600);

pinMode(buton1, INPUT_PULLUP);
pinMode(buton2, INPUT_PULLUP);
pinMode(buton3, INPUT_PULLUP);
pinMode(buton4, INPUT_PULLUP);
//pinMode(buton1, INPUT_PULLUP);
pinMode(ECHOPIN,INPUT);
pinMode(TRIGPIN,OUTPUT);
pinMode(PompaAlimentare,OUTPUT);
// pinMode(sensorPin,INPUT);
digitalWrite(sensorPin,HIGH);

pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
oldTime = 0;

attachInterrupt(sensorInterrupt, pulseCounter, FALLING);

lcd.backlight();
lcd.init();
}

You need to do something about sensorPin - that matter requires attention and / or revision.

Oops.

Why?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.