Скетч. Эксперимент № 14. ИК пульт дистанционного управления

/**
 * (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 секунды
}