#1 2021-06-04 10:44:47

Alonewooolf
Учасник
Зареєстрований: 2020-05-23
Повідомлень: 11

Помогите в освоении функции

#include <OneWire.h>
/*
* Описание взаимодействия с цифровым датчиком ds18b20 
* Подключение ds18b20 к ардуино через пин 8  
*/
OneWire ds(5); // Создаем объект OneWire для шины 1-Wire, с помощью которого будет осуществляться работа с датчиком

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

void loop(){
  // Определяем температуру от датчика DS18b20
  byte data[2]; // Место для значения температуры
  
  ds.reset(); // Начинаем взаимодействие со сброса всех предыдущих команд и параметров
  ds.write(0xCC); // Даем датчику DS18b20 команду пропустить поиск по адресу. В нашем случае только одно устрйоство 
  ds.write(0x44); // Даем датчику DS18b20 команду измерить температуру. Само значение температуры мы еще не получаем - датчик его положит во внутреннюю память
  
  delay(1000); // Микросхема измеряет температуру, а мы ждем.  
  
  ds.reset(); // Теперь готовимся получить значение измеренной температуры
  ds.write(0xCC); 
  ds.write(0xBE); // Просим передать нам значение регистров со значением температуры

  // Получаем и считываем ответ
  data[0] = ds.read(); // Читаем младший байт значения температуры
  data[1] = ds.read(); // А теперь старший

  // Формируем итоговое значение: 
  //    - сперва "склеиваем" значение, 
  //    - затем умножаем его на коэффициент, соответсвующий разрешающей способности (для 12 бит по умолчанию - это 0,0625)
  float temperature =  ((data[1] << 8) | data[0]) * 0.0625;
  
  // Выводим полученное значение температуры в монитор порта
  Serial.println(temperature);
   
}




хочется мне что бы этот код был как функция , чтобы переменную температура вызывать с любой точки кода,



#include <OneWire.h>
OneWire ds(5); // Создаем объект OneWire для шины 1-Wire, с помощью которого будет осуществляться работа с датчиком

float temperature;


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

void temp(){
  // Определяем температуру от датчика DS18b20
  byte data[2]; // Место для значения температуры
  
  ds.reset(); // Начинаем взаимодействие со сброса всех предыдущих команд и параметров
  ds.write(0xCC); // Даем датчику DS18b20 команду пропустить поиск по адресу. В нашем случае только одно устрйоство 
  ds.write(0x44); // Даем датчику DS18b20 команду измерить температуру. Само значение температуры мы еще не получаем - датчик его положит во внутреннюю память
  
  delay(1000); // Микросхема измеряет температуру, а мы ждем.  
  
  ds.reset(); // Теперь готовимся получить значение измеренной температуры
  ds.write(0xCC); 
  ds.write(0xBE); // Просим передать нам значение регистров со значением температуры

  // Получаем и считываем ответ
  data[0] = ds.read(); // Читаем младший байт значения температуры
  data[1] = ds.read(); // А теперь старший

  // Формируем итоговое значение: 
  //    - сперва "склеиваем" значение, 
  //    - затем умножаем его на коэффициент, соответсвующий разрешающей способности (для 12 бит по умолчанию - это 0,0625)
  float temperature =  ((data[1] << 8) | data[0]) * 0.0625;
  
  // Выводим полученное значение температуры в монитор порта
  
   
}


void loop()
{
  Serial.println(temperature);
}




я знаю что оно так не работает ткните носом что бы решить эту проблему, я не прошу писать мне код, я прошу натолкнуть на мысль

Неактивний

#2 2021-06-04 10:49:42

г0сть
Гість

Re: Помогите в освоении функции

Что мешает в loop вставить temp(); ?

#3 2021-06-04 19:12:01

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите в освоении функции

г0сть пише:

Что мешает в loop вставить temp(); ?

Ничего не мешает. Только какой смысл ?

Неактивний

#4 2021-06-04 19:33:41

г0сть
Гість

Re: Помогите в освоении функции

renoshnik пише:

[Только какой смысл ?

Ну хоть в лупе будет крутиться. А так не пришей кобыле хвост. Про temperature можете не писать, ТС-у это похоже уже не интересно

#5 2021-06-05 08:55:43

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите в освоении функции

г0сть пише:
renoshnik пише:

[Только какой смысл ?

Ну хоть в лупе будет крутиться. А так не пришей кобыле хвост. Про temperature можете не писать, ТС-у это похоже уже не интересно

Та да...  будет бессмысленно крутиться в "лупе" ....

Неактивний

#6 2021-06-05 09:56:52

г0сть
Гість

Re: Помогите в освоении функции

Почему бессмысленно? Бедному Serial.print одному в лупе не так скучно будет ...

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму