Модуль nRF24L01
- Войдите на сайт для отправки комментариев
Сб, 23/03/2019 - 23:41
Добрый день. Подскажите пожалуйста, в чем может быть проблема?
Суть такая: подключил модуль nRF24L01 к Ардуино про мини по схеме, как указано на картинке, соединения все припаял. Прошиваю через Ардуино уно. Заливаю скетч, мониторинга каналом. И вот в мониторе порта, вижу что мол все канала заняты… такого быть не может. Подскажите в чем дело?
[code]
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(9,10); // инициализировать модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53);// Для Меги
const uint8_t num_channels = 128;
uint8_t values[num_channels];
void setup(void)
{
Serial.begin(9600);
printf_begin();
radio.begin();
radio.setAutoAck(false);
radio.startListening();
radio.printDetails(); // Вот эта строка напечатает нам что-то, если все правильно соединили.
delay(5000); // И посмотрим на это пять секунд.
radio.stopListening();
int i = 0; // А это напечатает нам заголовки всех 127 каналов
while ( i < num_channels ) {
printf("%x",i>>4);
++i;
}
printf("\n\r");
i = 0;
while ( i < num_channels ) {
printf("%x",i&0xf);
++i;
}
printf("\n\r");
}
const int num_reps = 100;
void loop(void)
{
memset(values,0,sizeof(values));
int rep_counter = num_reps;
while (rep_counter--) {
int i = num_channels;
while (i--) {
radio.setChannel(i);
radio.startListening();
delayMicroseconds(128);
radio.stopListening();
if ( radio.testCarrier() )
++values[i];
}
}
int i = 0;
while ( i < num_channels ) {
printf("%x",min(0xf,values[i]&0xf));
++i;
}
printf("\n\r");
}
int serial_putc( char c, FILE * ) {
Serial.write( c );
return c;
}
void printf_begin(void) {
fdevopen( &serial_putc, 0 );
}
[/code]

