Перейти к содержанию
    

Передача информации устройству

Здравствуйте!

Есть 8 различных цифровых датчиков(температура,давление и т.д.) например DHT11,подскажите пожалуйста,как организовать передачу одного бита информации с каждого датчика на мое устройство?

интерфейсс USB или RS-485

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

Изменено пользователем Kostia

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

подсоединить датчики к контроллеру. считать данные с них. послать данные туда куда надо. непосредственно с DHT11 я когда то работал, делал автоматическую аранжерею для выращивания канабиса. вернусь домой поищу код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

,,, делал автоматическую аранжерею для выращивания канабиса. вернусь домой поищу код.
И долго Вам еще сидеть? :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

подсоединить датчики к контроллеру. считать данные с них. послать данные туда куда надо. непосредственно с DHT11 я когда то работал, делал автоматическую аранжерею для выращивания канабиса. вернусь домой поищу код.

был бы весьма благодарен,жду :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть 8 различных цифровых датчиков(температура,давление и т.д.) например DHT11,подскажите пожалуйста,как организовать передачу одного бита информации с каждого датчика на мое устройство?

Один бит лучше всего пересылать непосредственно через один разряд порта ввода-вывода. 8 датчиков = 8 бит = один порт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

uint16_t read_cycle(uint16_t cur_tics, uint8_t neg_tic)
{
 uint16_t cnt_tics;

 if (cur_tics < MAX_TICS) cnt_tics = 0;
 if (neg_tic) 
 {
while (!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)&&(cnt_tics<MAX_TICS))
{
	cnt_tics++;
 }
 }
else 
{
while (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)&&(cnt_tics<MAX_TICS))
{
	cnt_tics++;
}
 }
 return cnt_tics;
}

uint8_t read_DHT11(uint8_t *buf)
{
 uint16_t dt[42];
 uint16_t cnt;
 uint8_t i, check_sum;

 //reset DHT11
 Delay(500);
 GPIO_LOW(GPIOA,GPIO_Pin_2);
 Delay(20);
 GPIO_HIGH(GPIOA,GPIO_Pin_2);

 //start reading
 cnt = 0;
 for(i=0;i<83 && cnt<MAX_TICS;i++)
 {
  if (i & 1)
{
	cnt = read_cycle(cnt, 1);
 }
 else
 {
	  cnt = read_cycle(cnt, 0);
	  dt[i/2]= cnt;
 }
 }

 //release line
 GPIO_HIGH(GPIOA,GPIO_Pin_2);

 if (cnt>=MAX_TICS) return DHT11_NO_CONN;

 //convert data
 for(i=2;i<42;i++)
 {
(*buf) <<= 1;
 if (dt[i]>20) (*buf)++;
 if (!((i-1)%8) && (i>2)) buf++; 
 }

 //calculate checksum
 buf -= 5;
 check_sum = 0;
 for(i=0;i<4;i++)
 {
check_sum += *buf;
buf++;
 }

 if (*buf != check_sum) return DHT11_CS_ERROR;

 return DHT11_OK;	
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте!

Есть 8 различных цифровых датчиков(температура,давление и т.д.) например DHT11,подскажите пожалуйста,как организовать передачу одного бита информации с каждого датчика на мое устройство?

интерфейсс USB или RS-485

 

FT2232 и никаких микроконтроллеров и программирования. Прицепите 8 битов и через USB куда нужно подадите...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть у меня подозрение, что ТС употребил слово "бит" потому, что не знает, что это слово означает. Наверное, очередной стюдень-прогульщик озадачился курсовым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

всем спасибо) а прогуливал я только электротехнику,а не программирование :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...