Подключение двух датчиков температуры с выводом на олед дисплей

NVV
Offline
Зарегистрирован: 03.01.2017

DATA обое во 2 пин

bwn
Offline
Зарегистрирован: 25.08.2014

Проверь фигурные скобки, кажется в сетапе одной не хватает, а в loop одна лишняя. Количество окрывающих = количеству закрывающих.

NVV
Offline
Зарегистрирован: 03.01.2017

Убрал в сетапе одну перед сериал и в лооп в конце стало выделять

NVV
Offline
Зарегистрирован: 03.01.2017
 myOLED.print(String(temperature()),RIGHT, 10); // Выводим текущее значение температуры датчика, округленное до десятых

 

NVV
Offline
Зарегистрирован: 03.01.2017
Arduino: 1.6.14 Hourly Build 2016/11/25 05:33 (Windows 10), Плата:"Arduino/Genuino Uno"

C:\Users\victo\Desktop\arduino-nightly\arduino-builder -dump-prefs -logger=machine -hardware C:\Users\victo\Desktop\arduino-nightly\hardware -tools C:\Users\victo\Desktop\arduino-nightly\tools-builder -tools C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr -built-in-libraries C:\Users\victo\Desktop\arduino-nightly\libraries -libraries C:\Users\victo\OneDrive\Документы\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10614 -build-path C:\Users\victo\AppData\Local\Temp\arduino_build_163057 -warnings=all -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr -verbose C:\Users\victo\AppData\Local\Temp\arduino_modified_sketch_364199\sketch_jan12d.ino
C:\Users\victo\Desktop\arduino-nightly\arduino-builder -compile -logger=machine -hardware C:\Users\victo\Desktop\arduino-nightly\hardware -tools C:\Users\victo\Desktop\arduino-nightly\tools-builder -tools C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr -built-in-libraries C:\Users\victo\Desktop\arduino-nightly\libraries -libraries C:\Users\victo\OneDrive\Документы\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10614 -build-path C:\Users\victo\AppData\Local\Temp\arduino_build_163057 -warnings=all -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr -verbose C:\Users\victo\AppData\Local\Temp\arduino_modified_sketch_364199\sketch_jan12d.ino
Using board 'uno' from platform in folder: C:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr
Detecting libraries used...
"C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10614 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\cores\arduino" "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\variants\standard" "C:\Users\victo\AppData\Local\Temp\arduino_build_163057\sketch\sketch_jan12d.ino.cpp" -o "nul"
"C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10614 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\cores\arduino" "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\variants\standard" "-IC:\Users\victo\Desktop\arduino-nightly\libraries\OneWire" "C:\Users\victo\AppData\Local\Temp\arduino_build_163057\sketch\sketch_jan12d.ino.cpp" -o "nul"
"C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10614 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\cores\arduino" "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\variants\standard" "-IC:\Users\victo\Desktop\arduino-nightly\libraries\OneWire" "-IC:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C" "C:\Users\victo\AppData\Local\Temp\arduino_build_163057\sketch\sketch_jan12d.ino.cpp" -o "nul"
"C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10614 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\cores\arduino" "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\variants\standard" "-IC:\Users\victo\Desktop\arduino-nightly\libraries\OneWire" "-IC:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C" "C:\Users\victo\Desktop\arduino-nightly\libraries\OneWire\OneWire.cpp" -o "nul"
"C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10614 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\cores\arduino" "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\variants\standard" "-IC:\Users\victo\Desktop\arduino-nightly\libraries\OneWire" "-IC:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C" "C:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C\DefaultFonts.c" -o "nul"
"C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10614 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\cores\arduino" "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\variants\standard" "-IC:\Users\victo\Desktop\arduino-nightly\libraries\OneWire" "-IC:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C" "C:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C\OLED_I2C.cpp" -o "nul"
Generating function prototypes...
"C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10614 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\cores\arduino" "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\variants\standard" "-IC:\Users\victo\Desktop\arduino-nightly\libraries\OneWire" "-IC:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C" "C:\Users\victo\AppData\Local\Temp\arduino_build_163057\sketch\sketch_jan12d.ino.cpp" -o "C:\Users\victo\AppData\Local\Temp\arduino_build_163057\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Users\victo\Desktop\arduino-nightly\tools-builder\ctags\5.8-arduino10/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\victo\AppData\Local\Temp\arduino_build_163057\preproc\ctags_target_for_gcc_minus_e.cpp"
Компиляция скетча...
"C:\Users\victo\Desktop\arduino-nightly\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10614 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\cores\arduino" "-IC:\Users\victo\Desktop\arduino-nightly\hardware\arduino\avr\variants\standard" "-IC:\Users\victo\Desktop\arduino-nightly\libraries\OneWire" "-IC:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C" "C:\Users\victo\AppData\Local\Temp\arduino_build_163057\sketch\sketch_jan12d.ino.cpp" -o "C:\Users\victo\AppData\Local\Temp\arduino_build_163057\sketch\sketch_jan12d.ino.cpp.o"
C:\Users\victo\AppData\Local\Temp\arduino_modified_sketch_364199\sketch_jan12d.ino: In function 'void loop()':

C:\Users\victo\AppData\Local\Temp\arduino_modified_sketch_364199\sketch_jan12d.ino:40:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

     myOLED.print("NTVGTHFNEHF", CENTER, 0);           // Выводим надпись "Русский язык"

                                          ^

C:\Users\victo\AppData\Local\Temp\arduino_modified_sketch_364199\sketch_jan12d.ino:41:35: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

     myOLED.print("EKBWF", LEFT, 10);           // Выводим надпись "Русский язык"

                                   ^

sketch_jan12d:43: error: 'temperature' was not declared in this scope

     myOLED.print(String(temperature()),RIGHT, 10); // Выводим текущее значение температуры датчика, округленное до десятых

                                     ^

C:\Users\victo\AppData\Local\Temp\arduino_modified_sketch_364199\sketch_jan12d.ino:45:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

     myOLED.print("LJV", LEFT, 40);           // Выводим надпись "Русский язык"

                                 ^

C:\Users\victo\AppData\Local\Temp\arduino_modified_sketch_364199\sketch_jan12d.ino: At global scope:

sketch_jan12d:51: error: expected declaration before '}' token

 }

 ^

Несколько библиотек найдено для "OLED_I2C.h"
 Используется: C:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C
Не используется: C:\Users\victo\Desktop\arduino-nightly\libraries\OLED_I2C
Используем библиотеку OneWire версии 2.3.2 из папки: C:\Users\victo\Desktop\arduino-nightly\libraries\OneWire 
Используем библиотеку OLED_I2C в папке: C:\Users\victo\OneDrive\Документы\Arduino\libraries\OLED_I2C (legacy)
exit status 1
'temperature' was not declared in this scope

 

bwn
Offline
Зарегистрирован: 25.08.2014

NVV пишет:

 myOLED.print(String(temperature()),RIGHT, 10); // Выводим текущее значение температуры датчика, округленное до десятых

 

У меня OLED не было, синтаксис не очень предствляю. В этих строках должен быть вывод temp1/16 и temp2/16.
И библиотека OLED зачем то два раза объявлена?

NVV
Offline
Зарегистрирован: 03.01.2017

Пробовал добавит скобку в сетапе она выделяет сериал 9600 в лопе убрал последнюю она на олед выделяет.

NVV
Offline
Зарегистрирован: 03.01.2017

Уже убрал

NVV
Offline
Зарегистрирован: 03.01.2017
#include <OneWire.h>
#include <OLED_I2C.h>
OLED  myOLED(A4, A5, A4);             // Определяем пины I2C интерфейса: UNO и NANO -- SDA - пин A4, SCL - пин A5; MEGA -- SDA - пин 20, SCL - пин 21
extern uint8_t RusFont[];                           // Подключаем русский шрифт
extern uint8_t SmallFont[];                         // Подключаем латинский шрифтом
extern uint8_t RusFont[];                           // Подключаем русский шрифт
extern uint8_t SmallFont[];                         // Подключаем латинский шрифтом  
#define ONE_WIRE_BUS 2                // Указываем пин подключения data-вывода датчика температуры
#define term_power 4                  // Указываем пин подключения питания датчика температуры

OneWire oneWire(ONE_WIRE_BUS);        // Сообщаем библиотеке об устройстве, работающем по протоколу
OneWire  ds(2);
byte addr1[8]={0x28,0x04,0x13,0x80,0x06,0x00,0x00,0xF8};
byte addr2[8]={0x28,0x47,0x1F,0x5C,0x06,0x00,0x00,0xE6};

volatile int temp1,temp2;
extern uint8_t BigNumbers[];          // Подключаем шрифт

void setup(void)
{
myOLED.begin();
pinMode(term_power, OUTPUT);
}    
Serial.begin(9600);
WDTCSR=(1<<WDCE)|(1<<WDE); //установить биты WDCE WDE (что б разрешить запись в другие биты
WDTCSR=(1<<WDIE)| (1<<WDP2)|(1<<WDP1); // разрешение прерывания + выдержка 1 секунда
// (55 страница <a href="<a href="<a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a>" rel="nofollow"><a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a></a>" rel="nofollow">даташита</a>)
// снять все ремарки если нужно поменять разрешение
//  ds.reset(); // сброс шины
//  ds.select(addr2); //выставить адрес
//  ds.write(0x4E); // разрешение записать конфиг
//  ds.write(0x7F); // Th контроль температуры макс 128грд
//  ds.write(0xFF); //Tl контроль температуры мин -128грд
//  ds.write(0x60); // 0x60 12-бит разрешение, 0x00 -9бит разрешение
}

void loop(void)
{
    myOLED.clrScr();                                // Стираем все с экрана
    myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    myOLED.print("NTVGTHFNEHF", CENTER, 0);           // Выводим надпись "Русский язык"
    myOLED.print("EKBWF", LEFT, 10);           // Выводим надпись "Русский язык"
    myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    myOLED.print(String(temp1/16()),RIGHT, 10); // Выводим текущее значение температуры датчика, округленное до десятых
    myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    myOLED.print("LJV", LEFT, 40);           // Выводим надпись "Русский язык"
    myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    myOLED.print(String(temp2/16()),RIGHT, 40); // Выводим текущее значение температуры датчика, округленное до десятых
    myOLED.update();                                // Обновляем информацию на дисплее
} 

}
 
ISR (WDT_vect){ //вектор прерывания WD
static boolean n=0; // флаг работы: запрос температуры или её чтение
n=!n;
if (n) {ds.reset();  // сброс шины
        ds.write(0xCC);//обращение ко всем датчикам
        ds.write(0x44);// начать преобразование (без паразитного питания)  
       }
else   {ds.reset();
        ds.select(addr1);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        temp1 =  ds.read() | (ds.read()<<8); //прочитаны 2 байта       
        // получение с 2-го датчика
        ds.reset();
        ds.select(addr2);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        temp2 =  ds.read() | (ds.read()<<8); //прочитаны 2 байта  
       }
}
 
 
  
 

 

bwn
Offline
Зарегистрирован: 25.08.2014

Скидывай полный скетч, попробую поправить.

NVV
Offline
Зарегистрирован: 03.01.2017

Сделал так теперь Serial.begin(9600);

выделяет

NVV
Offline
Зарегистрирован: 03.01.2017

Я тебе буду ну просто ооооочень благодарен.

NVV
Offline
Зарегистрирован: 03.01.2017

Может за одно подскажешь какие нибуть сайты по прагромированию хорошие.Хотя когда с человеком общаешься лицом к лицу больше понимаешь.

NVV
Offline
Зарегистрирован: 03.01.2017
#include <OneWire.h>
#include <OLED_I2C.h>
OLED  myOLED(A4, A5, A4);             // Определяем пины I2C интерфейса: UNO и NANO -- SDA - пин A4, SCL - пин A5; MEGA -- SDA - пин 20, SCL - пин 21
extern uint8_t RusFont[];                           // Подключаем русский шрифт
extern uint8_t SmallFont[];                         // Подключаем латинский шрифтом
extern uint8_t RusFont[];                           // Подключаем русский шрифт
extern uint8_t SmallFont[];                         // Подключаем латинский шрифтом  
#define ONE_WIRE_BUS 2                // Указываем пин подключения data-вывода датчика температуры
#define term_power 4                  // Указываем пин подключения питания датчика температуры

OneWire oneWire(ONE_WIRE_BUS);        // Сообщаем библиотеке об устройстве, работающем по протоколу
OneWire  ds(2);
byte addr1[8]={0x28,0x04,0x13,0x80,0x06,0x00,0x00,0xF8};
byte addr2[8]={0x28,0x47,0x1F,0x5C,0x06,0x00,0x00,0xE6};

volatile int temp1,temp2;
extern uint8_t BigNumbers[];          // Подключаем шрифт

void setup(void)
{
myOLED.begin();
pinMode(term_power, OUTPUT);
}    
Serial.begin(9600);
WDTCSR=(1<<WDCE)|(1<<WDE); //установить биты WDCE WDE (что б разрешить запись в другие биты
WDTCSR=(1<<WDIE)| (1<<WDP2)|(1<<WDP1); // разрешение прерывания + выдержка 1 секунда
// (55 страница <a href="<a href="<a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a>" rel="nofollow"><a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a></a>" rel="nofollow">даташита</a>)
// снять все ремарки если нужно поменять разрешение
//  ds.reset(); // сброс шины
//  ds.select(addr2); //выставить адрес
//  ds.write(0x4E); // разрешение записать конфиг
//  ds.write(0x7F); // Th контроль температуры макс 128грд
//  ds.write(0xFF); //Tl контроль температуры мин -128грд
//  ds.write(0x60); // 0x60 12-бит разрешение, 0x00 -9бит разрешение
}

void loop(void)
{
    myOLED.clrScr();                                // Стираем все с экрана
    myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    myOLED.print("NTVGTHFNEHF", CENTER, 0);           // Выводим надпись "Русский язык"
    myOLED.print("EKBWF", LEFT, 10);           // Выводим надпись "Русский язык"
    myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    myOLED.print(String(temp1/16()),RIGHT, 10); // Выводим текущее значение температуры датчика, округленное до десятых
    myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    myOLED.print("LJV", LEFT, 40);           // Выводим надпись "Русский язык"
    myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    myOLED.print(String(temp2/16()),RIGHT, 40); // Выводим текущее значение температуры датчика, округленное до десятых
    myOLED.update();                                // Обновляем информацию на дисплее
} 

}
 
ISR (WDT_vect){ //вектор прерывания WD
static boolean n=0; // флаг работы: запрос температуры или её чтение
n=!n;
if (n) {ds.reset();  // сброс шины
        ds.write(0xCC);//обращение ко всем датчикам
        ds.write(0x44);// начать преобразование (без паразитного питания)  
       }
else   {ds.reset();
        ds.select(addr1);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        temp1 =  ds.read() | (ds.read()<<8); //прочитаны 2 байта       
        // получение с 2-го датчика
        ds.reset();
        ds.select(addr2);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        temp2 =  ds.read() | (ds.read()<<8); //прочитаны 2 байта  
       }
}
 
 
  
 

 

bwn
Offline
Зарегистрирован: 25.08.2014

Тяк, загружаем, просветляемся.:
 

#include <OneWire.h>
//#include <OLED_I2C.h>
//OLED  myOLED(A4, A5, A4);             // Определяем пины I2C интерфейса: UNO и NANO -- SDA - пин A4, SCL - пин A5; MEGA -- SDA - пин 20, SCL - пин 21
//extern uint8_t RusFont[];                           // Подключаем русский шрифт
//extern uint8_t SmallFont[];                         // Подключаем латинский шрифтом
//extern uint8_t RusFont[];                           // Подключаем русский шрифт
//extern uint8_t SmallFont[];                         // Подключаем латинский шрифтом  


OneWire  ds(2);
byte addr1[8]={0x28,0x04,0x13,0x80,0x06,0x00,0x00,0xF8};
byte addr2[8]={0x28,0x47,0x1F,0x5C,0x06,0x00,0x00,0xE6};

volatile int temp1,temp2;
//extern uint8_t BigNumbers[];          // Подключаем шрифт

void setup(void)
{
//myOLED.begin(); 
Serial.begin(9600);
WDTCSR=(1<<WDCE)|(1<<WDE); //установить биты WDCE WDE (что б разрешить запись в другие биты
WDTCSR=(1<<WDIE)| (1<<WDP2)|(1<<WDP1); // разрешение прерывания + выдержка 1 секунда
// (55 страница <a href="<a href="<a href="<a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a>" rel="nofollow"><a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a></a>" rel="nofollow"><a href="<a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a>" rel="nofollow"><a href="http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf" rel="nofollow">http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf</a></a></a>" rel="nofollow">даташита</a>)
// снять все ремарки если нужно поменять разрешение
//  ds.reset(); // сброс шины
//  ds.select(addr2); //выставить адрес
//  ds.write(0x4E); // разрешение записать конфиг
//  ds.write(0x7F); // Th контроль температуры макс 128грд
//  ds.write(0xFF); //Tl контроль температуры мин -128грд
//  ds.write(0x60); // 0x60 12-бит разрешение, 0x00 -9бит разрешение
}

void loop(void)
{
    Serial.print(temp1/16.0);
    //myOLED.clrScr();                                // Стираем все с экрана
    //myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    //myOLED.print("NTVGTHFNEHF", CENTER, 0);           // Выводим надпись "Русский язык"
    //myOLED.print("EKBWF", LEFT, 10);           // Выводим надпись "Русский язык"
    //myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    //myOLED.print(String(temp1/16()),RIGHT, 10); // Выводим текущее значение температуры датчика, округленное до десятых
    Serial.print(temp2/16.0);
    //myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    //myOLED.print("LJV", LEFT, 40);           // Выводим надпись "Русский язык"
    //myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    //myOLED.print(String(temp2/16()),RIGHT, 40); // Выводим текущее значение температуры датчика, округленное до десятых
    //myOLED.update();                                // Обновляем информацию на дисплее
} 

 
ISR (WDT_vect){ //вектор прерывания WD
static boolean n=0; // флаг работы: запрос температуры или её чтение
n=!n;
if (n) {ds.reset();  // сброс шины
        ds.write(0xCC);//обращение ко всем датчикам
        ds.write(0x44);// начать преобразование (без паразитного питания)  
       }
else   {ds.reset();
        ds.select(addr1);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        temp1 =  ds.read() | (ds.read()<<8); //прочитаны 2 байта       
        // получение с 2-го датчика
        ds.reset();
        ds.select(addr2);    
        ds.write(0xBE); // Read Scratchpad (чтение регистров)  
        temp2 =  ds.read() | (ds.read()<<8); //прочитаны 2 байта  
       }
}
 

Сейчас, если адреса правильные, должен погнать температуру на компьютер. Паразитное питание все убрал, хочешь использовать, сам потом долбайся.
Если в сериал идет нормально, снимай комментарии со своего OLED и пробуй с ним. У меня этой библы нет, не проверить. Сперва раскомментируй в области инициализации, проверь, нет ошибок, снимай комментарии в loop.
Да, на OLED не поправил, должно быть - /16.0, как у меня в сериале.

NVV
Offline
Зарегистрирован: 03.01.2017

Попробую

NVV
Offline
Зарегистрирован: 03.01.2017

залил но ком порт ни че не кажет

bwn
Offline
Зарегистрирован: 25.08.2014

Кнопочку "Монитор порта" нажимали?

NVV
Offline
Зарегистрирован: 03.01.2017

а где тут у тебя указаны пины подключения датчиков?

NVV
Offline
Зарегистрирован: 03.01.2017

монитор порта нажимаю а там пусто и так почему то было всегда

NVV
Offline
Зарегистрирован: 03.01.2017

во показывает но какой бод выставить там какие то цифры и все куча

NVV
Offline
Зарегистрирован: 03.01.2017

чисто 0000000000000000000000.000000000

bwn
Offline
Зарегистрирован: 25.08.2014

NVV пишет:

а где тут у тебя указаны пины подключения датчиков?

10-я строка, 2-й цифровой.

А как без сериала отлаживать я смутно представляю, скорость  проверь, должно быть 9600.

NVV
Offline
Зарегистрирован: 03.01.2017

выставил идут 000.000.000. и так всегда

NVV
Offline
Зарегистрирован: 03.01.2017

температуру не показывает вообще ком порт

bwn
Offline
Зарегистрирован: 25.08.2014

Карашо, перед 35 и 42 строками поставь:  Serial.println("PISHEM");
И мои с цифрами исправь на Serial.println
Давно не выводил, забыл.

NVV
Offline
Зарегистрирован: 03.01.2017
 Serial.println("PISHEM");
    Serial.print(temp1/16.0);
    //myOLED.clrScr();                                // Стираем все с экрана
    //myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    //myOLED.print("NTVGTHFNEHF", CENTER, 0);           // Выводим надпись "Русский язык"
    //myOLED.print("EKBWF", LEFT, 10);           // Выводим надпись "Русский язык"
    //myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    //myOLED.print(String(temp1/16()),RIGHT, 10); // Выводим текущее значение температуры датчика, округленное до десятых
    Serial.println("PISHEM");
    Serial.print(temp2/16.0);
    //myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    //myOLED.print("LJV", LEFT, 40);           // Выводим надпись "Русский язык"
    //myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    //myOLED.print(String(temp2/16()),RIGHT, 40); // Выводим текущее значение температуры датчика, округленное до десятых
    //myOLED.update();                                // Обновляем информацию на дисплее

 

NVV
Offline
Зарегистрирован: 03.01.2017

Так?

NVV
Offline
Зарегистрирован: 03.01.2017

Исправил как ты сказал бегут PISHEM

