Paul, Apologies for my mistakes, I am quite new to this. I do understand the need for 2 Arduinos and 2 NRF Modules.
Sorry I wasn't clear in my explanation.
This is the basic code for reading my button presses and generating the information. This has been tested to the serial monitor and works OK.
/*
8 Buttons, Low to Switch.
*/
// this constant won't change:
const int runsbuttonPin = 2;
const int oversbuttonPin = 3;
const int wktsbuttonPin = 4;
const int minusrunsbuttonPin = 5;
const int minusoversbuttonPin = 6;
const int minuswktsbuttonPin = 14;
const int inningsbuttonPin = 15;
const int resetbuttonPin = 16;
// Variables will change:
int runs = 0;
int runsbuttonState = 1;
int runslastButtonState = 1;
int overs = 0;
int oversbuttonState = 1;
int overslastButtonState = 1;
int wkts = 0;
int wktsbuttonState = 1;
int wktslastButtonState = 1;
int firstinnings = 0;
int minusrunsbuttonState = 1;
int minusrunslastButtonState = 1;
int minusoversbuttonState = 1;
int minusoverslastButtonState = 1;
int minuswktsbuttonState = 1;
int minuswktslastButtonState = 1;
int inningslastButtonState = 1;
int inningsbuttonState = 1;
int resetbuttonState = 1;
int resetlastButtonState = 1;
void setup() {
// initialize the button pin as an input:
pinMode(runsbuttonPin, INPUT);
pinMode(oversbuttonPin, INPUT);
pinMode(wktsbuttonPin, INPUT);
pinMode(minusrunsbuttonPin, INPUT);
pinMode(minusoversbuttonPin, INPUT);
pinMode(minuswktsbuttonPin, INPUT);
pinMode(inningsbuttonPin, INPUT);
pinMode(resetbuttonPin, INPUT);
Serial.begin(9600);
}
void loop() {
// read the pushbutton input pin:
runsbuttonState = digitalRead(runsbuttonPin);
// compare the buttonState to its previous state
if (runsbuttonState != runslastButtonState) {
// if the state has changed, increment the counter
if (runsbuttonState == LOW) {
// if the current state is LOW then the button
// wend from on to off:
runs++;
Serial.println("on");
Serial.print("runs: ");
Serial.println(runs);
} else {
// if the current state is HiGH then the button
// wend from off to on:
Serial.println("off");
}
// Delay a little bit to avoid bouncing
delay(75);
}
// save the current state as the last state,
//for next time through the loop
runslastButtonState = runsbuttonState;
// read the pushbutton input pin:
minusrunsbuttonState = digitalRead(minusrunsbuttonPin);
if (minusrunsbuttonState != minusrunslastButtonState) {
if (minusrunsbuttonState == LOW) {
runs--;
Serial.println("on");
Serial.print("runs: ");
Serial.println(runs);
} else {
Serial.println("off");
}
delay(75);
}
minusrunslastButtonState = minusrunsbuttonState;
oversbuttonState = digitalRead(oversbuttonPin);
if (oversbuttonState != overslastButtonState) {
if (oversbuttonState == LOW) {
overs++;
Serial.println("on");
Serial.print("overs: ");
Serial.println(overs);
} else {
Serial.println("off");
}
delay(75);
}
overslastButtonState = oversbuttonState; {
minusoversbuttonState = digitalRead(minusoversbuttonPin);
if (minusoversbuttonState != minusoverslastButtonState) {
if (minusoversbuttonState == LOW) {
overs--;
Serial.println("on");
Serial.print("overs: ");
Serial.println(overs);
} else {
Serial.println("off");
}
delay(75);
}
minusoverslastButtonState = minusoversbuttonState;
wktsbuttonState = digitalRead(wktsbuttonPin);
if (wktsbuttonState != wktslastButtonState) {
if (wktsbuttonState == LOW) {
wkts++;
Serial.println("on");
Serial.print("wkts: ");
Serial.println(wkts);
} else {
Serial.println("off");
}
delay(75);
}
wktslastButtonState = wktsbuttonState;
minuswktsbuttonState = digitalRead(minuswktsbuttonPin);
if (minuswktsbuttonState != minuswktslastButtonState) {
if (minuswktsbuttonState == LOW) {
wkts--;
Serial.println("on");
Serial.print("wkts: ");
Serial.println(wkts);
} else {
Serial.println("off");
}
}
inningsbuttonState = digitalRead(inningsbuttonPin);
if (inningsbuttonState != inningslastButtonState) {
if (inningsbuttonState == LOW) {
firstinnings = runs;
Serial.println("on");
Serial.print("Innings Ended Total = ");
Serial.println(firstinnings);
runs = 0;
overs = 0;
wkts = 0;
Serial.print("runs = ");
Serial.println(runs);
Serial.print("overs = ");
Serial.println(overs);
Serial.print("wkts = ");
Serial.println(wkts);
} else {
Serial.println("off");
}
delay(75);
}
// read the pushbutton input pin:
resetbuttonState = digitalRead(resetbuttonPin);
// compare the buttonState to its previous state
if (resetbuttonState != resetlastButtonState) {
// if the state has changed, increment the counter
if (resetbuttonState == LOW) {
// if the current state is HIGH then the button
// wend from off to on:
Serial.println("on");
Serial.print("Reset ");
Serial.println(firstinnings);
runs = 0;
overs = 0;
wkts = 0;
firstinnings = 0;
Serial.print("runs = ");
Serial.println(runs);
Serial.print("overs = ");
Serial.println(overs);
Serial.print("wkts = ");
Serial.println(wkts);
Serial.print("innings = ");
Serial.println(firstinnings);
} else {
Serial.println("off");
}
delay(75);
}
}
}
From the other thread I have modified the code for the receiver as follows
#include <LedControl.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00001";
/*
* Now we create a new LedControl.
* We use pins 6,5 and 4 on the Arduino for the SPI interface
* Pin 6 is connected to the DATA IN-pin of the first MAX7221
* Pin 5 is connected to the CLK-pin of the first MAX7221
* Pin 4 is connected to the LOAD(/CS)-pin of the first MAX7221
*/
LedControl lc1=LedControl(6,5,4,2);
unsigned long delaytime=500;
void setup() {
//wake up the MAX72XX from power-saving mode
lc1.shutdown(0,false);
lc1.shutdown(1,false);
//set brightness for the Leds
lc1.setIntensity(0,15);
lc1.setIntensity(1,15);
lc1.setScanLimit(0, 6);
lc1.setScanLimit(1, 3);
//and clear the display
lc1.clearDisplay (0);
lc1.clearDisplay (1);
}void loop() {
if (Serial.available() >= 9) {
lc1.setDigit(0, 5, Serial.read(), false);
lc1.setDigit(0, 4, Serial.read(), false);
lc1.setDigit(0, 3, Serial.read(), false);
lc1.setDigit(0, 2, Serial.read(), false);
lc1.setDigit(0, 1, Serial.read(), false);
lc1.setDigit(0, 0, Serial.read(), false);
lc1.setDigit(1, 2, Serial.read(), false);
lc1.setDigit(1, 1, Serial.read(), false);
lc1.setDigit(1, 0, Serial.read(), false);
}
}
In the other thread, you mention sending the data as AAAAAVVVVVHHHIII, in my instance this would be something like RRRWOOFFF, where RRR = runs, W =wkts, OO =overs, FFF = firstinnings.
My question is how to convert the four separate integers into this string for transmission.
I hope this is clearer and do appreciate your time in trying to help me.
Mike.