Интерфейс DS18B20 через адрес - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть адрес одного проводного устройства DS18b20, я хочу связать его, объявив его адрес в массиве, и я хочу вызвать инициализатор массива адресов onewire.select (array-Initializer), а затем я хочу вычислитьтемпература, но я получаю данные = 0 0 0 0

#include <OneWire.h>
OneWire ds(10);
//byte address[8];
byte data[12];
//int a;
byte i;
byte address[]={0x28,0xFF,0x6C,0xEA,0x62,0x16,0x4,0xE7};  

void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
}

void loop() {
    // put your main code here, to run repeatedly:
    ds.reset();
    ds.select(&address);
    ds.write(0x44);

    ds.reset();
    ds.select(address);
    ds.write(0xBE);

    Serial.print("DATA=");
    for (i=0;i<9;i++){
        Serial.print(" ");
        data[i]= ds.read();
        Serial.print(data[i],DEC);
        Serial.print(" ");
    }
    Serial.println();
    delay(1000);
} 

Я также получаю эту ошибку:

no matching function for call to 'OneWire::select(byte (*)[8])

1 Ответ

0 голосов
/ 29 ноября 2018

Из источников :

void OneWire::select( uint8_t rom[8])

try:

uint8_t address[]={0x28,0xFF,0x6C,0xEA,0x62,0x16,0x4,0xE7};  
ds.select(address);

C ++ знает типы переменных.

...