Проблемы со скетчем Arduino и Dallas18B20

Surama
Offline
Зарегистрирован: 17.05.2016

Я взял скетч с этого сайта и у меня возникли некоторые проблемы с программой.

У меня немного другой LCD и когда меняю строчки  (#include <LiquidCrystal.h>LiquidCrystal lcd(8, 9, 4, 5, 6, 7);) на (#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x20,16,2);) он выдает ошибку (Ошибка компиляции), как это исправить или нужно что то добавить в код. (пробовал компилировать с разных IDE 1.0.6; 1.6.4;1.6.9;1.6.5.)

Мой диспплей: http://zelectro.cc/Z-LCD_I2C_Keypad_Shield

Сайт со скетчем: http://arduino.ru/forum/proekty/upravlenie-obogrevom-komnaty-pri-pomoshchi-arduino-i-dallas18b20

Скетч:



// Подключаем библиотеку для работы с шиной OneWire
// Термометр будет подключен на Pin2
#include <OneWire.h>
OneWire oneWire(2);

//Подключаем библиотеку для работы с термометром
#include <DallasTemperature.h>

//Создаем объект sensors, подключенный по OneWire
DallasTemperature sensors(&oneWire);

//Создаем переменные для работы с термометром
DeviceAddress tempDeviceAddress;  //переменная для хранения адреса датчика
float temp1=0; //переменная для текущего значения температуры
int setTmp=0; // переменная для заданного значения температуры

//Подключаем LCD-дисплей
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,16,2);

//Подсветка управляется через пин D10
#define BACKLIGHT_PIN 10

//Создаем переменную для хранения состояния подсветки
boolean backlightStatus = 1;

// Подключаем библиотеку для работы с ARDUINO EEPROM
//Заданная температура будет храниться по адресу 0
#include <EEPROM2.h>

//Реле подключено к пину D11
#define RELAY_PIN 11

//Объявим переменную для хранения состояния реле
boolean relayStatus1=LOW;

//Объявим переменные для задания задержки
long previousMillis1 = 0;
long interval1 = 1000; // интервал опроса датчиков температуры

//Аналоговая клавиатура подключена к пину A0
#define KEYPAD_PIN A0
//Определим значения на аналоговом входе для клавиатуры 
#define ButtonUp_LOW 90
#define ButtonUp_HIGH 100
#define ButtonDown_LOW 240
#define ButtonDown_HIGH 280
#define ButtonLeft_LOW 390
#define ButtonLeft_HIGH 450
#define ButtonRight_LOW 0
#define ButtonRight_HIGH 50
#define ButtonSelect_LOW 620
#define ButtonSelect_HIGH 650

void setup() {

//Настроим пин для управления реле
  pinMode(RELAY_PIN,OUTPUT);
  digitalWrite(RELAY_PIN,LOW);

//Считаем из постоянной памяти заданную температуру
  setTmp=EEPROM_read_byte(0);

//Инициализируем термодатчик и установим разрешающую способность 12 бит (обычно она установлена по умолчанию, так что последнюю строчку можно опустить)
  sensors.begin();
  sensors.getAddress(tempDeviceAddress, 0);
  sensors.setResolution(12);
    
//Настроим подсветку дисплея
  pinMode(BACKLIGHT_PIN, OUTPUT);
  digitalWrite(BACKLIGHT_PIN, backlightStatus);

//Выведем на дисплей стартовое сообщение на 2 секунды
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Temp. Controller");
  lcd.setCursor(0, 1);
  lcd.print("      v1.0      ");
  delay(2000);

// выведем на дисплей заданное значение температуры на 2 секунды
  lcd.setCursor(0, 1);
  lcd.print("  Set temp:     ");
  lcd.setCursor(12,1);
  lcd.print(setTmp);
  delay(2000);

//Очистим дисплей
  lcd.begin(16, 2);
}



//Определим функцию для опроса аналоговой клавиатуры
//Функция опроса клавиатуры, принимает адрес пина, к которому подключена клавиатура, и возвращает код клавиши:
// 1 - UP
// 2 - DOWN
// 3 - LEFT
// 4 - RIGHT
// 5 - SELECT

int ReadKey(int keyPin)
{
 int KeyNum=0;
 int KeyValue1=0;
 int KeyValue2=0;

//Читаем в цикле аналоговый вход, для подавления дребезга и нестабильности читаем по два раза подряд, пока значения не будут равны.
//Если значения равны 1023 – значит не была нажата ни  одна клавиша.

do {
KeyValue1=analogRead(keyPin);
 KeyValue2=analogRead(keyPin);
 } while (KeyValue1==KeyValue2&&KeyValue2!=1023);

//Интерпретируем полученное значение и определяем код нажатой клавиши
 if (KeyValue2<ButtonUp_HIGH&&KeyValue2>ButtonUp_LOW) {KeyNum=1;}//Up
 if (KeyValue2<ButtonDown_HIGH&&KeyValue2>ButtonDown_LOW) {KeyNum=2;}//Down
 if (KeyValue2<ButtonLeft_HIGH&&KeyValue2>ButtonLeft_LOW) {KeyNum=3;}//Left
 if (KeyValue2<ButtonRight_HIGH&&KeyValue2>ButtonRight_LOW) {KeyNum=4;}//Right
 if (KeyValue2<ButtonSelect_HIGH&&KeyValue2>ButtonSelect_LOW) {KeyNum=5;}//Select

//Возвращаем код нажатой клавиши
return KeyNum;
}

//Определим процедуру редактирования заданной температуры
//Вызывается по нажатию клавиши Select, отображает на дисплее заданную температуру и позволяет изменять ее клавишами Up и Down

void setTemperature() {

  int keyCode=0;

//выводим на дисплей заданное значение температуры  
  lcd.begin(16,2);
  lcd.setCursor(0, 0);
  lcd.print("  Setting temp  ");
  lcd.setCursor(7, 1);
  lcd.print(setTmp);

//Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1
//Если нажаты клавиши Select или Right – цикл опроса прерывается
//Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать
do {
  keyCode=ReadKey(KEYPAD_PIN);
  if (keyCode==1){setTmp++;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp);}
  if (keyCode==2){setTmp--;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp);}
} while (keyCode!=5 && keyCode!=4);
  delay(200);

//По клавише Select – созраняем в EEPROM измененное значение
//По клавише Right – восстанавливаем старое значение
if (keyCode==5) {EEPROM_write_byte(0, setTmp);}
if (keyCode==4) {setTmp = EEPROM_read_byte(0);}
}

void loop() {

//Модуль опроса датчиков и получения сведений о температуре
//Вызывается 1 раз в секунду
  unsigned long currentMillis1 = millis();
if(currentMillis1 - previousMillis1 > interval1) {
    previousMillis1 = currentMillis1;  

//Запуск процедуры измерения температуры
  sensors.setWaitForConversion(false);
  sensors.requestTemperatures();
  sensors.setWaitForConversion(true);

Delay(750) // задержка для обработки информации внутри термометра, в данном случае можно не задавать

//Считывание значения температуры
  sensors.getAddress(tempDeviceAddress, 0);
  temp1=sensors.getTempC(tempDeviceAddress);

// Вывод текущего значения температуры на дисплей
  lcd.setCursor(0, 0);
  lcd.print("  Current temp  ");
  lcd.setCursor(5, 1);
  lcd.print(temp1);
//  Serial.println(temp1,4);
}

//Проверка условия включения/выключения нагревателя
if (temp1<setTmp&&relayStatus1==LOW){relayStatus1=HIGH; digitalWrite(RELAY_PIN,HIGH);}
if (temp1>setTmp&&relayStatus1==HIGH){relayStatus1=LOW; digitalWrite(RELAY_PIN,LOW);}

// Опрос клавиатуры 
int Feature = ReadKey(KEYPAD_PIN);
if (Feature==1 ) {backlightStatus=1;digitalWrite(BACKLIGHT_PIN, backlightStatus);} //Включение подсветки
if (Feature==2 ) {backlightStatus=0;digitalWrite(BACKLIGHT_PIN, backlightStatus);} //Отключение подсветки
if (Feature==5 ) {delay(200);setTemperature();} //Переход к редактированию заданной температуры
}

Текст ошибки(подробный):

Arduino: 1.6.5 (Windows 7), Плата"Arduino/Genuino Uno"
 
Изменена опция сборки, пересобираем все
 
Используем библиотеку OneWire в папке: C:\Program Files (x86)\Arduino\libraries\OneWire (legacy)
 
Используем библиотеку Wire в папке: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire 
 
Используем библиотеку dallas-temperature-control в папке: C:\Program Files (x86)\Arduino\libraries\dallas-temperature-control (legacy)
 
Используем библиотеку LiquidCrystal_I2C1602V1 в папке: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 (legacy)
 
Используем библиотеку EEPROM2 в папке: C:\Program Files (x86)\Arduino\libraries\EEPROM2 (legacy)
 
 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\OneWire -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2 C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\sketch_may13a.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\sketch_may13a.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\OneWire -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2 -IC:\Program Files (x86)\Arduino\libraries\OneWire\utility C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire(1).cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\OneWire -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2 -IC:\Program Files (x86)\Arduino\libraries\OneWire\utility C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\OneWire -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2 -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\utility C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\Wire.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Wire\Wire.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\OneWire -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2 -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\utility C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\utility\twi.c -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Wire\utility\twi.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\OneWire -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2 -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control\utility C:\Program Files (x86)\Arduino\libraries\dallas-temperature-control\DallasTemperature.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\dallas-temperature-control\DallasTemperature.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\OneWire -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2 -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1\utility C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1\LiquidCrystal_I2C.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\LiquidCrystal_I2C1602V1\LiquidCrystal_I2C.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\OneWire -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\dallas-temperature-control -IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C1602V1 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2 -IC:\Program Files (x86)\Arduino\libraries\EEPROM2\utility C:\Program Files (x86)\Arduino\libraries\EEPROM2\EEPROM2.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\EEPROM2\EEPROM2.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -x assembler-with-cpp -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_pulse.S -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_pulse.S.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\hooks.c -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\hooks.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WInterrupts.c -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\WInterrupts.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring.c -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_analog.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_digital.c -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_digital.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_pulse.c -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_pulse.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_shift.c -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_shift.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\abi.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\abi.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\CDC.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\CDC.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial0.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial0.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial1.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial1.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial2.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial2.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial3.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial3.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HID.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HID.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\IPAddress.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\IPAddress.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\main.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\main.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\new.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\new.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Print.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Print.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Stream.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Stream.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Tone.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Tone.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\USBCore.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\USBCore.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WMath.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\WMath.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WString.cpp -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\WString.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_pulse.S.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\hooks.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\WInterrupts.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_analog.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_digital.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_pulse.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\wiring_shift.c.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\abi.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\CDC.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial0.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial1.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial2.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HardwareSerial3.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\HID.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\IPAddress.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\main.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\new.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Print.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Stream.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Tone.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\USBCore.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\WMath.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar rcs C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\WString.cpp.o 
 
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -w -Os -Wl,--gc-sections -mmcu=atmega328p -o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/sketch_may13a.cpp.elf C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\sketch_may13a.cpp.o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Wire\Wire.cpp.o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\Wire\utility\twi.c.o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\dallas-temperature-control\DallasTemperature.cpp.o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\LiquidCrystal_I2C1602V1\LiquidCrystal_I2C.cpp.o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\EEPROM2\EEPROM2.cpp.o C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp/core.a -LC:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp -lm 
 
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::reset()'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::write_bit(unsigned char)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::read_bit()'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::write(unsigned char, unsigned char)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::write_bytes(unsigned char const*, unsigned int, bool)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::read()'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::read_bytes(unsigned char*, unsigned int)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::select(unsigned char const*)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::skip()'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::depower()'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::reset_search()'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::OneWire(unsigned char)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::OneWire(unsigned char)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::target_search(unsigned char)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::search(unsigned char*)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::crc8(unsigned char const*, unsigned char)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::crc16(unsigned char const*, unsigned int, unsigned int)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire.cpp.o: In function `OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire.cpp:138: multiple definition of `OneWire::check_crc16(unsigned char const*, unsigned int, unsigned char const*, unsigned int)'
C:\Users\Surama\AppData\Local\Temp\build1030222253309977607.tmp\OneWire\OneWire(1).cpp.o:C:\Program Files (x86)\Arduino\libraries\OneWire/OneWire(1).cpp:138: first defined here
collect2.exe: error: ld returned 1 exit status
Ошибка компиляции.

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Где-то копия библиотеки OneWire - ее нужно удалить.

Surama
Offline
Зарегистрирован: 17.05.2016

Спасибо, попробую найти

Surama
Offline
Зарегистрирован: 17.05.2016

А можете помочь изменить считывание кнопок, если не сложно. (Цель та же, изменение температуры и отключение экрана, как и в оригинале)

вот тестовый режим этх кнопок:

// Тестировалось на Arduino IDE 1.0.5
#include <Wire.h> // Добавляем необходимые библиотеки
#include <LiquidCrystal_I2C.h>
int BL = 11; // Вывод управления подсветкой подключен к цифровому выводу 11 с поддержкой ШИМ

LiquidCrystal_I2C lcd(0x20,16,2); // Задаем адрес и размерность дисплея

// Нажатые кнопки
int button;
const int BUTTON_NONE = 0;
const int BUTTON_RIGHT = 1;
const int BUTTON_UP = 2;
const int BUTTON_DOWN = 3;
const int BUTTON_LEFT = 4;
const int BUTTON_SELECT = 5;

int getPressedButton()
{
  int buttonValue = analogRead(0); // Считываем значения с аналогового входа(A0)
  if (buttonValue < 100) {
    return BUTTON_RIGHT;
  }
  else if (buttonValue < 200) {
    return BUTTON_UP;
  }
  else if (buttonValue < 400){
    return BUTTON_DOWN;
  }
  else if (buttonValue < 600){
    return BUTTON_LEFT;
  }
  else if (buttonValue < 800){
    return BUTTON_SELECT;
  }
  return BUTTON_NONE;
}

void setup()
{

  lcd.init(); // Инициализация lcd
  analogWrite(BL, 255); // Включаем подсветку на максимальное значение

  lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки
  lcd.print("Test mode"); // Выводим текст
  lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки
  lcd.print("press any button"); // Выводим текст
}
void loop()
{
  button = getPressedButton();
  switch (button)
  {
  case BUTTON_RIGHT: // при нажатии кнопки выводим следующий текст
    lcd.clear ();
    delay (70);
    lcd.setCursor(0, 0);
    lcd.print("BUTTON: RIGHT");
    break;
  case BUTTON_LEFT:
    lcd.clear ();
    delay (70);
    lcd.setCursor(0, 0);
    lcd.print("BUTTON: LEFT");
    break;
  case BUTTON_UP:
    lcd.clear ();
    delay (70);
    lcd.setCursor(0, 0);
    lcd.print("BUTTON: UP");
    break;
  case BUTTON_DOWN:
    lcd.clear ();
    delay (70);
    lcd.setCursor(0, 0);
    lcd.print("BUTTON: DOWN");
    break;
  case BUTTON_SELECT:
    lcd.clear ();
    delay (70);
    lcd.setCursor(0, 0);
    lcd.print("BUTTON: SELECT");
    break;
  }
}

 

 

Surama
Offline
Зарегистрирован: 17.05.2016

Помогло, видимо корявая библиотека была, там пара файлов повторялась.

Surama
Offline
Зарегистрирован: 17.05.2016

Вроде бы все исправил, только немогу разобраться как сохранить измененную температуру не реагирует на кнопку select (сохранение).

 

void setTemperature() 
{
  int keyCode=0;

//выводим на дисплей заданное значение температуры 
  lcd.begin(16,2);
  lcd.setCursor(0, 0);
  lcd.print("  Setting temp  ");
  lcd.setCursor(7, 1);
  lcd.print(setTmp);

//Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1
//Если нажаты клавиши Select или Right – цикл опроса прерывается
//Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать

do
{
   button = getPressedButton();
  switch (button)
  {
    case BUTTON_UP:
    setTmp++;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp);
    break;
    case BUTTON_DOWN:
    setTmp--;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp);   
    break;
  }
}

//По клавише Select – созраняем в EEPROM измененное значение
//По клавише Right – восстанавливаем старое значение

while (BUTTON_SELECT && BUTTON_RIGHT);

  delay(200);
     button = getPressedButton();
  switch (button)
  {
case BUTTON_SELECT:
EEPROM_write_byte(0, setTmp);
break;
case BUTTON_RIGHT:
setTmp = EEPROM_read_byte(0);
  }
}





