Помогите подружить atTiny85 и xy-mk-5v (приемник FS1000a)!!!

ximik_se
Offline
Зарегистрирован: 17.10.2016

Всем привет.

Появилась у меня задача собрать приемник на atTiny85 используя радиомодуль xy-mk-5v.

Изначально это работало на Ардуино Нано и все было прекрасно, только появились условия, из-за которых приемник пришлось отделить от Ардуины.

У меня уже сделан передатчик на atTiny85 + FS1000A. 

Я использую библиотеку VirtualWire. Для меня она значительно проще, чем Манчестерская.

Так вот передатчик оказалось сделать на много проще, хотя и с ним я в свое время бился не мало времени, но все же одержал победу! И теперьпередатчик работает как часы CASIO.

А вот с приемником как-то не ладится.

Подключать дата кабель от приемника пытаося и к 0му и к 1му и ко 2му пинам - тишина в зале...

Вот вариант с подключением его на 2й пин. Не могу никак понять, как же в бубен ударить, чтобы заработало.

Помогите люди добрые, кто чем может!

Схема подключения (я на светодиод не стал пока вешать резистор, его функия просто моргнуть при включении и при получении сигнала).

А вот собственно и сам код (переработанный пример ресивера от самой библиотеки):

#include <VirtualWire.h>
 
const int led_pin = 4;
const int receive_pin = 2;
 
void setup()
{
    delay(1000);
    vw_set_rx_pin(receive_pin);
    vw_set_ptt_pin(transmit_en_pin);
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000); // Bits per sec
    vw_rx_start();       // Start the receiver PLL running
    pinMode(led_pin, OUTPUT);
    digitalWrite(led_pin, HIGH);
    delay (200);
}
 
void loop()
{
  digitalWrite(led_pin, LOW);
  
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
 
    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
int i;
 
        digitalWrite(led_pin, HIGH); // Flash a light to show received good message
for (i = 0; i < buflen; i++)
{
    digitalWrite(led_pin, HIGH);
}
        digitalWrite(led_pin, LOW);
    }
}
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А что здесь делает transmit_en_pin? Чего Вы там трансмитить собрались? Впрочем, на скорость, конечно, не влияет, но какой-то пин загаживает.

А так, какая частота у Вас на Tiny? Правильно ли установлена константа F_CPU. Для библиотеки VirtualWire это важно. Убедитесь, что здесь нет граблей.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ximik_se, либа использует таймер0 в своих целях. Вызыванием функции delay() вы сбиваете настройку таймера.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, сам по себе delay ничего сбить не может. Другое дело, будет ли он правильно работать, если библиотека свой делитель частоты ставит - это вопрос.