FN

Dependencies:   mbed RF24Network RF24

Files at this revision

API Documentation at this revision

Comitter:
guillaume6544
Date:
Mon Mar 25 16:34:59 2019 +0000
Parent:
5:bfef4ea383be
Child:
7:1b47a2b6329a
Commit message:
prend 2 distances;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu Feb 14 10:58:23 2019 +0000
+++ b/main.cpp	Mon Mar 25 16:34:59 2019 +0000
@@ -1,70 +1,133 @@
 #include "mbed.h"
 #include <RF24Network.h>
 #include <RF24.h>
-
+ 
 Serial pc(USBTX, USBRX);
-InterruptIn button(D4);
+InterruptIn button(D8);
+AnalogIn LM35(A2);
+    
 
 RF24 radio(SPI_MOSI, SPI_MISO, SPI_SCK, D9, SPI_CS );
 Timer timer;
 unsigned int temps;
 int a=0;
+float temperature;
+float vitesse;
+
+const int n = 2;
+int addr[n] = {001,001};
+float d[n];
+int indice=0;
 
 void pressed()
 {
     button.disable_irq();
     timer.stop();
     temps = timer.read_us();
-    printf("distance=%f\r\n",(temps-100.0)*340.0/1000000.0);
-    wait_ms(3);
+    d[indice-1]=(temps-70.0)*(vitesse/1000000.0);
+    //printf("distance=%f\r\n",(temps-70.0)*(vitesse/1000000.0);
+    //wait_ms(3);
     timer.reset();
-    //a=0;
-    //button.enable_irq();
+    //a=1;
 }
-
+ 
 // Network uses that radio
 RF24Network network(radio);
-
+ 
 // Address of our node
 const uint16_t this_node = 01;
-
+ 
 // Address of the other node
-const uint16_t other_node = 00;
-
+const uint16_t other_node1 = 00;
+const uint16_t other_node2 = 001;
+ 
 // How often to send payload packet to the other unit
-const unsigned long interval = 200; //ms
-
+const unsigned long interval = 500; //ms
+ 
 // When did we last send?
 unsigned long last_sent;
 Timer t;
-
+ 
 // How many have we sent already
 unsigned long packets_sent;
 Timer t_packet;
-
+ 
 // Structure of our payload
 struct payload_t 
 {
     unsigned long ms;
     unsigned long counter;
 };
+ 
+ 
+ void emmeteur(){
 
+            pc.printf("Sending : %d...",indice+1);
+            payload_t payload_tx;
+            payload_tx.ms = t_packet.read_ms();
+            payload_tx.counter = packets_sent++;
+ 
+            RF24NetworkHeader header_tx(/*to node*/ addr[indice]);
+            bool ok = network.write(header_tx,&payload_tx,sizeof(payload_tx));
+            if (ok){
+                timer.start();
+                pc.printf("ok : %d\r\n",indice+1);
+               // a=1;
+                }
+            else
+                pc.printf("failed : %d.\r\n",indice+1);
+     
+     
+}
+ void emmeteur2(){
 
+           pc.printf("Sending : 2...");
+            payload_t payload_tx;
+            payload_tx.ms = t_packet.read_ms();
+            payload_tx.counter = packets_sent++;
+ 
+            RF24NetworkHeader header_tx(/*to node*/ other_node2);
+            bool ok = network.write(header_tx,&payload_tx,sizeof(payload_tx));
+            if (ok){
+                timer.start();
+                pc.printf("ok : 2.\r\n");
+               // a=1;
+                }
+            else
+                pc.printf("failed : 2.\r\n");
+     
+     
+}
+ 
+ 
+ 
+ 
 int main()
 {
   //  double cpt=0;
-    
+    float d1,d2;
     pc.baud(115200);
     wait_ms(1000);
-
-    pc.printf("mBed RF24Network node: Tx\n");
+ 
+    pc.printf("mBed RF24Network node: Tx\r\n");
     radio.begin();
     network.begin(/*channel*/ 90, /*node address*/ this_node);
     wait_ms(2000);
     t.start();
     t_packet.start();
+    temperature = 0;
+    for (int i=0;i<10;i++) {
+        temperature += LM35.read();
+        wait_ms(10);
+    }
     
     
+    
+    
+    temperature = temperature*34;
+    
+    vitesse = 331.5 + 0.595*temperature;
+    
     button.rise(&pressed);
     while(1) 
     {
@@ -76,24 +139,18 @@
         unsigned long now = t.read_ms();
         if ( now >= interval  ) 
         {
+            if(indice > 1) {
+                for(int j=0; j<n; j++)
+                    printf("distance %d = %f\r\n",j+1,d[j]);
+                indice = 0;
+            }
             t.reset();
             
             button.enable_irq();
-
-            pc.printf("Sending...");
-            payload_t payload_tx;
-            payload_tx.ms = t_packet.read_ms();
-            payload_tx.counter = packets_sent++;
+            emmeteur();
+            button.enable_irq();
 
-            RF24NetworkHeader header_tx(/*to node*/ other_node);
-            bool ok = network.write(header_tx,&payload_tx,sizeof(payload_tx));
-            if (ok){
-                timer.start();
-                pc.printf("ok.\r\n");
-               // a=1;
-                }
-            else
-                pc.printf("failed.\r\n");
+            indice++;
         }
        
        
@@ -103,8 +160,8 @@
             
         
        
-
-
+ 
+ 
     }
-
+ 
 }
\ No newline at end of file