Ваш браузер устарел. Рекомендуем обновить его до последней версии.

EEVblog

Видеоблог об  электронике


 SDRRobots

Робототехника


 Roobots in USSR

Роботы в СССР

Прием команд RC5

Опубликовано 12.10.2015

В этой статье я расскажу, как принимать команды с пульта (ПДУ) с кодировкой RC5. Подробное описание протокола не имеет смысла так как этого в интернете предостаточно.

Микроконтроллер Atmega8 (тактирование 1 МГц от внутреннего генератора), ИК-приемник TSOP1736 подключен к входу захвата ICP, на порту D висят светодиоды.

Итак, сейчас мы сделаем чтобы при нажатии на цифровую кнопку на ПДУ зажигался соответствующий светодиод (от 0 до 7). Код, ну очень простой:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "rc5.h"
#include "main.h"
 
int main (void)
{
	PORTB = 0b00000000; DDRB = 0b00000000;
	PORTC = 0b00000000; DDRC = 0b00000000;
	PORTD = 0b00000000; DDRD = 0b11111111;	// тут светодиоды
 
	Rc5_SetRx();	// инициализируем таймер 1
 
	sei();	// глобально разрешаем прерывания
 
	while(1)
	{
		if (rc5.dataOK) {	// если получены данные с ПДУ
			PORTD = 0;	// тушим все светодиоды
			sbi(PORTD, rc5.command);// зажигаем светодиод, соответствующий комманде с ПДУ
 
			rc5.dataOK = 0;	// сбрасываем флаг
		}
	}
 
}

После инициализации таймера и разрешения прерываний включается захват, и микроконтроллер начинает обрабатывать данные, принятые с пульта. Если получен пакет данных, то активируется флаг rc5.dataOK, а принятая команда записывается с переменную структуры rc5.command.
Стоит иметь ввиду, что пульт отправляет не только команду, а и номер системы, если 0, то это команда для телевизора.
rc5.h содержит функции, для работы с RC5 и структуру rc5:

1
2
3
4
5
6
7
8
struct {
	unsigned char	control_bit;
	unsigned char	system;
	unsigned char	command;
	unsigned char	flag;
	unsigned char	dataOK;
	unsigned char	error;
	}	rc5;

После приема пакета с пульта поднимается флаг dataOK, в system записывается номер системы, в command — номер команды, если в пакете была ошибка, то поднимается  флаг error.

Видео работы устройства: http://youtu.be/Dqghjc3oivY

Скачать:  проект AVRST6 

Скачать: Комментарии много полезного

Автор: kibermaster.net