- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 89

Thema: Zwei Arduino´s drahtlos verbinden ??

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    36
    Beiträge
    180
    Hat keiner einen Rat ?
    bzw. ob das so ein Code währe wo ich brauche ?

    Habe immer noch kein Tutorial gefunden wo in deutscher Sprache.

    gibt ja noch andere Drahtlose Verbindungen!
    Wie sieht es denn mit Xbee oder Wifi aus?

    Ist das so viel komplizierter als Funk?
    Wobei das ja nicht so kompliziert sein kann, ich möchte ja nur mit meinen zwei Joystick´s
    zwei Servos ( mein Fahrtenregler von SGS ) ansteuern.

    Und ich hab ja mein Code schon, und ausgiebig getestet auch schon, nur möchte ich nicht
    unbedingt meinem Roboter hinter her laufen

    Bitte nochmals um Hilfestellung und allen ein schönes Wochenende

    Mfg Benny

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Du hast 2x den (identischen) Sendercode gepostet. Der von dir gepostete Code sieht schlüssig aus.

    Übersetzt und bearbeitet:
    Code:
    // Arduino Nano alias Sender - Sisor's Version 
    
    #include <SPI.h>
    #include "RF24.h"
    
    const uint64_t pipe = 0xE8E8F0F0E1LL; // Adresse des Übertragungskanals
    const int potPin = 0;                 // Potentiometer-Pin
    
    // Funkmodul NRF24L01 mit Arduino-Pins verbinden:
    // SCK -> 13 // MISO -> 12 // MOSI -> 11 // CSN -> 10  // CE -> 9
    // SPI-Bus Pins 9 und 10
    
    RF24 radio(9,10);
    
    void setup (void)
    {
      radio.begin();
      radio.openWritingPipe(pipe);        // Kanal öffnen
    }
    
    void loop (void)
    {
      int potValue = analogRead(potPin);  // liest den Wert des Potentiometers (Wert zwischen 0 und 1023)
      int scaledValue = map(potValue, 0, 1023, 0, 179); // skalierter Wert (zwischen 0 und 179) für den Servo 
    
      radio.write(&scaledValue, 1);       // Adresse (&scaledValue) und Länge (1) der zu sendenden Daten
    }

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    36
    Beiträge
    180
    hey, danke für deine Antwort


    ups, is mir garnicht aufgefallen, hier der Empfänger Code:


    Code:
    // Arduino Nano alias Empfänger - Version 2
    
    #include <Servo.h>
    #include <SPI.h>
    #include "RF24.h"
    
    Servo myservo; // create servo object to control a servo
    
    //Контакты от радиомодуля NRF24L01 подключаем к пинамнам -> Arduino
    
    //SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 10//CE -> 9
    
    // Set up nRF24L01 radio on SPI bus plus pins 9 & 10
    
    RF24 radio(9,10);
    
    const uint64_t pipe = 0xE8E8F0F0E1LL; // адрес канала
    
    int msg[1];
    
    void setup()
    
    {
    
      // Serial.begin(9600);
    
      myservo.attach(3); // attaches the servo on pin 3 to the servo object
    
      radio.begin();
    
      radio.openReadingPipe(1,pipe); // Открываем один из 6-ти каналов приема
    
      radio.startListening(); // Начинаем слушать эфир
    }
    
    void loop()
    
    {
      if (radio.available())
      {
    
        bool done = false;
        while (!done)
      {
    
      done = radio.read(msg, 1);
    
      myservo.write (msg[0]);
    
      //Serial.println(msg[0]);
      
        }
    
      }
    
    }
    Ist der Code aber schon für zwei Joystick´s / Potis ?
    Weil ja nur einmal:

    const int potPin = 0

    drin steht.

    Ansogst leuchtet es mir ein was du geändert hast.
    Schade das es kein Deutsches Tutorial gibt ......

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Der Code ist leicht modifizierbar für (fast) beliebig viele zu sendende Daten.

    Code für 2 Potis:
    Code:
    // Arduino Nano alias Sender - Sisor's Version 
    
    #include <SPI.h>
    #include "RF24.h"
    
    const uint64_t pipe = 0xE8E8F0F0E1LL; // Adresse des Übertragungskanals
    const int xPotPin = 0;                         // Potentiometer-Pins
    const int yPotPin = 1; 
    
    // Funkmodul NRF24L01 mit Arduino-Pins verbinden:
    // SCK -> 13 // MISO -> 12 // MOSI -> 11 // CSN -> 10  // CE -> 9
    // SPI-Bus Pins 9 und 10
    
    RF24 radio(9,10);
    
    void setup (void)
    {
      radio.begin();
      radio.openWritingPipe(pipe);        // Kanal öffnen
    }
    
    void loop (void)
    {
      int data[2]; 
      data[0] = map(analogRead(xPotPin), 0, 1023, 0, 179); 
      data[1] = map(analogRead(yPotPin), 0, 1023, 0, 179); 
    
      radio.write(data, 2);       // Adresse (data) und Länge (2) der zu sendenden Daten
    }
    Geändert von Sisor (22.03.2014 um 22:58 Uhr)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    36
    Beiträge
    180
    okay leuchtet auch ein....

    Danke für deine Hilfe,

    kannst du mir noch verraten, wie es mit dem Empfänger Code aussieht?
    Passt der?

    Also an dem die zwei Servus bzw der Fahrtenregler hängt?

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    So könnte das dann aussehen:
    Code:
    // Arduino Nano alias Empfänger - Sisor's Version 
    
    #include <Servo.h>
    #include <SPI.h>
    #include "RF24.h"
    
    Servo myServo1;
    Servo myServo2;
    const uint64_t pipe = 0xE8E8F0F0E1LL; 
    
    RF24 radio(9,10);
    
    void setup()
    {
      // Serial.begin(9600);  // zum Debuggen Kommentarzeichen entfernen 
                              // und diesen Arduino über Serial Mointor auslesen
      myServo1.attach(3);     // Pin 3
      myServo2.attach(4);     // Pin 4
      radio.begin();
    
      radio.openReadingPipe(1, pipe); 
      radio.startListening(); 
    }
    
    void loop()
    {
      if (radio.available())
      {
        bool done = false;
        int msg[2];
        while (!done)
        {
          done = radio.read(msg, 2);
          myServo1.write (msg[0]);
          myServo2.write (msg[1]);
          //Serial.println(msg[0]);  // zum Debuggen Kommentarzeichen entfernen 
          //Serial.println(msg[1]);
        }
      }
    }

Ähnliche Themen

  1. Antworten: 16
    Letzter Beitrag: 01.12.2011, 17:12
  2. Verbinden von zwei Schrittmotoren mit RN-Control
    Von mklayton im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 3
    Letzter Beitrag: 13.01.2010, 20:38
  3. Mit Rs 232 zwei avr verbinden
    Von fofi1 im Forum AVR Hardwarethemen
    Antworten: 14
    Letzter Beitrag: 16.08.2009, 11:53
  4. Zwei PIC über CAN verbinden
    Von Tonelli im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 17.11.2007, 15:10
  5. Signale von zwei Encodern verbinden neue frage!
    Von sdz55 im Forum Elektronik
    Antworten: 68
    Letzter Beitrag: 21.03.2006, 18:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests