FN

Dependencies:   mbed RF24Network RF24

Committer:
belkaous
Date:
Mon Apr 08 12:52:19 2019 +0000
Revision:
7:77a1606d3b7e
Parent:
6:4840dd0ef133
FN

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akashvibhute 0:3982c0e9eda1 1 #include "mbed.h"
akashvibhute 0:3982c0e9eda1 2 #include <RF24Network.h>
akashvibhute 2:608cf8c5c55e 3 #include <RF24.h>
guillaume6544 6:4840dd0ef133 4
akashvibhute 0:3982c0e9eda1 5 Serial pc(USBTX, USBRX);
guillaume6544 6:4840dd0ef133 6 InterruptIn button(D4);
guillaume6544 6:4840dd0ef133 7
guillaume6544 5:ddab03ae19aa 8 PwmOut mypwm(D5);
guillaume6544 6:4840dd0ef133 9
wesleytiem 4:93d0253a8a32 10 RF24 radio(SPI_MOSI, SPI_MISO, SPI_SCK, D9, SPI_CS );
belkaous 7:77a1606d3b7e 11
belkaous 7:77a1606d3b7e 12 DigitalIn A(D8);
belkaous 7:77a1606d3b7e 13 DigitalIn B(D7);
belkaous 7:77a1606d3b7e 14 DigitalIn C(D6);
belkaous 7:77a1606d3b7e 15
belkaous 7:77a1606d3b7e 16
akashvibhute 0:3982c0e9eda1 17 // Network uses that radio
akashvibhute 0:3982c0e9eda1 18 RF24Network network(radio);
guillaume6544 6:4840dd0ef133 19
belkaous 7:77a1606d3b7e 20
akashvibhute 0:3982c0e9eda1 21 // Address of our node
belkaous 7:77a1606d3b7e 22 uint16_t this_node;
belkaous 7:77a1606d3b7e 23
akashvibhute 0:3982c0e9eda1 24 // Address of the other node
guillaume6544 6:4840dd0ef133 25 const uint16_t other_node = 00;
guillaume6544 6:4840dd0ef133 26
akashvibhute 0:3982c0e9eda1 27 // When did we last send?
akashvibhute 0:3982c0e9eda1 28 unsigned long last_sent;
guillaume6544 6:4840dd0ef133 29
akashvibhute 0:3982c0e9eda1 30 // How many have we sent already
akashvibhute 0:3982c0e9eda1 31 unsigned long packets_sent;
guillaume6544 6:4840dd0ef133 32
akashvibhute 0:3982c0e9eda1 33 // Structure of our payload
akashvibhute 2:608cf8c5c55e 34 struct payload_t
akashvibhute 0:3982c0e9eda1 35 {
akashvibhute 2:608cf8c5c55e 36 unsigned long ms;
akashvibhute 2:608cf8c5c55e 37 unsigned long counter;
akashvibhute 0:3982c0e9eda1 38 };
guillaume6544 6:4840dd0ef133 39
guillaume6544 5:ddab03ae19aa 40 //interruption du NRF24
guillaume6544 5:ddab03ae19aa 41 void pressed()
guillaume6544 5:ddab03ae19aa 42 {
guillaume6544 5:ddab03ae19aa 43 mypwm.write(0.5);
guillaume6544 5:ddab03ae19aa 44 }
guillaume6544 6:4840dd0ef133 45
akashvibhute 2:608cf8c5c55e 46 int main()
akashvibhute 0:3982c0e9eda1 47 {
guillaume6544 5:ddab03ae19aa 48 button.enable_irq();
guillaume6544 5:ddab03ae19aa 49 button.rise(&pressed);
guillaume6544 6:4840dd0ef133 50 mypwm.period_us(40);
guillaume6544 6:4840dd0ef133 51 mypwm.pulsewidth_us(20);
guillaume6544 5:ddab03ae19aa 52 mypwm.write(0.0);
guillaume6544 5:ddab03ae19aa 53
belkaous 7:77a1606d3b7e 54 if((!A.read()) && (!B.read()) && (C.read()) ) this_node = 01;
belkaous 7:77a1606d3b7e 55 else if(!(A.read()) && (B.read()) && !(C.read()) ) this_node = 02;
belkaous 7:77a1606d3b7e 56 else this_node = 03;
belkaous 7:77a1606d3b7e 57
wesleytiem 4:93d0253a8a32 58 pc.baud(115200);
guillaume6544 6:4840dd0ef133 59 wait_ms(500);
guillaume6544 6:4840dd0ef133 60
belkaous 7:77a1606d3b7e 61 pc.printf("mBed RF24Network node\r\n");
akashvibhute 0:3982c0e9eda1 62 radio.begin();
akashvibhute 0:3982c0e9eda1 63 network.begin(/*channel*/ 90, /*node address*/ this_node);
guillaume6544 6:4840dd0ef133 64 wait_ms(1000);
guillaume6544 6:4840dd0ef133 65
akashvibhute 2:608cf8c5c55e 66 while(1)
akashvibhute 0:3982c0e9eda1 67 {
akashvibhute 0:3982c0e9eda1 68 // Pump the network regularly
akashvibhute 0:3982c0e9eda1 69 network.update();
wesleytiem 4:93d0253a8a32 70
akashvibhute 0:3982c0e9eda1 71 // Is there anything ready for us?
akashvibhute 2:608cf8c5c55e 72 while ( network.available() )
akashvibhute 0:3982c0e9eda1 73 {
akashvibhute 0:3982c0e9eda1 74 // If so, grab it and print it out
akashvibhute 0:3982c0e9eda1 75 RF24NetworkHeader header_rx;
akashvibhute 0:3982c0e9eda1 76 payload_t payload_rx;
akashvibhute 0:3982c0e9eda1 77 network.read(header_rx,&payload_rx,sizeof(payload_rx));
wesleytiem 4:93d0253a8a32 78 pc.printf("Received packet # %d at %d ms\r\n",payload_rx.counter,payload_rx.ms);
guillaume6544 5:ddab03ae19aa 79
guillaume6544 6:4840dd0ef133 80 wait_us(1750);
guillaume6544 5:ddab03ae19aa 81 mypwm.write(0.0);
akashvibhute 0:3982c0e9eda1 82 }
guillaume6544 6:4840dd0ef133 83
akashvibhute 0:3982c0e9eda1 84 }
guillaume6544 6:4840dd0ef133 85
guillaume6544 6:4840dd0ef133 86 }
guillaume6544 6:4840dd0ef133 87