ATTINY85 HC-05 BLUETOOTH SOFTWARESERIAL DEVICE
На модуле hc-05 все ноги подписаны, подключение для нашего примера очень просто. Земля к земле, питание к питанию, RX к TX и TX к RX. Диод подключается одной ногой резистра 220 ОМ к пину МК, а другой к катоду самого диода, в то время как анод, соответственно, идет на землю. Как заливать скетчи в МК, читайте здесь.

#define F_CPU 1200000UL // Указываем тактовую частоту МК
//Программа загружается в МК при internal clock 1 Mhz из ядра от ATtiny microcontrollers.
//Если при загрузке скетча проиходит сбой, следует тыкнуть кнопку ресет на ардуинке.
//Кондер на 10 мФ должен быть подключен.
#include //Подключаем библиотеку серийного порта
SoftwareSerial mySerial(1, 0); //rx, tx
char data = 0; // Переменная для хранения принятых данных
const int rx = PB1; //Объявляем ноги приема-передачи серийного порта
const int tx = PB0;
int led = PB2; //Объявляем пин диода
void setup()
{
pinMode(led, OUTPUT);
mySerial.begin(9600); //стартуем серийный порт
mySerial.println("Program started..."); //Пишем в порт, что программа запустилась.
DDRB |= (1 << led); // конфигурируем пин диода как выход
PORTB &= ~(1 << led); // по умолчанию светодиод выключен
}
void loop()
{
if (mySerial.available() > 0) // Если есть принятые данные
{
data = mySerial.read(); // Принимаем эти данные и сохраняем в переменной data
mySerial.print(data); // Выводим данные из data в монитор серийного порта
mySerial.print("\n");
if (data == '1') // Если data равна 1
PORTB ^= (1 << led) & mySerial.println("Light ON!"); // Включаем светодиод, инвертируя состояние пина
else if (data == '0') // Если data равна 0
PORTB &= ~(1 << led) & mySerial.println("Light Off!"); // Выключаем светодиод, инвертируя состояние пина
}
} 