Advertisement
Guest User

Robotas

a guest
Dec 21st, 2015
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.20 KB | None | 0 0
  1.  
  2. /*
  3. * Getting Started example sketch for nRF24L01+ radios
  4. * This is a very basic example of how to send data from one node to another
  5. * Updated: Dec 2014 by TMRh20
  6. */
  7.  
  8. #include <SPI.h>
  9. #include "RF24.h"
  10.  
  11. //Motoru pajungimas
  12. // priekis desine
  13. int priekis_A = 4, priekis_in1 = 22, priekis_in2 = 24;
  14. // priekis kaire
  15. int priekis_B = 5, priekis_in3 = 26, priekis_in4 = 28;
  16. // galas desine
  17. int galas_A = 3, galas_in1 = 23, galas_in2 = 25;
  18. // galas kaire
  19. int galas_B = 2, galas_in3 = 27, galas_in4 = 29;
  20.  
  21. #define trigPin 36
  22. #define echoPin 38
  23.  
  24. //Ikeliamas papildomos funkcijos
  25. #include "funkcijos.h";
  26.  
  27.  
  28. /* Hardware configuration: Set up nRF24L01 radio on SPI bus plus pins 9 & 8 */
  29. RF24 radio(9,8);
  30. /**********************************************************/
  31.  
  32. byte addresses[][6] = {"2Node","1Node"};
  33.  
  34. // Used to control whether this node is sending or receiving
  35. bool role = 0;
  36.  
  37. void setup() {
  38.   Serial.begin(9600);
  39.   radio.begin();
  40.   radio.setChannel(21);
  41.   radio.setPALevel(RF24_PA_MAX);
  42.   radio.setDataRate(RF24_1MBPS);
  43.   //radio.setAutoAck(1);                     // Ensure autoACK is enabled
  44.   //radio.setRetries(2,15);                  // Optionally, increase the delay between retries & # of retries
  45.  
  46.   //radio.setCRCLength(RF24_CRC_8);          // Use 8-bit CRC for performance
  47.  
  48.   radio.openWritingPipe(addresses[0]);
  49.   radio.openReadingPipe(1,addresses[1]);
  50.  
  51.   // Start the radio listening for data
  52.   radio.startListening();
  53.   //radio.printDetails();
  54. }
  55.  
  56. void loop() {
  57.  
  58. int greitis_a=0, greitis_b=0;
  59.  //Siunciamu duomenu masyvas
  60. unsigned long data_get[5];
  61. unsigned long data_sent[5];
  62. int a[5];
  63. long duration, distance=20;
  64. //digitalWrite(trigPin, LOW);  // Added this line
  65. //delayMicroseconds(2); // Added this line
  66. //digitalWrite(trigPin, HIGH);
  67. //delayMicroseconds(10); // Added this line
  68. //digitalWrite(trigPin, LOW);
  69. //duration = pulseIn(echoPin, HIGH);
  70. //distance = (duration/2) / 29.1;
  71.  
  72. //siunciami duomenys atgal
  73.     data_sent[0]=distance;
  74.     data_sent[1]=greitis_a;
  75.     data_sent[2]=greitis_b;
  76.    
  77.     if( radio.available()){                                                                  
  78.       while (radio.available()) {                            
  79.         radio.read( &data_get, sizeof(unsigned long) );          
  80.       }
  81.       radio.stopListening();                                      
  82.       radio.write( &data_sent, sizeof(unsigned long) );                
  83.       radio.startListening();                                        
  84.       Serial.println("Issiustas atsakymas");
  85.    }
  86.                
  87.  
  88.   Serial.print("DATA X - ");
  89.   Serial.print(data_get[0]);
  90.   Serial.print(" //// DATA Y - ");
  91.   Serial.println(data_get[1]);
  92.  
  93. //vaziuojam
  94.   if(a[1]>530 && distance>15){
  95.     greitis_a=128+((a[1]-512)/4);
  96.     if(greitis_a>255){greitis_a=255;}
  97.     pirmyn(greitis_a);}else
  98.   if(a[1]<470){
  99.     greitis_a=128+((512-a[1])/4);
  100.     if(greitis_a>255){greitis_a=255;}
  101.   atgal(greitis_a);}else
  102.   if(a[0]>530){
  103.     greitis_b=128+((a[0]-512)/4);
  104.     if(greitis_b>255){greitis_b=255;}
  105.   kaire(greitis_b);}else
  106.   if(a[0]<470){
  107.     greitis_b=128+((512-a[0])/4);
  108.     if(greitis_b>255){greitis_b=255;}
  109.   desine(greitis_b);}else{
  110.     stop();}
  111.  
  112. } // Loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement