Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Железо для умного дома
  • Страница:
  • 1
  • 2
  • 3

ТЕМА: LE1+L01+AVR(CVAVR)

LE1+L01+AVR(CVAVR) 01 Апр 2015 15:05 #2985

  • stanik
  • stanik аватар
  • Не в сети
  • Новый участник
  • Сообщений: 12
  • Репутация: 0
Получил модули LE1, спаял для них программатор USBasp

Программатор работает, шьет LE1 без проблем.
Пользовался конструктором на сайте.

И вот решил заняться сервером. Я так понял что сервер можно спилить из L01 и Atmega и статьи "Клиент на базе nRF24L01", но так как для AVR я пишу программы на CVAVR, то возникли проблемы...
Может у кого нибудь есть адаптированная библиотека под CVAVR?
И вопрос по железу, как подключить L01 к Atmega. По SPI все понятно mosi-mosi, miso-miso, sck-sck, csn-reset. Но на L01 есть еще пины CE и IRQ.
Сильно не судите в программировании я новичок.
Администратор запретил публиковать записи гостям.

LE1+L01+AVR(CVAVR) 01 Апр 2015 15:17 #2987

  • stanik
  • stanik аватар
  • Не в сети
  • Новый участник
  • Сообщений: 12
  • Репутация: 0
Распиновку нашел. Сразу что-то проглядел.
SCK (Serial ClocK) — тактирование (синхронизация).
MOSI / MI (Master Out Slave In) — вход данных.
MISO / MO (Master In Slave Out) — выход данных.
CE/SS - Выбор ведомого на шине SPI из нескольких устройств.
SCN - выбор режима приема/передача , фактически тот же CE.
IRQ - выход прерывания,чаще всего не используется. Необходим для немедленной реакции микроконтроллера при приеме нового пакета данных.
GND - земля,масса,минусовая шина.
Vcc -питание модуля 3.3в.

Но все равно я не понял надо ли подключать IRQ.
СЕ я понял что не надо подключать т.к. подключается только одно устройство.
Администратор запретил публиковать записи гостям.

LE1+L01+AVR(CVAVR) 01 Апр 2015 16:58 #2995

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7195
  • Спасибо получено: 1114
  • Репутация: 194
IRQ не нужен.
СЕ нужен обязательно..

Посмотрите пример как это на ардуино реализовано тут на сайте. Тут есть пример для сервера.

Код для АВР тут так же имеется, но для клиента, по аналогии все переделывается легко под сервер, если посмотреть пример ардуино..

Если есть подходящая ардуина или м/к не ниже атмеги168 ,то рекомендую запустить пример для начала ардруиновский.
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.

LE1+L01+AVR(CVAVR) 01 Апр 2015 17:04 #2996

  • stanik
  • stanik аватар
  • Не в сети
  • Новый участник
  • Сообщений: 12
  • Репутация: 0
Сейчас как раз пытаюсь сначала с Ардуиной подружить. Но пример сервера для Ардуино есть только с использованием Ethernet модуля. Вы можете выложить пример без использования Ethernet. Мне нужно только дергать пины на LE1.
Администратор запретил публиковать записи гостям.

LE1+L01+AVR(CVAVR) 02 Апр 2015 08:21 #3013

  • stanik
  • stanik аватар
  • Не в сети
  • Новый участник
  • Сообщений: 12
  • Репутация: 0
Выкинул из примера на сайте все что касается Ethernet. Помогите, пожалуйста, как теперь написать команду установить 1 на на клиенте 1, на ноге 5 GPIO. То что написал не работает на практике. Может я что то пропустил?
Еще вопросик 5 GPIO это какой вывод на LE1?


#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"


RF24 radio(9,10);

/* Загрузка массива для отправки */
void sendcmd (byte ch,byte data1,byte data2,byte data3,byte data4){
/* порядок команд: номер канала,дата1(10 - управление выходами),дата2 (номер выхода) ,дата3 (состояние 1 или 0) */

nfserver[0]=ch;
nfserver[1]=data1;
nfserver[2]=data2;
nfserver[3]=data3;
nfserver[4]=data4;
}

void setup() {
// put your setup code here, to run once:
radio.begin();
// выбор скорости
// radio.setDataRate(RF24_250KBPS);
radio.setDataRate(RF24_1MBPS);
// radio.setDataRate(RF24_2MBPS);

radio.setPALevel(RF24_PA_MAX);
radio.setChannel(100); //тут установка канала
radio.setCRCLength(RF24_CRC_16);

// radio.setAutoAck(false); // выключить аппаратное потверждение
// radio.enableDynamicPayloads(); // разрешить Dynamic Payloads
// radio.enableAckPayload(); // разрешить AckPayload

radio.setRetries(15,15);

radio.openWritingPipe(0xF0F0F0F0E1LL);
radio.openReadingPipe(1,0xF0F0F0F0D2LL);
radio.startListening();

}


void loop() {
// put your main code here, to run repeatedly:
sendcmd (1,10,5,1,0)
delay(1000);
sendcmd (1,10,5,0,0)
delay(1000);
}
Последнее редактирование: 02 Апр 2015 16:33 от stanik.
Администратор запретил публиковать записи гостям.

LE1+L01+AVR(CVAVR) 06 Апр 2015 09:55 #3127

  • stanik
  • stanik аватар
  • Не в сети
  • Новый участник
  • Сообщений: 12
  • Репутация: 0
Помогите, пожалуйста, с отправкой данных.
на сервере пишу:

delay (2000);
radio.stopListening();
sendcmd(1,10,1,0,0);
radio.write( &nfserver, sizeof(nfserver) );
radio.startListening();

delay (2000);
radio.stopListening();
sendcmd(1,10,1,1,0);
radio.write( &nfserver, sizeof(nfserver) );
radio.startListening();

Но все равно LE1 не реагирует
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
  • 3
Модераторы: FlyRouter
Время создания страницы: 0.139 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.