Ankündigung

Einklappen
Keine Ankündigung bisher.

ARDUINO am KNX

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

    Zitat von Catter Beitrag anzeigen
    Habs endlich hinbekommen
    Woran hats denn gelegen? Solche Infos koennen uns vermutlich dabei helfen, das Ganze noch etwas runder zu kloppen

    gruesse

    Kommentar


      leonardo

      ich weiß, dass solche infos wichtig sind...
      leider weiß ich aber selbst nicht genau woran es gelegen hat :0

      Habe die lib nochmal gelöscht um nochmal von 0 anfangen zu können, hab dann die nötigen Änderungen für Serial1 vorgenommen und plötzlich hats geklappt!

      Warum es die ganzen male zuvor nicht geklappt hat, kann ich nicht sagen, denn das ganze habe ich vorher sicher schon 3 bis 4 mal gemacht und es hat nie funktioniert. :/
      Das war auch der Grund warum ich es überhaupt mit SoftwareSerial versucht hatte.

      Also an alle die ebenfalls dieses problem haben:
      Lib aus dem Arduino Ordner löschen und eine cleane Version hineinkopieren.
      Dann in der KnxTpUart.h bei den defines SerialUSB zu Serial machen und USARTSerial zu HardwareSerial.
      Im Arduinoprogramm immer Serial1 verwenden.

      So funktionierts bei mir jetzt

      Kommentar


        Zitat von Catter Beitrag anzeigen
        Also an alle die ebenfalls dieses problem haben:
        Lib aus dem Arduino Ordner löschen und eine cleane Version hineinkopieren.
        Dann in der KnxTpUart.h bei den defines SerialUSB zu Serial machen und USARTSerial zu HardwareSerial.
        Im Arduinoprogramm immer Serial1 verwenden.
        Nein, alle die dieses Problem haben - bitte das machen, was ich hier geschrieben habe und nicht dem obigen Ratschlag folgen:
        https://knx-user-forum.de/388322-post313.html

        Aber nochmal: neue Version ausm Repository runterladen, nix mit SerialUSB, USARTSerial oder wie auch immer anfassen, sondern alles so lassen wie es ist. Einzig den Debug-Port definieren (Serial fuer den Leonardo) und es sollte laufen.

        gruesse :: Michael

        Kommentar


          Ich hab das jetzt noch nicht getestet aber wenn ich mir die Diffs anschaue ist das auch noch nicht so schlau geregelt. Vorher wurde geschaut ob TPUART_DEBUG true ist (if (TPUART_DEBUG)) damit sollte es möglich sein die Debug-Funktion im Code freizuschalten.
          Jetzt wurde das in sofern geändert dass Du schaust ob TPUART_DEBUG definiert wurde ... wenn ich das richtig verstehe dann müsste man immer die Library anfassen. Wäre es nicht besser das so zu gestalten dass die Library nicht vom User angefasst werden muss?

          Ich werde das morgen mal testen weil ich heute Abend noch die alte Version auf dem Rechner hatte und meine v0.2 vom Arduino-Shield fertig ist.
          Kannst Du mal den "Pro Mini 3.3V Atmega328" mit dem Pre testen? Hier wollte es nicht so richtig.

          Grüße
          Umgezogen? Ja! ... Fertig? Nein!
          Baustelle 2.0 !

          Kommentar


            Zitat von JuMi2006 Beitrag anzeigen
            Ich hab das jetzt noch nicht getestet aber wenn ich mir die Diffs anschaue ist das auch noch nicht so schlau geregelt. Vorher wurde geschaut ob TPUART_DEBUG true ist (if (TPUART_DEBUG)) damit sollte es möglich sein die Debug-Funktion im Code freizuschalten.
            Jetzt wurde das in sofern geändert dass Du schaust ob TPUART_DEBUG definiert wurde ... wenn ich das richtig verstehe dann müsste man immer die Library anfassen. Wäre es nicht besser das so zu gestalten dass die Library nicht vom User angefasst werden muss?
            Hi JuMi,

            danke fuer die Rueckmeldung!
            Der Gedanke mit dem define war dadurch begruendet, dass mir beim testen mit einem Leonardo schlicht der Speicher ausgegangen ist. Durch das define wird der betreffende Debug-Code bereits vom Pre rausgenommen was etwa 1.5kB Groesse im Endresultat gespart hat und fuer meinen konkreten Fall einfach ueberlebenswichtig war
            Ich halte das eigentlich generell fuer sinnvoll, da bei "Endprodukten" vermutlich nirgendwo ein Debug mitlaeuft und viele Testaufbauten (zumindest war das bei mir so) dann auch auf anderen Boards laufen. Und wenn sich da die Schnittstellen aendern (Serial zu Serial1 oder so) muss man eh in die Lib reinfassen...

            Man(n) kann aber einfach ne Kopie der Lib lokal anlegen und dann bei Bedarf KnxTpUart oder aber (zB) KnxTpUartDebug inkludieren... das waere zB eine Moeglichkeit.

            Zitat von JuMi2006 Beitrag anzeigen
            Kannst Du mal den "Pro Mini 3.3V Atmega328" mit dem Pre testen? Hier wollte es nicht so richtig.
            Leider nicht vollstaendig, da eine meiner Katzen meinen Testaufbau "gegessen" hat
            Aber das reine Kompilieren in der Arduino-IDE tuts bei mir, zumindest mit meinem "KNX-Beacon Code" mit dem ich grundsaetzliche Konnektivitaet teste, im wesentlichen ist das der hier:

            Code:
            #include <KnxTpUart.h>
            KnxTpUart knx(&Serial,15,15,20);
            
            void setup() {
              Serial.begin(19200);
              knx.uartReset();
              knx.addListenGroupAddress(0,0,100);
            }
            
            void loop() {
              knx.groupWriteBool(0,0,100,true);
              delay(1000);
              knx.groupWriteBool(0,0,100,false);
              delay(1000);
            }
            In der KnxTpUart.h muss TPUART_DEBUG_PORT auf Serial stehen (nen anderen gibts beim Micro ja nicht), sonst wird nix geaendert (obwohl es unabhaengig davon kompiliert ob TPUART_DEBUG nun definiert ist oder nicht).

            Was genau hast du denn fuer einen Fehler bekommen? Vielleicht irgendwo im Code nen flaschen UART angesprochen?

            gruesse :: Michael

            Kommentar


              Ich muss das morgen mal testen ... heute ist es zu spät.
              Ich spreche aber vom Mini und nicht vom Micro. Das mit dem Speicher ist natürlich ein Argument, aber vielleicht kann man da trotzdem was machen, so viele Varianten gibt es ja auch wieder nicht.
              Ich schau mir das morgen mal an, mein Testcode ist schon etwas länger da er auf Mega und Leonardo (Pro Micro) ohne Anpassungen läuft. Heute war ich schonmal froh dass das Shield mir 3.3V rausgeworfen hat wie es per solder-jumper konfiguriert war.

              Gruß Mirko
              Umgezogen? Ja! ... Fertig? Nein!
              Baustelle 2.0 !

              Kommentar


                Zitat von JuMi2006 Beitrag anzeigen
                Ich spreche aber vom Mini und nicht vom Micro. Das mit dem Speicher ist natürlich ein Argument, aber vielleicht kann man da trotzdem was machen, so viele Varianten gibt es ja auch wieder nicht.
                Ich schau mir das morgen mal an, mein Testcode ist schon etwas länger da er auf Mega und Leonardo (Pro Micro) ohne Anpassungen läuft.
                Mein Fehler, ich meinte natuerlich "Arduino Pro or Pro Mini (3.3V, 8MHz) w/ Atmega328". Damit laesst es sich bei mir kompilieren. Und auch fuer den 168er, den Mega, den Leonardo und - wers braucht - selbst fuers Lilypad.

                Eine (schon aeltere) Aenderung in der Lib war die Umstellung von HardwareSerial, USARTClass (oder was auch immer je nach Board reingeschrieben werden musste) auf die Parentclass Stream. Damit kompiliert es nun ohne Aenderungen fuer jedes Board - zumindest hoffe ich das
                Ohne diese Aenderung hat es Probleme (vor allem) beim Leonardo gegeben und - was mich besonders gestoert hat - es gab keine Debug-Moeglichkeit auf der USB-Schnittstelle des Leonardo/Micro. Das funktioniert jetzt parallel zum Betrieb am Bus via Serial1 (Debug dann auf Serial).
                Einzig musste ich eigentlich immer vorm Programmieren kurz resetten weil das mit der 1200baud-Auto-Reset-Geschichte aus irgendwelchen Gruenden bei mir ploetzlich nicht mehr funktioniert hat - ich glaube aber das lag am Board selber. Ich probiers die Tage mal mit nem anderen, das angesprochene hat es ja jetzt ohnehin hinter sich

                gruesse

                Kommentar


                  Nachdem nun endlich was funktionierendes zum programmieren des 3.3V Mini auftauchte bleibt dieser Stumm. Das Shield arbeitet bei 5V und mit dem Leonardo (Pro Micro) sehr gut, aber der Mini bleibt stumm.

                  Da ich heute keine Lust mehr habe noch den Optokoppler auszupacken hat vielleicht jemand nen funktionierenden Ansatz?

                  Das hier will jedenfalls nicht funktionieren oder sieht jemand den Fehler? Die Libraries sind die von bitbucket.

                  Code:
                  #include <KnxTelegram.h>
                  #include <KnxTpUart.h>
                  
                  KnxTpUart knx(&Serial1,15,15,20); //for Leonardo
                  //KnxTpUart knx(&Serial,15,15,20); // for Pro Mini
                  
                  void setup() {
                    Serial1.begin(19200); //for Leonardo
                    //Serial.begin(19200); // for Pro Mini
                    UCSR1C = UCSR1C | B00100000; //for Leonardo - Even Parity
                    //UCSR0C = UCSR0C | B00100000; // for Pro Mini
                    knx.uartReset();
                    knx.addListenGroupAddress(0,0,100);
                  }
                  
                  void loop() {
                    knx.groupWriteBool(0,0,100,true);
                    delay(1000);
                    knx.groupWriteBool(0,0,100,false);
                    delay(1000);
                  }
                  Umgezogen? Ja! ... Fertig? Nein!
                  Baustelle 2.0 !

                  Kommentar


                    Hmmm,

                    Du willst doch den Mini zum Laufen kriegen, in dem Code hast Du aber alles auf den Leonardo "gestellt" :-)

                    D.h. die "//" müssen in die Zeilen vom Leonardo hin und beim Mini entfallen.

                    Also so:

                    #include <KnxTelegram.h>
                    #include <KnxTpUart.h>

                    //KnxTpUart knx(&Serial1,15,15,20); //for Leonardo
                    KnxTpUart knx(&Serial,15,15,20); // for Pro Mini

                    void setup() {
                    //Serial1.begin(19200); //for Leonardo
                    Serial.begin(19200); // for Pro Mini
                    //UCSR1C = UCSR1C | B00100000; //for Leonardo - Even Parity
                    UCSR0C = UCSR0C | B00100000; // for Pro Mini
                    knx.uartReset();
                    knx.addListenGroupAddress(0,0,100);
                    }

                    void loop() {
                    knx.groupWriteBool(0,0,100,true);
                    delay(1000);
                    knx.groupWriteBool(0,0,100,false);
                    delay(1000);
                    }
                    Viele Grüße,
                    Stefan

                    DIY-Bastelprojekte: || >> Smelly One << || >> BURLI << ||

                    Kommentar


                      Ja das ist schon klar ... ich war nur zu faul das noch mal zu ändern ... damit man genau sieht wo es (keine) Unterschiede gibt.
                      Umgezogen? Ja! ... Fertig? Nein!
                      Baustelle 2.0 !

                      Kommentar


                        Ist außer dem BA noch was anderes an der seriellen Schnittstelle dran? LK dazwischen, der die Telegramme vom Arduino filtert? Blinkt die LED am Arduino im Sekundentakt?
                        Viele Grüße,
                        Stefan

                        DIY-Bastelprojekte: || >> Smelly One << || >> BURLI << ||

                        Kommentar


                          Weder das eine noch das andere, ich steck morgen mal die Siemens BCU ran, vielleicht liegt's doch am Shield.
                          Umgezogen? Ja! ... Fertig? Nein!
                          Baustelle 2.0 !

                          Kommentar


                            Oha, das Wort "Shield" habe ich überlesen...ich dachte da hängt die Siemens TPUART2 dran.
                            Viele Grüße,
                            Stefan

                            DIY-Bastelprojekte: || >> Smelly One << || >> BURLI << ||

                            Kommentar


                              Zitat von JuMi2006 Beitrag anzeigen
                              ...hat vielleicht jemand nen funktionierenden Ansatz?
                              Dein Code sieht gut aus - da gibts ja nun auch nicht viel was nicht passen koennte
                              Abgesehen von der Hardware - also moeglichen Problemen mit dem Shield: koennte es evtl sein, dass Debugging aktiviert ist und sich das mit der Kommunikation auf derselben Schnittstelle beisst?

                              gruesse

                              Kommentar


                                Es schient wirklich am Shield zu liegen. Mit Siemens-BCU und Optokoppler funktioniert es. So ein Mist - ... bei 5V klappts.
                                Umgezogen? Ja! ... Fertig? Nein!
                                Baustelle 2.0 !

                                Kommentar

                                Lädt...
                                X