void loop() 
{

//Модуль опроса датчиков и получения сведений о температуре

//Вызывается 1 раз в секунду

  unsigned long currentMillis1 = millis();
  if(currentMillis1 - previousMillis1 > interval1) {
   previousMillis1 = currentMillis1; 


//Запуск процедуры измерения температуры

  sensors.setWaitForConversion(false);
  sensors.requestTemperatures();
  sensors.setWaitForConversion(true);

 

delay(750); // задержка для обработки информации внутри термометра, в данном случае можно не задавать

 

//Считывание значения температуры

  sensors.getAddress(tempDeviceAddress, 0);
  temp1=sensors.getTempC(tempDeviceAddress);

 

// Вывод текущего значения температуры на дисплей

  lcd.setCursor(0, 0);
  lcd.print("  Current temp  ");
  lcd.setCursor(5, 1);
  lcd.print(temp1);
//  Serial.println(temp1,4);

}
//Проверка условия включения/выключения нагревателя
if (temp1<setTmp&&relayStatus1==LOW){relayStatus1=HIGH; digitalWrite(RELAY_PIN,HIGH);}
if (temp1>setTmp&&relayStatus1==HIGH){relayStatus1=LOW; digitalWrite(RELAY_PIN,LOW);}

// Опрос клавиатуры
  button = getPressedButton();
  switch (button)
  {
    case BUTTON_UP:
    backlightStatus=1;delay(200);digitalWrite(BACKLIGHT_PIN, backlightStatus);
    break;
    case BUTTON_DOWN:
    backlightStatus=0;delay(200);digitalWrite(BACKLIGHT_PIN, backlightStatus);   
    break;
    case BUTTON_SELECT:
    delay(200);setTemperature();
    
  }

}

Весь код:

// Подключаем библиотеку для работы с шиной OneWire

// Термометр будет подключен на Pin2

#include <OneWire.h>
#include <Wire.h>
OneWire oneWire(2);

 

//Подключаем библиотеку для работы с термометром

#include <DallasTemperature.h>

 

//Создаем объект sensors, подключенный по OneWire

DallasTemperature sensors(&oneWire);

 

//Создаем переменные для работы с термометром

DeviceAddress tempDeviceAddress;  //переменная для хранения адреса датчика

float temp1=0; //переменная для текущего значения температуры

int setTmp=0; // переменная для заданного значения температуры

 

//Подключаем LCD-дисплей

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2);   // Задаем адрес и размерность дисплея. 



 

//Подсветка управляется через пин D11

#define BACKLIGHT_PIN 11

 

//Создаем переменную для хранения состояния подсветки

boolean backlightStatus = 1;

 

// Подключаем библиотеку для работы с ARDUINO EEPROM

//Заданная температура будет храниться по адресу 0

#include <EEPROM2.h>

 

//Реле подключено к пину D10

#define RELAY_PIN 10


//Объявим переменную для хранения состояния реле

boolean relayStatus1=LOW;

 

//Объявим переменные для задания задержки

long previousMillis1 = 0;

long interval1 = 1000; // интервал опроса датчиков температуры

 

//Аналоговая клавиатура подключена к пину A0

#define KEYPAD_PIN A0

//Определим значения на аналоговом входе для клавиатуры

int button;
const int BUTTON_NONE = 0;
const int BUTTON_RIGHT = 1;
const int BUTTON_UP = 2;
const int BUTTON_DOWN = 3;
const int BUTTON_LEFT = 4;
const int BUTTON_SELECT = 5;

 int getPressedButton()
{
  int buttonValue = analogRead(0); // Считываем значения с аналогового входа(A0)
  if (buttonValue < 100) {
    return BUTTON_RIGHT;
  }
  else if (buttonValue < 200) {
    return BUTTON_UP;
  }
  else if (buttonValue < 400){
    return BUTTON_DOWN;
  }
  else if (buttonValue < 600){
    return BUTTON_LEFT;
  }
  else if (buttonValue < 800){
    return BUTTON_SELECT;
  }
  return BUTTON_NONE;
}

void setup() {

 

//Настроим пин для управления реле

  pinMode(RELAY_PIN,OUTPUT);

  digitalWrite(RELAY_PIN,LOW);

 

//Считаем из постоянной памяти заданную температуру

  setTmp=EEPROM_read_byte(0);

 

//Инициализируем термодатчик и установим разрешающую способность 12 бит (обычно она установлена по умолчанию, так что последнюю строчку можно опустить)

  sensors.begin();

  sensors.getAddress(tempDeviceAddress, 0);

  sensors.setResolution(12);

     

//Настроим подсветку дисплея

  pinMode(BACKLIGHT_PIN, OUTPUT);

  digitalWrite(BACKLIGHT_PIN, backlightStatus);

 

//Выведем на дисплей стартовое сообщение на 2 секунды
  
  lcd.init();

  lcd.setCursor(0, 0);

  lcd.print("Temp. Controller");

  lcd.setCursor(0, 1);

  lcd.print("      v1.0      ");

  delay(2000);

 

// выведем на дисплей заданное значение температуры на 2 секунды

  lcd.setCursor(0, 1);

  lcd.print("  Set temp:     ");

  lcd.setCursor(12,1);

  lcd.print(setTmp);

  delay(2000);

 

//Очистим дисплей

  lcd.begin(16, 2);

}

 

 