0.00

PISHEM

-0.06

bwn
Offline
Зарегистрирован: 25.08.2014

В 02 и 10 строках тоже на println исправь и запускай. print гонит в одну строку, println каждый раз переводит.

NVV
Offline
Зарегистрирован: 03.01.2017

исправил и вот выше написал что показывает в столбик

bwn
Offline
Зарегистрирован: 25.08.2014

Славненько, переходим к радикальным процедурам. Открываем "Файл"-"Примеры"-"OneWire"-"DS18x20 Temperature"
Либо переключаем DATA на 10 пин (у меня так в примере) или правим эту строчку на 2 пин. Запускаем, отписываемся, что видим.

NVV
Offline
Зарегистрирован: 03.01.2017

вооооооооооо теперь работает два датчика оба разная температура.что дальше

bwn
Offline
Зарегистрирован: 25.08.2014

А дальше скопипасть, что этот пример пишет в ROM

NVV
Offline
Зарегистрирован: 03.01.2017

там два значения 

один датчик и второй оба разные

NVV
Offline
Зарегистрирован: 03.01.2017

?

bwn
Offline
Зарегистрирован: 25.08.2014

Оба и пиши

NVV
Offline
Зарегистрирован: 03.01.2017

Куда?

bwn
Offline
Зарегистрирован: 25.08.2014

Сюда, скопируй с экрана.

NVV
Offline
Зарегистрирован: 03.01.2017

Не копирует с порта

NVV
Offline
Зарегистрирован: 03.01.2017
ROM = 28 FF 5C B6 84 16 4 BF
  Chip = DS18B20
  Data = 1 8C 1 4B 46 7F FF C 10 58  CRC=58
  Temperature = 24.75 Celsius, 76.55 Fahrenheit
ROM = 28 FF 15 32 44 16 3 A2
  Chip = DS18B20
  Data = 1 38 0 1F 1B 1F FF 1F 10 BC  CRC=BC
  Temperature = 3.50 Celsius, 38.30 Fahrenheit
No more addresses.
 
NVV
Offline
Зарегистрирован: 03.01.2017

Во

bwn
Offline
Зарегистрирован: 25.08.2014

Тогда останови и руками перепиши. Хосподи.

NVV
Offline
Зарегистрирован: 03.01.2017

что дальше?

bwn
Offline
Зарегистрирован: 25.08.2014

NVV пишет:

что дальше?

А дальше, вот почто ты мне старому человеку  мозг третий час выносишь? Я три раза сказал, прописать в адреса коды СВОИХ ДАТЧИКОВ, а у тебя там погода в провинции выньхер. Меняй на эти цифры в addr1 и addr2, в формате как там 0х28 0х... Однозначные числа пишем как 0х03.

NVV
Offline
Зарегистрирован: 03.01.2017

Вот щас по вашему скетчу показывает температуру в ком порте спс.Теперь осталось вывести на дисплей

bwn
Offline
Зарегистрирован: 25.08.2014

Вот и ладненько, на сегодня я спать, сам мучай. Может все сразу заведется.

NVV
Offline
Зарегистрирован: 03.01.2017

Хорошо спс большое буду пробовать вы уж извените.Я же пока учусь может потом проще будет.Когда вот так объясняют нормально

NVV
Offline
Зарегистрирован: 03.01.2017
 Serial.println(temp1/16.0);
    myOLED.clrScr();                                // Стираем все с экрана
    myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    myOLED.print("NTVGTHFNEHF", CENTER, 0);           // Выводим надпись "Русский язык"
    myOLED.print("EKBWF", LEFT, 10);           // Выводим надпись "Русский язык"
    myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    //myOLED.print(String(temp1/16()),RIGHT, 10); // Выводим текущее значение температуры датчика, округленное до десятых
    Serial.println(temp2/16.0);
    myOLED.setFont(RusFont);                            // Инициализируем русский шрифт
    myOLED.print("LJV", LEFT, 40);           // Выводим надпись "Русский язык"
    myOLED.setFont(BigNumbers);                     // Инициализируем шрифт
    //myOLED.print(String(temp2/16()),RIGHT, 40); // Выводим текущее значение температуры датчика, округленное до десятых
    myOLED.update();                                // Обновляем информацию на дисплее

 

NVV
Offline
Зарегистрирован: 03.01.2017

если я убираю // вот это то у меня текст выводит мой но температуру нет.А если я в этих сроках убиру 07 и 12 // то выдает ошибку