датчик температуры ds18b20
- Войдите на сайт для отправки комментариев
Ср, 08/02/2012 - 21:21
Получил несколько датчиков температуры .Хотел их проверить но скетч который нашел для проверки содержит ошибки ,я их найти и понять не смог .помогите их устранить .
#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 = 0, tmp = 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 (address, 7)! = 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:) }
http://robocraft.ru/blog/arduino/136.html
LEVV2006, по ссылке ошибка 404
и мне не ссылки надо , а понять где в скетче ошибка
Гы… у меня всё открывается. Я кинул тебе пример где всё детально рассказано как работать с датчиком.
LEVV2006, спасибо .
со второй попытки ссылка открылась . тот скетч заработал .
только вот данные получаются несколько странные
R=28 DA 31 3B 3 0 0 64 P=1 32 1 4B 46 7F FF E 10 1E CRC=1E
LB= 32 HB= 1 T = 153
если я правильно понял то T=153 это температура , только на комнатную она не сильно похожа .подскажите куда смотреть , и что поправить ?
Вот кусочек кода, который отвечает за пересчет у меня. Проверил несколькими значениями из даташита по датчику все сходится.
Нужно только обявить переменные:
Сам долго не понимал почему выдаются неправильные значения а вникать в формулу было влом. Этот кусок взял из какого то примера на основном сайте ардуины.
На выходе получаем три переменные целое, десятичное и знак (whole, fract и SignBit)
посоветовали другую библиотеку и все встало на место
_http://www.milesburton.com/?title=Dallas_Temperature_Control_Library
А у меня ни в какую компилироваться не хочет. Ни с той либой, ни с другой. Помогите, пожалуйста.
http://arduino.ru/forum/programmirovanie/1-wire-i-arduino-oshibka-kompilyatsii