arduino i2c + sht15
- Войдите на сайт для отправки комментариев
Ср, 12/12/2012 - 15:47
дообрый день, дорогие форумчане! вопрос таков:
есть датчик влажности и температуры sht 15 (даташит), ии arduino uno. нужно считать с датчика показатели и вывести их на ком-порт.
после прочтения и разборки непосредственно i2c принцип понятен, но при написании программы непонятно ничерта =D вот "программа". логика: отправляю на устройство команду, говорящую о том, что я хочу считать температуру.
вопрос: как считать эту температуру в переменную для последующей корректировки. полныый ноль в этом вопросе... в интернете толком ничего не нашел, кроме как описание библиотеки wire и i2c-интерфейса.
#include <Wire.h> byte val = 0; byte codetemp = 00000011; byte codehum = 00000101; int temp = 0; int hum = 0; float Tres = 0; float RHres = 0; float RHl = 0; void setup() { Wire.begin(); //connect 2 iic Serial.println('датчик температуры и влажности sht15'); } void loop() { Wire.beginTransmission(000); //передача для устройства Wire.write(codetemp); //код для считывания температуры Wire.endTransmission(); //сюда не обращайте внимания Tres = temp*0.01 -3.97; RHl = -2.0468 + (0.0367*hum) + (hum*hum*(-1.5955)*0.000001); RHres = (Tres - 25)*(0.01+0.00008*hum) + RHl; Serial.println('температура воздуха=', Tres); Serial.println('влажность воздуха=', RHres); }
Плохо ищите. Готовая либа с програмный I2C
codetemp & codehum явно бинарные константы, тогда надо их описывать как
const byte codetemp = b00000011;
Суть даже не в этом, чтения из датчика в коде выше не происходит.
Суть даже не в этом, чтения из датчика в коде выше не происходит.
присходит запись на слэйв тогоо что я хочу считать(ведь это так?) а как считать?
Плохо ищите. Готовая либа с програмный I2C
нужна библиотека wire =\ а это несколько нето. вопрос в том как послать и считать данные со слэйва. если не труднно объясни. желательно на пальцах. как будто пытаешься объяснить что-либо первокласснику) пожалуйста-пожалуйста
о спасибо. тоже важно. буду знать.
Плохо ищите. Готовая либа с програмный I2C
нужна библиотека wire =\ а это несколько нето. вопрос в том как послать и считать данные со слэйва. если не труднно объясни. желательно на пальцах. как будто пытаешься объяснить что-либо первокласснику) пожалуйста-пожалуйста
Вам нужно именно на аппаратном I2C - с использованием Wire.h ? Я вас правильно понял?
Плохо ищите. Готовая либа с програмный I2C
нужна библиотека wire =\ а это несколько нето. вопрос в том как послать и считать данные со слэйва. если не труднно объясни. желательно на пальцах. как будто пытаешься объяснить что-либо первокласснику) пожалуйста-пожалуйста
Вам нужно именно на аппаратном I2C - с использованием Wire.h ? Я вас правильно понял?
да.да.да...
К сожалению это скорее всего невозможно, так как датчик использует свой 2-wire итерфейс, он очень похож на I2C, но есть свои особенности.
К сожалению это скорее всего невозможно, так как датчик использует свой 2-wire итерфейс, он очень похож на I2C, но есть свои особенности.
т.е. скорее всего с помощью wire.h не получится запрограммировать датчик?
99.999% что нет, сильно не вникал чем конкретно отличаются... в общем отличия есть и сэмитировать аппаратным I2C эти особенности не выйдет.
99.999% что нет, сильно не вникал чем конкретно отличаются... в общем отличия есть и сэмитировать аппаратным I2C эти особенности не выйдет.
гениально! большое спасибо.