- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 9 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 89

Thema: Zwei Arduino´s drahtlos verbinden ??

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    35
    Beiträge
    180
    Anzeige

    E-Bike
    naja blutig nicht mehr ganz, also die Schaltungen wo ich möchte bekomme ich hin. =)

    ja genau das mit dem erstmal ohne Funk, hab ich im ersten Beitrag oben versucht zu erklären =)
    das Programm steht, die Schaltung auch, und funktunieren tut es auch, nur will ich meinem Roboter ja nicht weiter hinterher laufen.

    Also es funktioniert so wie ich es will, nur jetzt brauch ich halt eine Funkverbindung, ja werde es langsam angehen lassen, das ich es auch verstehe.

    Hier mal der Funktionierende Code ....


    Code:
    #include <Servo.h>
    
    
    Servo servo_gas_bremse_1;        // Servo Aufgabe Gas & Bremse
    Servo servo_links_rechts_2;      // Servo Aufgabe Links & Rechts
     
    int potpin_links = A1;           // Analog Pin für Poti - Gas & Bremse
    int servo_pin_1 = 3;             // Servo Pin
    
    int potpin_rechts = A2;          // Analog Pin für Poti - Links & Rechts
    int servo_pin_2 = 5;             // Servo Pin
    
    int val;                         // Variable zum Lesen des Wertes des Analog Pin´s 
     
    void setup() 
    { 
      servo_gas_bremse_1.attach(servo_pin_1 = 3);         // Servo auf Pin 3 setzen 
      pinMode(servo_pin_1, OUTPUT);                       // Servo_Pin als Ausgang deklarieren
      
      servo_links_rechts_2.attach(servo_pin_2 = 5);       // Servo auf Pin 5 setzen
      pinMode(servo_pin_2, OUTPUT);                       // Servo_Pin als Ausgang deklarieren
    } 
     
    void loop() 
    { 
      val = analogRead(potpin_links);      // liest den Wert des Poti´s zwischen 0 und 1023
      val = map(val, 0, 1023, 0, 180);     // skalieren das der Servo weis, wo 0 und 180 ist 
      servo_gas_bremse_1.write(val);       // Servo auf den Skalierten Wert setzen 
      delay(15);                           // 15 mS warten dann wieder abfragen
      
      val = analogRead(potpin_rechts);     // liest den Wert des Poti´s zwischen 0 und 1023
      val = map(val, 0, 1023, 0, 179);     // skalieren das der Servo weis, wo 0 und 180 ist 
      servo_links_rechts_2.write(val);     // Servo auf den Skalierten Wert setzen 
      delay(15);                           // 15 mS warten dann wieder abfragen
    }
    Mfg Benny
    Geändert von Benny1989 (13.03.2014 um 14:45 Uhr)

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Schon klar, dass du zZ. auch schon hinterher rennst, aber mit dem Funk kommt ja auch noch ein zweiter Mikrocontroller (der auch Fehler verursachen kann). Also erst mal mit beiden Mikrocontrollern und Kabel testen und dann auf Funk umbauen.

    Du hast da einen Anfängerfehler in deinem Code

    Code:
    void loop() {   
    val = analogRead(potpin_links);      // liest den Wert des Poti´s zwischen 0 und 1023  
    val = map(val, 0, 1023, 0, 180);     // skalieren das der Servo weis, wo 0 und 180 ist   
    servo_gas_bremse_1.write(val);     // Servo auf den Skalierten Wert setzen   
    delay(15);                                    // 15 mS warten dann wieder abfragen    
    
    val = analogRead(potpin_rechts);   // liest den Wert des Poti´s zwischen 0 und 1023  
    val = map(val, 0, 1023, 0, 179);     // skalieren das der Servo weis, wo 0 und 180 ist   
    servo_links_rechts_2.write(val);     // Servo auf den Skalierten Wert setzen   
    delay(15);                                    // 15 mS warten dann wieder abfragen
    }
    Das Programm wird nach einander abgearbeitet. Also von oben bis unten und erst dann fängt es wieder oben an.
    Sprich durch die beiden delays sendest du das Servosignal erst all 30ms(+ 2ms für ein Servo.write + ein bisschen was für den rest des Programms) und nicht wie du es dir vermutlich denkst alle 15ms.

    Also entweder nur einmal den delay oder eben bei beiden die halbe Zeit.
    Was du auch bedenken solltest, bei dem verwenden der delay Funktion kann der Controller während der gesamten Zeit nichts machen. Hier solltest du dich bei Zeiten mal in das Thema Timer einlesen.
    Dann kannst du die Servos über einen Interrupt quasi parallel zu einem Programm ansteuern.

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    35
    Beiträge
    180
    okay, ja das ist mir nicht aufgefallen .... =)

    also müsste jedes delay 7,5 haben ??? habe ich das richtig verstanden?

    Aber was ich mir auch schon überlegt habe, das ich zwei Arduino Nano´s kaufe, die kosten ja so gut wie nichts
    und Platz hab ich für die Nano´s im Roboter sowohl auch in der Fernbedienung.

    Das hab ich mir e schon überlegt bzw währe mir lieber, das die zwei Nano´s dann rein die Steuerung des Roboters übernehmen sollen,
    und der Uno dann auf dem Roboter andere aufgaben Übernimmt.

    Währe doch eine Möglichkeit, die mir ehrlich gesagt besser gefallen würde ??

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    35
    Beiträge
    180
    Hallo Zusammen, Update Fernsteuerung;

    habe gestern angefangen, meine Fernsteuerung zu bauen. Habe mein alten PS2 Controller auseinander gebaut und die zwei Joysticks ausgelötet
    und wieder auf eine Punkt Platine aufgelötet. Heute bin ich dazugekommen, nachdem ich mir es konstruiert habe und die Fräsprogramme
    gemacht habe, die Aussparungen in die Oberschale ein zu fräsen ( Zur Info: Die Box hab ich mir aus meinem Elektriker Laden meines Vertrauens besorgt).
    Einmal für das 16x2 Display und zwei mal zwei Durchmesser für die Joysticks.

    ( Der eine für den Roboter RSL-7 und den Roboter Arm und die beiden Oberen die ich noch aus meinem zweiten Controller auslötet muss, für mein kleinen Roboter)

    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_5876.jpg
Hits:	28
Größe:	75,6 KB
ID:	27776 Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_5878.jpg
Hits:	21
Größe:	66,2 KB
ID:	27777

    Morgen werde ich die Kabel anlöten und die Schaltung nochmals testen.

    Wie gesagt ohne Funk funktioniert es ja.
    Werde am Wochenende auch die beiden Nano´s bestellen und zwei mal das Funkmodul, werde aber das größere Model nehmen, mit externer Antenne!
    Gibt nie genug Reichweite und die 30 bis 40 Meter würden momentan reichen, aber irgend wann brauch ich es und dann fange ich wieder an!
    Also nehme ich gleich das größere Model =)

    Mit freundlichen Grüßen Benny

    p.s.: Die Schutzfolie is noch auf dem Display, deswegen sieht es so komisch aus auf Bild 1 =)

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    35
    Beiträge
    180
    Nabend liebe Community,

    habe heute die Fernsteuerung fertig gemacht, alles verlötet und angeschlossen.
    Habe es auch nochmals am Roboter getestet, funktioniert einwandfrei - also praktisch ohne Funk!

    Jetzt hab ich noch zwei Frage:

    Frage1:

    Wenn ich mir das NRF24L01+ Modul mit 1000 Meter Reichweite kaufe, hat das ja eine Externe Antenne!
    Gibt es ein kurzes Kabel? zwischen Modul und Antenne ? Wenn nicht ist das ein wenig blöd in meiner Fernsteuerung
    zu verbauen! Wenn es ein kurzes Kabel gäbe oder man das Selbst machen kann währe das perfekt !

    Oder meint ihr das Modul mit weniger Reichweite reicht auch?


    Frage2:

    Zu dem Link den " Robin " gepostet hat, hat da jemand ein anderes Tutorial ? evtll auf deutsch?
    Hab nur Englisch sprachige gefunden, da tu ich mir bei sowas kompliziertem schwer =(

    Das ich mich da einarbeiten kann um mein Programm dann zu ändern für den Arduino der sendet
    und für den Arduino der dann empfängt. Währe mega lieb =)

    Mfg Benny und ein schönes Wochenende

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    35
    Beiträge
    180
    Hallo Community,

    habe soeben einen Arduino Nano V3.1 bestellt ( Erstmal ein Nano, hab ja noch das UNO, wenns funktioniert
    dann hole ich mir noch ein Nano ) und 2x das NRF24L01+ Modul,
    ein Arduino Nano Shield zum leichteren Hand haben hab ich mir auch gleich mit dazu bestellt.

    Ich habe zwar kein Deutsches Tutorial über das NRF24L01+ Modul gefunden zumindest nicht
    wo es um Potentiometer und Servos geht.

    Aber ich bin fündig geworden was den Sketch angeht, könnte mir jemand sagen ob ich diesen
    so verwenden kann? mir ist nichts aufgefallen bzw einzuwenden!
    Vielleicht könnte jemand mit NRF24L01+ Modul Erfahrung mal drüber schaun und mir Feedback geben.

    Code für Arduino Nano alias Sender:

    Code:
    // Arduino Nano alias Sender - Version 2
    
    #include <SPI.h>
    #include "RF24.h"
    
    int msg[1];
    
    //Контакты от радиомодуля 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 potpin = 0; // analog pin used to connect the potentiometer
    
    int val; // variable to read the value from the analog pin
    
    void setup(void)
    {
      radio.begin();
      radio.openWritingPipe(pipe); // Открываем канал передачи
    }
    
    void loop(void)
    {
      val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
      val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
    
      msg[0] = val;
    
      radio.write(msg, 1);
    }

    Code für Arduino Nano alias Empfänger:

    Code:
    // Arduino Nano alias Sender - Version 2
    
    #include <SPI.h>
    #include "RF24.h"
    
    int msg[1];
    
    //Контакты от радиомодуля 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 potpin = 0; // analog pin used to connect the potentiometer
    
    int val; // variable to read the value from the analog pin
    
    void setup(void)
    {
      radio.begin();
      radio.openWritingPipe(pipe); // Открываем канал передачи
    }
    
    void loop(void)
    {
      val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
      val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
    
      msg[0] = val;
    
      radio.write(msg, 1);
    }
    Währe nett wenn mir jemand weiter helfen könnte =)

    Mfg Benny

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    35
    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

  8. #18
    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
    }

  9. #19
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2011
    Ort
    Heilbronn
    Alter
    35
    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 ......

  10. #20
    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 23:58 Uhr)

Seite 2 von 9 ErsteErste 1234 ... LetzteLetzte

Ähnliche Themen

  1. Antworten: 16
    Letzter Beitrag: 01.12.2011, 18: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, 21:38
  3. Mit Rs 232 zwei avr verbinden
    Von fofi1 im Forum AVR Hardwarethemen
    Antworten: 14
    Letzter Beitrag: 16.08.2009, 12:53
  4. Zwei PIC über CAN verbinden
    Von Tonelli im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 17.11.2007, 16:10
  5. Signale von zwei Encodern verbinden neue frage!
    Von sdz55 im Forum Elektronik
    Antworten: 68
    Letzter Beitrag: 21.03.2006, 19:31

Berechtigungen

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

Solar Speicher und Akkus Tests