Показано с 1 по 9 из 9
  1. #1
    Пользователь
    Регистрация
    08.01.2012
    Сообщений
    71
    Вес репутации
    165

    По умолчанию датчик температуры ds18b20

    Получил несколько датчиков температуры .Хотел их проверить но скетч который нашел для проверки содержит ошибки ,я их найти и понять не смог .помогите их устранить .

    PHP код:
    #include <OneWire.h>

    //init the one wire interface on pin 12
    OneWire ow (12);

    void setup (void) {
     
    Serial.begin (9600);
     
    lookUpSensors ();
    }

    void lookUpSensors (){
     
    byte address[8];
     
    int i=0;
     
    byte ok 0tmp 0;
     
    //start the search
     
    Serial.println ("Search started");
     while (
    ow.search (address)){
     
    tmp 0;
     
    //0x10 = DS18S20
     
    if (address[0] == 0x10){
     
    Serial.print ( "Device is a DS18S20:");
     
    tmp 1;
     } else {
     
    //0x28 = DS18B20
     
    if (address[0] == 0x28){
     
    Serial.print (" Device is a DS18B20:");
     
    tmp 1;
     }
     }
     
    //display the address, if tmp is ok
     
    if (tmp == 1){
     if (
    OneWire::crc8 (address7)! = address[7]){
     
    Serial.println (" but it doesn't have a valid CRC!");
     } else {
     
    //all is ok, display it
     
    for (i=0;i<8;i++){
     if (
    address[i] < 9){
     
    Serial.print ( "0");
     }
     
    Serial.print (address[i],HEX);
     if (
    i<7){
     
    Serial.print ("-");
     }
     }
     
    Serial.println ("");
     
    ok 1;
     }
     }
    //end if tmp
     
    }//end while
     
    if (ok == 0){
     
    Serial.println "No devices were found");
     }
     
    Serial.println ("--Search ended-");
    }

    void loop (void) {
     
    //do nothing:) 


  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: датчик температуры ds18b20

    А какие ошибки?

  3. #3
    Пользователь
    Регистрация
    08.01.2012
    Сообщений
    71
    Вес репутации
    165

    По умолчанию Re: датчик температуры ds18b20

    sketch_feb08a.cpp: In function 'void lookUpSensors()':
    sketch_feb08a:31: error: expected `)' before '!' token

    и подсвечена вот эта строка
    if (OneWire::crc8 (address, 7)! = address[7]){

  4. #4
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: датчик температуры ds18b20

    А если вот так попробовать
    PHP код:
    #include <OneWire.h> 

    //init the one wire interface on pin 12 
    OneWire ow (12); 

    void setup (void) { 
     
    Serial.begin (9600); 
     
    lookUpSensors (); 


    void lookUpSensors (){ 
     
    byte address[8]; 
     
    int i=0
     
    byte ok 0tmp 0
     
    //start the search 
     
    Serial.println ("Search started"); 
     while (
    ow.search (address)){ 
     
    tmp 0
     
    //0x10 = DS18S20 
     
    if (address[0] == 0x10){ 
     
    Serial.print ( "Device is a DS18S20:"); 
     
    tmp 1
     } else { 
     
    //0x28 = DS18B20 
     
    if (address[0] == 0x28){ 
     
    Serial.print (" Device is a DS18B20:"); 
     
    tmp 1
     } 
     } 
     
    //display the address, if tmp is ok 
     
    if (tmp == 1){ 
     if (
    OneWire::crc8 (address7)!= address[7]){ 
     
    Serial.println (" but it doesn't have a valid CRC!"); 
     } else { 
     
    //all is ok, display it 
     
    for (i=0;i<8;i++){ 
     if (
    address[i] < 9){ 
     
    Serial.print ( "0"); 
     } 
     
    Serial.print (address[i],HEX); 
     if (
    i<7){ 
     
    Serial.print ("-"); 
     } 
     } 
     
    Serial.println (""); 
     
    ok 1
     } 
     }
    //end if tmp 
     
    }//end while 
     
    if (ok == 0){ 
     
    Serial.println "No devices were found"); 
     } 
     
    Serial.println ("--Search ended-"); 


    void loop (void) { 
     
    //do nothing:)  


  5. #5
    Пользователь
    Регистрация
    08.01.2012
    Сообщений
    71
    Вес репутации
    165

    По умолчанию Re: датчик температуры ds18b20

    Спасибо !
    с таким кодом компиляция прошла успешно , но только в ide 0.23 в 1.0 выдает ошибки

  6. #6
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: датчик температуры ds18b20

    Я 1.0 пока не использую

  7. #7
    Пользователь
    Регистрация
    11.01.2008
    Сообщений
    21
    Вес репутации
    204

    По умолчанию Re: датчик температуры ds18b20

    А чем не устраивает Dallas Temperature Control Library? Использую ее для трех датчиков, отлично работает все...

  8. #8
    Пользователь
    Регистрация
    08.01.2012
    Сообщений
    71
    Вес репутации
    165

    По умолчанию Re: датчик температуры ds18b20

    DNZ, спасибо ща библиотеку .
    При ее использовании показания стали похожи на правду.
    Правда несколько датчиков в одинаковых условия выдают разную температуру , может быть есть калибровка или еще что то ?
    Последний раз редактировалось Mitos; 09.02.2012 в 16:54.

  9. #9
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: датчик температуры ds18b20

    Калибровки нет , для стабилизации температуры датчику нужно как минимум 15мин.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •