Brew System -impianto Birra

Ho fatto questo ma mi dà errore quando provo a verificarlo sul punto
pinmode(motor_mashtun, OUTPUT);

#include <LiquidCrystal.h>
#include <OneWire.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

int motor_mashtun = 31; //relè motore mashtun
int mashtun_birra = 29; // relè mashtun birra 
int boil_birra = 30;  //relè mashtun bollitore birra
int sonda_birra = 8;          // pin a cui e' collegata la sonda serbatoio birra
int alza_birra = 32;     // pin per il bottone aumento setpoint birra
int abbassa_birra = 33;  // pin per il bottone diminuzione setpoint birra
int setpoint_birra;// inizializza il setpoint della birra
long temp_birra;     // inizializza una variabile contenente la temperatura della birra

int i;


void setup() {                                  // ingressi come imput o output
  pinmode(motor_mashtun, OUTPUT);
  pinmode(mashtun_birra, OUTPUT);
  pinmode(boil_birra, OUTPUT);
  pinMode(sonda_birra, INPUT);
  lcd.begin(4,20);
  lcd.clear();
}

void loop() {
     
OneWire  ds(temp_birra);        // ds18b20 pin #2 (middle pin) to Arduino pin 8

byte i;
byte present = 0;
byte data[12];
byte addr[8];
  
int HighByte, LowByte, SignBit, Whole, Fract, TReading, Tc_100, FWhole;

void setup(void) {
  
  lcd.begin(4,20);              // rows, columns.  use 2,16 for a 2x16 LCD, etc.
  lcd.clear();                  // start with a blank screen
  lcd.setCursor(0,0);           // set cursor to column 0, row 0
  
    if ( !ds.search(addr)) {
      lcd.clear(); lcd.print("No more addrs");
      delay(1000);
      ds.reset_search();
      return;
  }

  if ( OneWire::crc8( addr, 7) != addr[7]) {
      lcd.clear(); lcd.print("CRC not valid!");
      delay(1000);
      return;
  }
}

void getTemp() {
  int foo, bar;
  
  ds.reset();
  ds.select(addr);
  ds.write(0x44,1);
  
  present = ds.reset();
  ds.select(addr);    
  ds.write(0xBE);

  for ( i = 0; i < 9; i++) {
    data[i] = ds.read();
  }
  
  LowByte = data[0];
  HighByte = data[1];
  TReading = (HighByte << 8) + LowByte;
  SignBit = TReading & 0x8000;  // test most sig bit
  
  if (SignBit) {
    TReading = -TReading;
  }
  Tc_100 = (6 * TReading) + TReading / 4;    // multiply by (100 * 0.0625) or 6.25
  Whole = Tc_100 / 100;          // separate off the whole and fractional portions
  Fract = Tc_100 % 100;
  if (Fract > 49) {
    if (SignBit) {
      --Whole;
    } else {
      ++Whole;
    }
  }

  if (SignBit) {
    bar = -1;
  } else {
    bar = 1;
  }
  
}

void printTemp(void) {
  lcd.clear();
  lcd.setCursor(0,2);
  lcd.print("MASH-TEMP : ");
  lcd.setCursor(0,3);   
  
  if (SignBit) {  
     lcd.print("-");
  }
  lcd.print(Whole);
  lcd.print(" C  ");
  
}

void loop(void) {
  getTemp();
  printTemp();
  delay(1000);
}     


    
  if (temp_birra < setpoint_birra){   // controlla se la birra è in temperatura
    digitalWrite(motor_mashtun, HIGH);             // accendi il motore mash tun
    delay(50);                          // attende
    digitalWrite(mashtun_birra, HIGH);       // accendi caldaia mash tun
    delay(50);                          // attende
    }
     }
  
  if (temp_birra == setpoint_birra){ // se birra è in temperatura 
    digitalWrite(mashtun_birra, LOW);  // spengi gas mash tun
    }
      }
   if (digitalRead (alza_birra) == LOW){           // se ha rilevato pressione del bottone + birra incrementa
    setpoint_birra=setpoint_birra+1;
  }
 if (digitalRead (abbassa_birra) == LOW){           // se ha rilevato pressione del bottone - birra decrementa
    setpoint_birra=setpoint_birra-1;
  }
   }
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Birra");
  lcd.setCursor(9, 0);
  lcd.print("Set");
  lcd.setCursor(9, 1);
  lcd.print("Set");
  lcd.setCursor(6, 0);
  lcd.print(temp_birra);
  lcd.setCursor(13, 1);
  lcd.print(setpoint_birra);
  delay(100);  
}