Доброго времени суток, уважаемые!
У меня имеется 2 устройства - ds18b20 и relay module. Соответственно скетч я доработал под оба устройства.
Но не понимаю каким образом определять, подключено ли какой либо из устройств к ардуино вообще??
Я понимаю что надо разбить на функции и вызывать соответствующую функцию в цикле, но для начала как проверить подключен ли физически датчик температуры или реле???
Вот скетч
Раздел: Arduino и Raspberry Pi
У меня имеется 2 устройства - ds18b20 и relay module. Соответственно скетч я доработал под оба устройства.
Но не понимаю каким образом определять, подключено ли какой либо из устройств к ардуино вообще??
Я понимаю что надо разбить на функции и вызывать соответствующую функцию в цикле, но для начала как проверить подключен ли физически датчик температуры или реле???
Вот скетч
#include <OneWire.h>
#define ON 0
#define OFF 1
byte data[12];
byte addr[8];
float celsius;
int relPinOne = 30;
int relPinTwo = 31;
OneWire ds(A5); // on pin A5
void setup(void) {
Serial.begin(9600);
pinMode(relPinOne, OUTPUT);
pinMode(relPinTwo, OUTPUT);
digitalWrite(relPinOne, OFF);
digitalWrite(relPinTwo, OFF);
}
void loop(void) {
//ТУТ НАДО КАК ТО ВЫНЕСТИ В ФУНКЦИЮ ТЕМПЕРАТУРУ
byte i;
ds.search(addr);
ds.reset();
ds.select(addr);
ds.write(0x44,1);
delay(1000);
ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for ( i = 0; i < 9; i++) data[i] = ds.read(); // we need 9 bytes
unsigned int raw = (data[1] << 8) | data[0];
byte cfg = (data[4] & 0x60);
if (cfg == 0x00) raw = raw << 3; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms
celsius = (float)raw / 16.0;
Serial.println(celsius);
//ЗДЕСЬ РАБОТА С РЕЛЕ - У МЕНЯ ПРИХОДИТ КОМАНДА НА ВКЛ И ВЫКЛ С ПРИЛОЖЕНИЯ КОТОРОЕ Я НАПИСАЛ НА ШАРПАХ
if (Serial.available() > 0) {
char inputVal = Serial.read();
Serial.println(inputVal);
if (inputVal == '1')
{
digitalWrite(relPinOne , 0);
digitalWrite(relPinTwo , 0);
Serial.println("ON");
}
else
{
digitalWrite(relPinOne , 1);
digitalWrite(relPinTwo , 1);
Serial.println("OFF");
}}
}
Раздел: Arduino и Raspberry Pi