Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
ИК-приемник на Ардуино способен принимать и обрабатывать инфракрасный сигнал, в виде импульсов заданной длительности и частоты. ИК-датчик воспринимает инфракрасный сигнал только на частоте 38 кГц (иногда 40кГц). Именно такое свойство позволяет датчику игнорировать много посторонних световых шумов от ламп освещения и солнца. Сигналы датчик принимает от пульта с ИК излучателем. Приемники инфракрасного излучения получили сегодня широкое применение в бытовой технике, благодаря доступной цене, простоте и удобству в использовании. Эти устройства позволяют управлять приборами с помощью пульта дистанционного управления и их можно встретить практически в любом виде техники.
Корпуса инфракрасных приемников содержат оптический фильтр для защиты прибора от внешних электромагнитных полей, изготавливаются они специальной формы для фокусировки принимаемого излучения на фотодиоде. Датчик имеет три вывода. Если посмотреть на датчик со стороны приёмника ИК сигнала, то:
#include "IRremote.h" //подключаем библиотеку IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; //создаем переменную, хранящую результат void setup() { Serial.begin(9600); //настраиваем работу с монитором порта irrecv.enableIRIn(); //запускаем прием ИК сигнала } void loop() { if ( irrecv.decode( &results )) { //если данные пришли Serial.println( results.value, HEX ); //выводим их в монитор порта irrecv.resume(); //принимаем следующую команду } }
#include "IRremote.h" //подключаем библиотеку IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; //создаем переменную, хранящую результат int led = 6; //объявляем светодиод void setup() { pinMode(led, OUTPUT); //настраиваем пин светодиода как выход Serial.begin(9600); //настраиваем работу с монитором порта irrecv.enableIRIn(); //запускаем прием ИК сигнала } void loop() { if ( irrecv.decode( &results )) { //если данные пришли Serial.println( results.value, HEX ); //выводим их в монитор порта switch ( results.value ) { case 0xFF30CF: //если нажимаем клавишу "1", то светодиод включается digitalWrite(led, HIGH); break; case 0xFF6897: //если нажимаем клавишу "0", то светодиод выключается digitalWrite(led, LOW); break; } irrecv.resume(); //принимаем следующую команду } }
#include "IRremote.h" //подключаем библиотеку IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; //создаем переменную, хранящую результат int led = 6; //объявляем светодиод int brightness; //создаем переменную, задающую яркость свечения светодиода void setup() { pinMode(led, OUTPUT); //настраиваем пин светодиода как выход Serial.begin(9600); //настраиваем работу с монитором порта irrecv.enableIRIn(); //запускаем прием ИК сигнала } void loop() { if ( irrecv.decode( &results )) { //если данные пришли Serial.println( results.value, HEX ); //выводим их в монитор порта analogWrite(led, brightness); switch ( results.value ) { case 0xFFA857: //если нажимаем клавишу "+", то яркость увеличивается на 10 brightness = brightness + 10; break; case 0xFFE01F: //если нажимаем клавишу "-", то яркость уменьшается на 10 brightness = brightness - 10; break; } irrecv.resume(); //принимаем следующую команду } }
void setup() { pinMode(4, OUTPUT); } void loop() { digitalWrite(4, HIGH); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(4, LOW); delay(1000); // Wait for 1000 millisecond(s) }
#include "IRremote.h" //подключаем библиотеку IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; //создаем переменную, хранящую результат int led = 6; //объявляем светодиод void setup() { pinMode(led, OUTPUT); //настраиваем пин светодиода как выход Serial.begin(9600); //настраиваем работу с монитором порта irrecv.enableIRIn(); //запускаем прием ИК сигнала } void loop() { if ( irrecv.decode( &results )) { //если данные пришли digitalWrite(led, HIGH); else { digitalWrite(led, LOW); } irrecv.resume(); //принимаем следующую команду }
Подробнее о switch…case можно прочитать здесь http://arduino.ru/Reference/SwitchCase
1. Подключите сервомотор к Arduino и запрограммируйте управление поворотом сервомотора с ПДУ.