Страница 1 из 1

attiny85 и приемник 433 МГц

Добавлено: Ср окт 31, 2018 22:03:05
forfrends
Всем привет! Не получается объединить attiny85 и приемник на 433 МГц. Передатчиком выступает Ардуино UNO + передатчик. Приемником должна быть Attiny85. Суть простая: в зависимости от передаваемой команды генерировать ШИМ на двух контактах. Но ничего не работает. Точнее Attiny85 не принимает сигнал.

Вот тестовый код приемника:
Спойлер

Код: Выделить всё

#include <Manchester.h>
#define port1 1 //Left motor pin
#define RX_PIN 4 //= pin 6

void setup()
{
    man.setupReceive(RX_PIN, MAN_1200);
    man.beginReceive();
    pinMode(port1, OUTPUT);
    digitalWrite(port1, LOW);
}

void loop()
{
    if (man.receiveComplete()) {
        uint16_t m = man.getMessage();
        digitalWrite(port1, HIGH);
        man.beginReceive(); //start listening for next message right
                            //after you retrieve the message
    }
}
как только приходит какой-то сигнал, то сразу же зажигается светодиод. На Ардуино Мега2560 этот код работает, а на attiny85 не хочет.

код передатчика (UNO):
Спойлер

Код: Выделить всё

#include <Manchester.h>

const char *mx = "1"; //Max speed forward
const char *md = "2"; //Middle speed forward
const char *mn = "3"; //Minimum speed (off)

const char *lmd = "4"; //Left at middle speed
const char *rmd = "5"; //Right at middle speed

const char *lmx = "6"; //Left at max speed
const char *rmx = "7"; //Right at max speed

char *controller;

int v;
int s;
int x = 0;
int y = 1;

uint16_t transmit_data;

#define TX_PIN  8  //pin where your transmitter is connected

void setup() 
{
    Serial.begin(9600);
  //man.workAround1MhzTinyCore(); //add this in order for transmitter to work with 1Mhz Attiny85/84
  man.setupTransmit(TX_PIN, MAN_1200);
}

void loop()
{
    v = analogRead(x); //Read x axis of joystick (throttle) (I held my joystick the opposite way so axes are inverted)
    s = analogRead(y); //Read y axis of joystick (turn)
    if(v >= 800) //If read max
    {
        Serial.println(((uint8_t *)mx, strlen(mx)));
        if (s >= 500 && s <= 600) //if read middle at max
        {
            transmit_data=1;
            Send();
        }
        if(s < 500)  //if read left at max
        {
            transmit_data=6;
            Send();
        }
        else //of not either of above, it must be right at max
        {
            transmit_data= 7;
            Send();
        }
    }
    else if (v <= 50) //if minimum throttle
    {
        transmit_data=3;
        Send();
    }
    else //if not minimum throttle or max throttle, it must be middle
    {
        if (s >= 30 && s <= 1000) //middle at middle speed
        {
            transmit_data=2 ;
            Send();
        }
        else if (s < 30) //left at middle speed
        {
            transmit_data=4 ;
            Send();  
        }
        else //if not left or middle, it must be right at middle speed
        {
            transmit_data=5 ;
            Send();
        }
    }
}

void Send(){
    man.transmit(transmit_data);
    delay(100); 
}
Уже несколько часов бьюсь с этой attiny85! Не принимает сигнал и все! Может и принимает, но искаженный, проверить это никак. К тому же непонятно какие настройки выбирать в IDE для attiny85... (прошиваю через ArduinoAsISP)
Может у вас есть какие-то идеи? Очень нужна ваша помощь

Re: attiny85 и приемник 433 МГц

Добавлено: Чт ноя 01, 2018 15:05:59
ks0
А просто светодиодом на ней помограть можно?

Re: attiny85 и приемник 433 МГц

Добавлено: Чт ноя 01, 2018 15:57:03
forfrends
На тиньку зашивал пробные скетчи, моргал разными пинами, ШИМ, - все работает. Проблема именно в соединении attiny85 и приемника на 433 МГц.

Re: attiny85 и приемник 433 МГц

Добавлено: Чт ноя 01, 2018 17:16:53
roman.com
forfrends писал(а):Уже несколько часов бьюсь с этой attiny85! Не принимает сигнал и все! Может и принимает, но искаженный, проверить это никак.
что за приёмник?

Re: attiny85 и приемник 433 МГц

Добавлено: Пт ноя 02, 2018 12:59:40
forfrends
Самые простые приемник и передатчик на 433mhz он же: fs1000a https://micro-pi.ru/xd-rf-5v-fs1000a-xd-fst-rc/

Re: attiny85 и приемник 433 МГц

Добавлено: Сб ноя 03, 2018 12:40:09
roman.com
Да, помню делали на них радиоуправление... передавали "манчестер" )) Все возможные проблмы с этими модулями мы подробно разобрали viewtopic.php?f=28&t=108688&start=740

А нормальных модулей нет ?

Re: attiny85 и приемник 433 МГц

Добавлено: Вс ноя 04, 2018 00:37:01
forfrends
Все дело в размере и весе. Делаем микро р/у самолет. (цель сделать на базе Ардуино, или на чем-то подобном, и использовать только подручные материалы)
Есть в наличии nRF24L01, но посчитали что attiny85 + приемник на 433 МГц будет легче чем ProMini+nRF24L01.
Есть еще Блютуз НС-06, но он совсем тяжелый.
На крайний случай придется делать на ИК-управлении, но этого совсем не хочется...
За ссылку спасибо, буду изучать

Re: attiny85 и приемник 433 МГц

Добавлено: Вс ноя 04, 2018 09:42:51
roman.com
forfrends писал(а):Делаем микро р/у самолет.
Мы делали р/у кораблики... машики... на разных модулях (для сравнения) - viewtopic.php?f=28&t=148087
forfrends писал(а): attiny85 + приемник на 433 МГц будет легче чем ProMini+nRF24L01.
Я бы не стал делать р/у самолет на приемнике fs1000a (433 МГц)... он боится помех. Особенно в городе, где много сигнализаций (433 МГц).

Лучше тогда attiny85 + nRF24L01.

да, и nRF24L01 по массе меньше чем fs1000a.
fs1000a.jpg
(60.77 КБ) 538 скачиваний
nRF24L01+.jpg
(49.27 КБ) 241 скачивание
есть ещё меньше...
nRF24L01+.jpg
(39.93 КБ) 553 скачивания
и т.д.

Re: attiny85 и приемник 433 МГц

Добавлено: Вс ноя 04, 2018 14:50:24
forfrends
Я думал о том чтобы использовать attiny85 + nRF24L01, но понятия не имею как это сделать. attiny85 управляет двумя моторами (ШИМ). Для этого нужно два пина. ШИМ есть на: PB0, PB1 и PB4
nRF24L01 использует SPI интерфейс, который занимает пины PB0 и PB1. Пробовать что ли SoftWare SPI...

Re: attiny85 и приемник 433 МГц

Добавлено: Вс ноя 04, 2018 15:45:21
roman.com
Мы так и сделали. У нас в пульте аппаратный SPI, а в кораблике программный SPI.
А выводы PB0, PB1 и PB2 использовали для ШИМ (серво и мотор).
Всё работает. Только программный SPI работает медленней в 10 раз, но для кораблика это не важно.
forfrends писал(а):использовать attiny85 + nRF24L01, но понятия не имею как это сделать.
Как сделать на любой attiny - я знаю (у нас всё на атмеги8, но для attiny код будет тот же).

Как сделать на ардуине - я не знаю. Я не люблю ардуино.))

Чтоб не создавать много отдельных тем, можете продолжить форум по моделям.
viewtopic.php?f=28&t=148087&p=3472540#p3472540

А ещё есть отдельный форум по радиоуправляемым моделям.
viewtopic.php?f=28&t=5884&p=3437482#p3437482