Advertisement
andr250a

Mellemled mellem 2 arduinoer

Apr 22nd, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ////////////////// Inkluderer librarys //////////////////
  2. #include <nRF24L01.h>
  3. #include <RF24.h>
  4.  
  5. ////////////////// Opsætter antenne //////////////////
  6. RF24 radio(7, 8); // CE, CSN
  7.  
  8.  
  9. ////////////////// Opretter konstanter //////////////////
  10. ///opsætter pins:
  11. //Analog:
  12. const int analogInPin = A5; //sættes til PIN5 på den Arduino som sender (NB: HUSK fælles GND)
  13. //digital:
  14. const int digitalPin1 = 2;  //sættes til A2 på den Arduino som skal modtage (NB: HUSK fælles GND)
  15. const int digitalPin2 = 3;  //sættes til A3 på den Arduino som skal modtage (NB: HUSK fælles GND)
  16. const int digitalPin3 = 4;  //sættes til A4 på den Arduino som skal modtage (NB: HUSK fælles GND)
  17.  
  18. const byte addresses[][6] = {"CHNL1", "CHNL2"}; //addresser som antennerne kommunikere over
  19. int madtype; //Angiver hvilken type mad robotarmen skal ramme
  20. int modtag = 0; // modtager værdi fra robotarm
  21. int arm_faerdig = 0; // angiver om robotarmen er færdig med sin opgave og er klar til at modtage en ny
  22. void setup() {
  23.   Serial.begin(115200);
  24.  
  25.   ///// Opsætter antenne:
  26.   radio.begin();
  27.   radio.openWritingPipe(addresses[0]); // CHNL1
  28.   radio.openReadingPipe(1, addresses[1]); // CHNL2
  29.   radio.setPALevel(RF24_PA_MIN);
  30.  
  31.   //opsætter digital output-pins:
  32.   pinMode(digitalPin1, OUTPUT);
  33.   pinMode(digitalPin2, OUTPUT);
  34.   pinMode(digitalPin3, OUTPUT);
  35. }
  36.  
  37. ////////////////// Opretter funktion som kan sende information vidder til en anden ardoino via kabel: //////////////////
  38. void send_via_kabel(int tal) {
  39.   ////// =1:
  40.   if (tal == 1) {
  41.     digitalWrite(digitalPin1, HIGH);
  42.     digitalWrite(digitalPin2, LOW);
  43.     digitalWrite(digitalPin3, LOW);
  44.   }
  45.  
  46.   ////// =2:
  47.   if (tal == 2) {
  48.     digitalWrite(digitalPin1, LOW);
  49.     digitalWrite(digitalPin2, HIGH);
  50.     digitalWrite(digitalPin3, LOW);
  51.   }
  52.  
  53.   ////// =3:
  54.   if (tal == 3) {
  55.     digitalWrite(digitalPin1, LOW);
  56.     digitalWrite(digitalPin2, LOW);
  57.     digitalWrite(digitalPin3, HIGH);
  58.   }
  59.  
  60.   ////// =4:
  61.   if (tal == 4) {
  62.     digitalWrite(digitalPin1, HIGH);
  63.     digitalWrite(digitalPin2, HIGH);
  64.     digitalWrite(digitalPin3, LOW);
  65.   }
  66.  
  67.   ////// =5:
  68.   if (tal == 5) {
  69.     digitalWrite(digitalPin1, HIGH);
  70.     digitalWrite(digitalPin2, LOW);
  71.     digitalWrite(digitalPin3, HIGH);
  72.   }
  73.  
  74.   ////// =6:
  75.   if (tal == 6) {
  76.     digitalWrite(digitalPin1, LOW);
  77.     digitalWrite(digitalPin2, HIGH);
  78.     digitalWrite(digitalPin3, HIGH);
  79.   }
  80.  
  81.   ////// =7:
  82.   if (tal == 7) {
  83.     digitalWrite(digitalPin1, HIGH);
  84.     digitalWrite(digitalPin2, HIGH);
  85.     digitalWrite(digitalPin3, HIGH);
  86.   }
  87.  
  88.   ////// ingen eller =0:
  89.   if (tal == 0) {
  90.     digitalWrite(digitalPin1, LOW);
  91.     digitalWrite(digitalPin2, LOW);
  92.     digitalWrite(digitalPin3, LOW);
  93.   }
  94. }
  95.  
  96.  
  97. void loop() {
  98.   delay(5);
  99.   radio.startListening();
  100.   if ( radio.available()) {
  101.     radio.read(&madtype, sizeof(madtype));  //modtager signal om hvilken mad type som er valgt, fra fjernbetæningen
  102.     send_via_kabel(madtype); // sender madtypen til armen via kabel
  103.   }
  104.   delay(5);
  105.   radio.stopListening();
  106.   ///tjekker om robotarmen er færdig
  107.   modtag = analogRead(analogInPin);
  108.   if (modtag > 1000) {
  109.     arm_faerdig = 1;
  110.     /// sætter output til robotarm til lig 0, så der er kalr til at modtage ny instrukser
  111.     digitalWrite(digitalPin1, LOW);
  112.     digitalWrite(digitalPin2, LOW);
  113.     digitalWrite(digitalPin3, LOW);
  114.   }
  115.   if (modtag < 100) {
  116.     arm_faerdig = 0;
  117.   }
  118.   radio.write(&arm_faerdig, sizeof(arm_faerdig)); //Sender infor om at robotarmen er færdig eller ej, til fjernbetæningen
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement