/**
* (C) jarduino.ru
*
* Эксперимент № 14. ИК пульт дистанционного управления
*
* Эксперименты с ардуино.
* Управление arduino с помощью ИК пульта ДУ
*/
#include <IRremote.h> // подключаем библиотеку для ИК приемника
// Константы программы
const int irPin = A0; // аналоговый порт для ИК приемника
const int ledPin = 13; // порт для светодиода
// Глобальные переменные
bool ledState = false;
IRrecv irRec(irPin); // Инициализируем объект ИК приемника
decode_results irData; // переменная для получения данных от ИК приемника
void setup()
{
Serial.begin(9600); // Иницилизация последовательного порта, для вывода отладочной информации
irRec.enableIRIn(); // запускаем прием инфракрасного сигнала
pinMode(ledPin, OUTPUT);
}
void loop()
{
if (irRec.decode(&irData)) // Получение данных с ИК приемник
{
// Данные пришли - анализируем, выполняем команды с пульта:
Serial.println(irData.value); // выводим полученные данные на порт
if (irData.value == 16738455) // соответветствует цифре 1 на пульте
{
ledState = !ledState; // переключить состояние светодиода
digitalWrite(ledPin, ledState); // обновить состояние светодиода
}
irRec.resume(); // принимаем следующий сигнал на ИК приемнике
}
delay(100); // небольшая пауза, 0,1 сек.
}
Рубрика: Скетчи Ардуино
Готовые скетчи ардуино помогут вам быстро собрать собственный проект. Даже если они вам не подойдут как есть, они послужат хорошим примером и началом для вашего изделия.
Скетч. Эксперимент №13. Сенсор вибраций
/**
* (C) jarduino.ru
* Эксперимент № 13. Сенсор вибраций. Title switch sensor.
*
* Эксперименты с ардуино.
*/
const int tiltPin = 5;
const int ledPin = 8;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
if (analogRead(tiltPin) > 512) // Если напряжение на пине сенсора больше чем 512 единиц(т.е. 2,5V) ...
{
digitalWrite(ledPin, LOW); // включить светодиод
}
else // Иначе ...
{
digitalWrite(ledPin, HIGH); // вылючить светодиод
}
}
Скетч. Эксперимент №12. Датчик температуры LM35
/**
* Эксперимент № 12. Датчик температуры LM35
* Простейший цифровой термометр.
* Изучение ардуино через опыты.
*/
void setup()
{
Serial.begin(9600); // Инициализация последовательно порта
}
void loop()
{
const int val = analogRead(0); // Прочесть текущее значение температуры
const int dat = (125 * val) >> 8; // Перевести полученное значение в градусы
// Вывести температуру в последовательный порт:
Serial.print("Tep:");
Serial.print(dat);
Serial.println("C");
delay(500); // Задержка в 0,5 секунды
}