Помогите с кодом для arduino и nrf24l01
- Войдите на сайт для отправки комментариев
Пнд, 13/04/2015 - 12:00
вот код,суть такова,скетч принимает цифру из serial от 0 до 9 (не бейте,в коде много мусора,я его с какого-то исходника взял).И передает на приемник,а приемник выводит на lcd.Так вот мне нужно чтоб эти цифры не из serial брались,а скажем чтоб при подаче high на пин 12 передавалось 1 и т.д.Пробывал передавать переменную,на дисплей просто иероглиф выводит.
#include <SPI.h>
#include "RF24.h"
RF24 radio(9, 10);
const uint64_t pipes[2] = {
0xF0F0F0F000LL, 0xF0F0F0F0FFLL};// адреса каналов приема и передачи
byte _buff[6];
int po=1;
int rd=0;
void setup(){
Serial.begin(9600);
radio.begin();
radio.setDataRate(RF24_250KBPS); // Скорость передачи
radio.setChannel(100); // Номер канала от 0 до 127
radio.setRetries(15,15); // Кол-во попыток и время между попытками
radio.openWritingPipe(pipes[1]); // Открываем канал передачи
radio.openReadingPipe(1, pipes[0]); // Открываем один из 6-ти каналов приема
radio.startListening(); // Начинаем слушать эфир
pinMode(8, INPUT);
}
void loop()
{
readAccel();
//delay(5); // only read every 0,5 seconds
}
void readAccel() {
uint8_t howManyBytesToRead = 6;
// each axis reading comes in 10 bit resolution, ie 2 bytes. Least Significat Byte first!!
//if(digitalRead(8) == HIGH){ delay(2000); rd=1; }
if (Serial.available() > 0) {
po = Serial.read();
char data[32] = "";
byte i = 0;
data[i] = po; //получаем данные из сериал.
i++;
delay(2);
data[i] = 0;
radio.stopListening();
radio.write(&data, 32);
//и отправляем их в Arduino №2
radio.startListening();
}
}
не очень понял , вам надо передать в эвир двоичную комбинацию с цифровых входов
или передавать не связаную с пинами ифу при подаче на цифровой вход лог1
при подаче сигнала передавать инфу не связанную с самим сигналом.