//Определим функцию для опроса аналоговой клавиатуры

//Функция опроса клавиатуры, принимает адрес пина, к которому подключена клавиатура, и возвращает код клавиши:

int ReadKey(int keyPin)
{
 int KeyNum=0;
 int KeyValue1=0;
 int KeyValue2=0;

//Читаем в цикле аналоговый вход, для подавления дребезга и нестабильности читаем по два раза подряд, пока значения не будут равны.

//Если значения равны 1023 – значит не была нажата ни  одна клавиша.

do {

KeyValue1=analogRead(keyPin);

 KeyValue2=analogRead(keyPin);

 } while (KeyValue1==KeyValue2&&KeyValue2!=1023);

 

//Интерпретируем полученное значение и определяем код нажатой клавиши
 
 

//Возвращаем код нажатой клавиши

return KeyNum;

}

 

//Определим процедуру редактирования заданной температуры

//Вызывается по нажатию клавиши Select, отображает на дисплее заданную температуру и позволяет изменять ее клавишами Up и Down

 

void setTemperature() 
{
  int keyCode=0;

//выводим на дисплей заданное значение температуры 
  lcd.begin(16,2);
  lcd.setCursor(0, 0);
  lcd.print("  Setting temp  ");
  lcd.setCursor(7, 1);
  lcd.print(setTmp);

//Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1
//Если нажаты клавиши Select или Right – цикл опроса прерывается
//Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать

do
{
   button = getPressedButton();
  switch (button)
  {
    case BUTTON_UP:
    setTmp++;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp);
    break;
    case BUTTON_DOWN:
    setTmp--;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp);   
    break;
  }
}while (BUTTON_SELECT && BUTTON_RIGHT);

  delay(200);

//По клавише Select – созраняем в EEPROM измененное значение
//По клавише Right – восстанавливаем старое значение


     button = getPressedButton();
  switch (button)
  {
case BUTTON_SELECT:
EEPROM_write_byte(0, setTmp);
break;
case BUTTON_RIGHT:
setTmp = EEPROM_read_byte(0);
  }
}





void loop() 
{

//Модуль опроса датчиков и получения сведений о температуре

//Вызывается 1 раз в секунду

  unsigned long currentMillis1 = millis();
  if(currentMillis1 - previousMillis1 > interval1) {
   previousMillis1 = currentMillis1; 


//Запуск процедуры измерения температуры

  sensors.setWaitForConversion(false);
  sensors.requestTemperatures();
  sensors.setWaitForConversion(true);

 

delay(750); // задержка для обработки информации внутри термометра, в данном случае можно не задавать

 

//Считывание значения температуры

  sensors.getAddress(tempDeviceAddress, 0);
  temp1=sensors.getTempC(tempDeviceAddress);

 

// Вывод текущего значения температуры на дисплей

  lcd.setCursor(0, 0);
  lcd.print("  Current temp  ");
  lcd.setCursor(5, 1);
  lcd.print(temp1);
//  Serial.println(temp1,4);

}
//Проверка условия включения/выключения нагревателя
if (temp1<setTmp&&relayStatus1==LOW){relayStatus1=HIGH; digitalWrite(RELAY_PIN,HIGH);}
if (temp1>setTmp&&relayStatus1==HIGH){relayStatus1=LOW; digitalWrite(RELAY_PIN,LOW);}

// Опрос клавиатуры
  button = getPressedButton();
  switch (button)
  {
    case BUTTON_UP:
    backlightStatus=1;delay(200);digitalWrite(BACKLIGHT_PIN, backlightStatus);
    break;
    case BUTTON_DOWN:
    backlightStatus=0;delay(200);digitalWrite(BACKLIGHT_PIN, backlightStatus);   
    break;
    case BUTTON_SELECT:
    delay(200);setTemperature();
    
  }

}