Je mi jedno, zda přenesu digity nebo celé číslo, pokud by to bylo jednodušší, tak to ráda zkusím.
Kód: Vybrat vše
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7,8);
const byte addresses[][6] = {"00001", "00002"};
typedef struct {
byte num1;
byte num2;
byte num3;
byte num4;
}
dataPacket;
int latchPin = 9; //pin 12 on the 595
int dataPin = 6; //pin 14 on the 595
int clockPin = 10; //pin 11 on the 595
void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(addresses[1]);
radio.openReadingPipe(1, addresses[0]);
radio.setPALevel(RF24_PA_LOW);
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop () {
delay(5);
dataPacket packet;
radio.startListening();
if (radio.available()){
radio.read(&packet, sizeof(dataPacket));
delay(100*sizeof(dataPacket));
Serial.println (packet.num1);
Serial.println (packet.num2);
Serial.println (packet.num3);
Serial.println (packet.num4);
if (packet.num1 == 0) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b11000000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 1) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b11111001);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 2) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10100100);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 3) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10110000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 4) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10011011);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 5) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10010010);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 6) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10000010);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 7) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b11111000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 8) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10000000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num1 == 9) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000001);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10010000);
digitalWrite(latchPin, HIGH);
delay(1);
}
if (packet.num2 == 0) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b01000000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 1) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b01111001);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 2) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00100100);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 3) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00110000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 4) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00011011);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 5) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00010010);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 6) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 7) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b01111000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 8) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num2 == 9) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000010);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00010000);
digitalWrite(latchPin, HIGH);
delay(1);
}
if (packet.num3 == 0) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b11000000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 1) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b01111001);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 2) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10100100);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 3) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10110000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 4) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10011011);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 5) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10010010);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 6) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10000010);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 7) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b11111000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 8) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10000000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num3 == 9) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00000100);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10010000);
digitalWrite(latchPin, HIGH);
delay(1);
}
if (packet.num4 == 0) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b11000000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 1) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b01111001);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 2) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10100100);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 3) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10110000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 4) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10011011);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 5) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10010010);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 6) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10000010);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 7) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b11111000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 8) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10000000);
digitalWrite(latchPin, HIGH);
delay(1);
}
else if (packet.num4 == 9) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0b00001000);
shiftOut(dataPin, clockPin, MSBFIRST, 0b10010000);
digitalWrite(latchPin, HIGH);
delay(1);
}
}
}