Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
424 Часть ///. Практическое программирование микроконтроллеров АVR приемника показано на рис . 1 6 . 1 2, и там же дана разводка его выводов (учтите, что у приемников других типов разводка может отличаться). Кроме кнопки, к контрол леру подключены два светодиода: Led 1 и Led2, имитирующие исполнительные механизмы. I c 1 R 1 5,1 к 0, 1 +5 8 кRX адаптера UART для теста SOP1738 +5 8 1 Reset Vcc 20 2 RXD (PDO) SCK 1 9 3 TXD (PD1 ) MISO 1 8 4 XTAL2 (РА1 ) MOSI 1 7 5 XTAL1 (РАО) (ОС1 8) РВ4 1 6 6 INTO (PD2) (ОС1А) Р83 1 5 7 INT1 (РDЗ) Р82 1 4 8 PD4 (TO) Р81 1 3 9 PD5 (Т1 ) Р80 1 2 1 0 GND PD6 11 AТtiny231 3 ---� + 5 8 С2 т 1 .о Рис. 1 6. 1 2. Подключение ИК-приемника TSOP1 738 к ATtiny231 3 Сначала нам потребуется определение кодов выбранных кнопок. На каждое нажа тие любой пульт выдает последовательность байтов, которая длится до нескольких десятков миллисекунд. Отдельную программу для определения кодов вы найдете в архиве по адресу, указанному во введении (файл I R_code.asm). Она предельно про ста и состоит из бесконечного цикла приема и передачи по UART, настроенного на скорость 2400 бит/с . Контроллер подключается через UАRТ-адаптер к упомянутой в предыдущей главе коммуникационной программе СОМ2000 (не забудьте настро ить ее на нужную скорость приема). Направив пульт в сторону приемника, вы на жимаете на выбранную кнопку, и полученная пачка кодов немедленно появляется в коммуникационной программе. Для надежности нажатие каждой кнопки повто ряем несколько раз с паузой не менее секунды, чтобы разделить группы байтов друг от друга. Последовательности, полученные для двух кнопок пульта массажера, у меня выглядели следующим образом: "Timer" 00 48 78 78 CF 4F 4F 78 48 78 CF CF FF 00 FF 00 48 78 78 CF 4 F 4F 78 48 78 CF CF FF 0 0 FF 00 48 78 78 CF 4F 4F 78 4 8 7 8 CF CF FF 0 0 FF 00 48 78 78 CF 4F 4F 78 4 8 78 CF CF FF 0 0 48 78 78 СЕ 4 F 4 F 78 48 78 CF CF FF 00 48 78 78 CF 4F 4F 78 4 8 78 CF СЕ FF 00 FF
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==