Arduino über Empfänger schalten

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • schulle
    schulle

    #31
    AW: Arduino über Empfänger schalten

    moin

    dein sketch läuft leider nicht is aber auch nich ganz das was ich machen möchte

    ich möchte das kanal a den von kanal b vorgegebenden pin ein bzw aus schaltet

    dazu habe ich auch nochmal nen sketch geschrieben läuft aber leider nicht so wie ich mirdas vorstelle

    kanal a wird vollkommen ignoriert und kanal b lässt den pin bzw die led nur ganz schwach glimmen

    ob kanal a auf ein bzw aus geschaltet ist stört ihn ihrgendwie nicht die glimmt den immer

    Code:
    int a; // schaltet pin an/aus
    int b;// steuert den entsprechenden pin an 
    
    void setup ()
    {
    pinMode (5, OUTPUT);
    pinMode (6, OUTPUT);
    pinMode (A0, INPUT);
    pinMode (A1, INPUT);
    }
    
    void loop (){
      a = pulseIn(A0,HIGH,24000);//Ließt Eingangssignal
      b = pulseIn(A1,HIGH,24000);//Ließt Eingangssignal
     
    
      //if-Bedinung für LED1
      if (a>1960 && a<1980, b>850 && b<880)
      {//schaltet pin 6 ein wenn a zwischen 1960-1980 und b zwischen 850-880 ist 
        digitalWrite (6,HIGH);//schalte Ausgang an
      
      }
      if (a>960 && a<980, b>850 && b<880)
      {//schaltet pin 6 aus wenn a zwischen 960-980 und b zwischen 850-880 ist
        digitalWrite (6,LOW);//schalte Ausgang an
      
      }
      if (a>1960 && a<1980, b>1800 && b<1945)
      {//schaltet pin 5 ein wenn a zwischen 1960-1980 und b zwischen 1800-1945 ist 
        digitalWrite (5,HIGH);//schalte Ausgang an
      
      }
        
          if (a>960 && a<980, b>1800 && b<1945)
      {//schaltet pin 6 ein wenn a zwischen 960-980 und b zwischen 850-880 ist 
        digitalWrite (5,LOW);//schalte Ausgang an
      
      }
    }
    jemand ne idee?

    mfg schulle

    Kommentar

    • Doomgiver
      Member
      • 25.02.2013
      • 110
      • Heiko
      • Kiel

      #32
      AW: Arduino über Empfänger schalten

      1. Deine Grenzen sind streckenweise aber auch sehr eng gefasst. Das würde ich etwas weiter fassen. Sinnvoll wäre 750-1250 und 1750-2250.
      2. Dir fehlt eine "Merke"-Funktion, die registriert, ob Du gerade geschaltet hast. Sonst wird die LED nur blitzschnell ein- und ausgeschaltet, solange Du Pin a aktiviert hast (= Schalter an Funke gedrückt).

      Das glimmen ist eine ungewoillte PWM-Funktion, da Du offenbar bereits im Leerlauf die if-Bedingung erfüllst bzw. nie erfüllen kannst (siehe Grenzen).
      Zuletzt geändert von Doomgiver; 04.05.2013, 19:58.
      GruÃ? Heiko

      Kommentar

      • schulle
        schulle

        #33
        AW: Arduino über Empfänger schalten

        nabend

        ich glaube ich habs es läuft so wie ich es mir vorstelle

        Code:
        int a; // schaltet pin an/aus
        int b;// steuert den entsprechenden pin an 
        
        void setup ()
        {
          pinMode (3, OUTPUT);
          pinMode (4, OUTPUT);
        pinMode (5, OUTPUT);
        pinMode (6, OUTPUT);
        pinMode (A0, INPUT);
        pinMode (A1, INPUT);
        }
        
        void loop (){
          a = pulseIn(A0,HIGH,24000);//Ließt Eingangssignal
          b = pulseIn(A1,HIGH,24000);//Ließt Eingangssignal
         
        
          //if-Bedinung für LED1
          if (a>1960 && a<1980 && b>850 && b<880)
          {//schaltet pin 6 ein wenn a zwischen 1960-1980 und b zwischen 850-880 ist 
            digitalWrite (6,HIGH);//schalte Ausgang an
          
          }
         
          if (a>1960 && a<1980 && b>1800 && b<1945)
          {//schaltet pin 5 ein wenn a zwischen 1960-1980 und b zwischen 1800-1945 ist 
            digitalWrite (5,HIGH);//schalte Ausgang an
          
          }
          if (a>1960 && a<1980 && b>1010 && b<1040)
          {//schaltet pin 6 ein wenn a zwischen 1960-1980 und b zwischen 850-880 ist 
            digitalWrite (3,HIGH);//schalte Ausgang an
          
          }if (a>1960 && a<1980 && b>1280 && b<1310)
          {//schaltet pin 6 ein wenn a zwischen 1960-1980 und b zwischen 850-880 ist 
            digitalWrite (4,HIGH);//schalte Ausgang an
          
          }
          if (a>960 && a<980 && b>1800 && b<1945)
          {//schaltet pin 5 ein wenn a zwischen 1960-1980 und b zwischen 1800-1945 ist 
            digitalWrite (5,LOW);//schalte Ausgang an
          
          
          }
           
          if (a>960 && a<980 && b>800 && b<945)
          {//schaltet pin 5 ein wenn a zwischen 1960-1980 und b zwischen 1800-1945 ist 
            digitalWrite (6,LOW);//schalte Ausgang an
          
          
          }  
          if (a>960 && a<980 && b>1280 && b<1310)
          {//schaltet pin 6 ein wenn a zwischen 1960-1980 und b zwischen 850-880 ist 
            digitalWrite (4,LOW);//schalte Ausgang an
          
          }  
          if (a>960 && a<980 && b>1010 && b<1040)
          {//schaltet pin 6 ein wenn a zwischen 1960-1980 und b zwischen 850-880 ist 
            digitalWrite (3,LOW);//schalte Ausgang an
          
          }
          
        
          
        }
        danke für eure hilfe und zeit

        Kommentar

        • Hallodrius
          Senior Member
          • 07.10.2011
          • 1327
          • Anselm
          • Wiesbaden

          #34
          AW: Arduino über Empfänger schalten

          Das sieht aufwändig aus.
          Mit einer Case-Abfrage bist du da vermutlich deutlich flexibler und weniger am tippen.

          Anselm
          Devo 8s / DX6i
          Blade 300x / MQX / NQX
          Protos 500 / MiniProtos

          Kommentar

          • Doomgiver
            Member
            • 25.02.2013
            • 110
            • Heiko
            • Kiel

            #35
            AW: Arduino über Empfänger schalten

            Case-Abfragen funktionieren nur mit eindeutigen Werten (z.b. genau 1980µs). Was mich viel mehr wundert, ist dasss es mit diesen in meinen Augen absolut zufällig gwürfelten Randbedingungen vernünftig laufen soll.
            Manchmal darf sich die Laufzeit zwischen 800-820µs bewegen (= Delta von 20µs, schon sehr knapp), dann wieder von 1800-1945 (= Delta von 145µs, schon besser). Dann geht es munter bei 1010-1040µs weiter (= Delta von 30µs). Zudem ergeben sie als Grenzwerte kaum Sinn. Ein Standard-Mittensignal liegt bei 1500 bzw. 1520µs, untere Grenze bei ca. 1000µs (-100%) und obere Grenze ca. 2000µs (+100%).
            Aber gut, wenn es funktioniert ist ja alles in Ordnung. Rein aus Neugier: Schulle, was für eine Sende-/Empfangskombination nutzt Du?
            GruÃ? Heiko

            Kommentar

            • schulle
              schulle

              #36
              AW: Arduino über Empfänger schalten

              moin

              klar ist das programm noch nicht ganz fertig aber es macht das was ich damit vorhabe dadrauf kann ich schon mal aufbauen
              vor einer woche hatte ich nich mal nen adruino und mich noch nich einmal mit das programiren beschäftigt

              für mein boot soll ne alte modelcraft fm-ss profi von conrad zum einsatz kommen

              wie sieht es da eigendlich aus mit den speicher is der bei dieser programierung auch nach ca.70 min voll und muss neu gestartet werden ?
              Zuletzt geändert von Gast; 05.05.2013, 11:03.

              Kommentar

              • Doomgiver
                Member
                • 25.02.2013
                • 110
                • Heiko
                • Kiel

                #37
                AW: Arduino über Empfänger schalten

                Speicher ist unkritisch, ebenso die Laufzeit. Nur wenn Du irgendwo micros() nutzt, sind die 70min von Interesse.
                GruÃ? Heiko

                Kommentar

                Lädt...
                X