Получатель не получает информацию - PullRequest
0 голосов
/ 14 октября 2018

У меня проблема в моем проекте.Я использовал два Arduino один в качестве передатчика и один в качестве приемника.Передатчик подключен к 6 ИК-датчикам (TCRT5000) и NRF24L01, которые используются для беспроводной связи.Приемник подключен к 2 ИК-датчикам, которые размещаются у ворот.это также связано с серводвигателем, I2C LCD и NRF24L01.если есть свободная парковка, сервопривод повернется на 90 градусов.код передатчика:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "01001";
int ir1=A0;
int ir2=A1;
int ir3=A2;
int ir4=A3;
int ir5=A4;
int ir6=A5;
int x=500;
void setup() {
Serial.begin(9600);
pinMode(ir1, INPUT);
pinMode(ir2, INPUT);
pinMode(ir3, INPUT);
pinMode(ir4, INPUT);
pinMode(ir5, INPUT);
pinMode(ir6, INPUT);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
char parks[11];
void loop() {
if(analogRead(ir1)<x){parks[0]='1';
Serial.println("1");}
else{parks[0]='0';}
if(analogRead(ir2)<x){parks[2]='2';
Serial.println("2");}
else{parks[2]='0';}
if(analogRead(ir3)<x){parks[4]='3';
Serial.println("3");}
else{parks[4]='0';}
if(analogRead(ir4)<x){parks[6]='4';
Serial.println("4");}
else{parks[6]='0';}
if(analogRead(ir5)<x){parks[8]='5';
Serial.println("5");}
else{parks[8]='0';}
if(analogRead(ir6)<x){parks[10]='6';
Serial.println("6");}
else{parks[10]='0';}
parks[1]=' ';
parks[3]=' ';
parks[5]=' ';
parks[7]=' ';
parks[9]=' ';
String AvailbleParks(parks);
Serial.println(AvailbleParks);
radio.write(&AvailbleParks, sizeof(AvailbleParks));
delay(10000);}

код приемника:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
Servo myservo;
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3,POSITIVE);
RF24 radio(7, 8);
const byte address[6] = "01001";
String AvailbleParks = " ";
char AvailbleParksArrey[11];
long delay1;
int CarIn=A0;
int CarOut=A1;
int aPark=0;
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
lcd.backlight();
pinMode(A1,INPUT);
pinMode(A0,INPUT);
myservo.attach(9);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();}
void loop() {
if (radio.available()) {
radio.read(&AvailbleParks, sizeof(AvailbleParks));
Serial.println(AvailbleParks); }
Serial.println(AvailbleParks);
AvailbleParks.toCharArray(AvailbleParksArrey, 11) ;
lcd.setCursor(0, 0);
lcd.print(AvailbleParks);
for(int i=0;i<11;i++){
if (AvailbleParksArrey[i]!='0' && AvailbleParksArrey[i]!=' ')
{aPark=1;
}else {aPark=0;}}
if(analogRead(A0)<500 && aPark==1){
myservo.write(90);
delay1=millis()+5000;
}
 if(analogRead(A1)<500 && aPark==1){
myservo.write(90);
delay1=millis()+5000;
}
if(delay1<millis()){myservo.write(0); }}

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

...