Ankündigung

Einklappen
Keine Ankündigung bisher.

ARDUINO am KNX

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

    Hallo mars,

    zu deinen Problemen.

    Dein Sketch kann so nicht funktioniert.

    Vor dem

    Code:
    include <KnxTpUart.h>
    fehlt die Raute.


    Beachte hierbei bitte Post #685 bis Post #688 für den Arduino Uno.
    In diesen Post befindet sich auch ein Sketch zum Empfangen der funktioniert garantiert.

    Danach sollte auch das Empfangen mit dem Arduino Uno funktionieren.

    Mit dem ProMini habe ich keine Erfahrung, diesen benütze ich nicht.


    Nur zur Information:

    Der Arduino Nano geht nur für das Senden, beim Empfangem stört der FTDI-Baustein.


    Ja, beim nicht fehlerfreien Empfangen läuft die Library auch in den Zweig "eType == UNKNOWN".


    Mit freundlichen Grüßen

    Mag Gyver
    Zuletzt geändert von Mag Gyver; 07.03.2016, 20:45.

    Kommentar


      vielen Dank erst Mal und gleich noch eine Frage:

      ...fehlt die Raute
      welchen Sketch meinst Du? Rauten sind doch vor dem "include" in beiden Sketches?

      Posts #685 bis #688 sehe ich mir gleich mal an und werde morgen mal probieren und ...
      ... das mit dem Nano ist mir klar / bekannt - darum der ProMini, der besser in ein kleines (REG-)Gehäuse geht.

      Gruß Marco

      Kommentar


        Hallo mars,

        ähm. Passt schon, habe ich nach dem Kopieren selber gelöscht.

        Entschuldigung, mein Fehler. Man sollte die Taste "Entf" nur einmal drücken.
        Aber doppelt hält manchmal besser!?

        Update:

        Dein Sketch im Post # 810 funktioniert auf dem Arduino Uno ohne Probleme.
        Leider habe ich keinen Arduino ProMini 5V 16Mhz zum Testen.



        Mit freundlichen Grüßen

        Mag Gyver
        Zuletzt geändert von Mag Gyver; 07.03.2016, 21:37. Grund: Sketch tested with Arduino Uno and Siemens 5WG1 117-2AB12 -> O.K.

        Kommentar


          ... Danke Mag Gyver und Resümee:

          mein Sketch aus #810 geht bei Dir
          Dein Sketch aus #685 leicht modifiziert (PA, GA und interner LED) gibt:
          Code:
          #include <KnxTpUart.h>
          
          KnxTpUart knx(&Serial, "1.1.5");
          
          boolean test;
          
          void setup() {
            pinMode(LED_BUILTIN, OUTPUT);
            Serial.begin(19200);
            UCSR0C = UCSR0C | B00100000;
            knx.uartReset();
            knx.addListenGroupAddress("15/0/0");
          }
          
          void loop() {
          }
          
          void serialEvent() {
            KnxTpUartSerialEventType eType = knx.serialEvent();
            if (eType == KNX_TELEGRAM) {
              KnxTelegram* telegram = knx.getReceivedTelegram();
              String target = String(0 + telegram->getTargetMainGroup()) + "/" + String(0 + telegram->getTargetMiddleGroup()) + "/" + String(0 + telegram->getTargetSubGroup());
              if (telegram->getCommand() == KNX_COMMAND_WRITE) {
                if (target == "15/0/0") {
                  test = telegram->getBool();
                  digitalWrite(LED_BUILTIN, (test) ? HIGH : LOW);
                }
              }
            }
          }
          Tipps aus #686ff ziehen nicht, da ich Arduino und PC trenne (keine USB-Verbindung); Stromversorgung des Arduino kommt aus der BCU.
          Ich habe jetzt nur den Uno genommen, um "kompatibel" zu bleiben ...

          ... und immer noch das gleiche Ergebnis:
          Senden vom Arduino auf den Bus geht - Empfang vom Bus an den Arduino geht nicht

          Ich habe das "unbestimmte Gefühl", dass "irgendwo anders" klemmt - nicht am/im Arduino sondern ab der BCU in Richtung Bus.
          Ich fange mal an zu spinnen:
          - Kann die BCU als "Einbahnstraße" arbeiten?
          - Kann der Bus Telegramme "unterdrücken"?

          Ist mir völlig rätselhaft. Hast Du (oder noch wer) Tipps, was / wie ich noch testen kann?

          Danke Marco

          Kommentar


            Hallo
            Fehlt nicht noch vor void setup()
            int LED_BUILTIN = 13;
            Gruß NetFritz
            KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
            WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
            PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

            Kommentar


              nein passt schon, LED_BUILTIN ist eine vordefinierte Konstante
              (ist evtl. nicht der richtige Name dafür, aber der Copiler meckert nicht und kanns richtig umsetzten - 13 stimmt z.B. beim Uno, ist evtl. bei anderen Arduinos oder dem ESP8266 anders definiert)

              Kommentar


                Ohne selbst Ahnung zu haben... in einem anderen Thread kam dieser Hinweis: "...wenn du einen China Arduino hast (egal ob UNO, Nano o.ä) mit einem CH340G Chip, dann lass es lieber. Dieser Chip stört die Kommunikation zwischen BCU und Arduino..." !?
                https://knx-user-forum.de/forum/proj...ang-ist-schwer

                Kommentar


                  OK und Danke - habe (natürlich) einen China-Uno.
                  Wenn ich mir doch noch einen Mega hole(n muss), wirds wohl ein Original ...

                  ...das erklärt aber nicht das gleiche Verhalten beim ProMini (siehe #810) - der hat keinen USB-Chip

                  Kommentar


                    das mit dem CH340G habe ich geschrieben. Da habe ich sogar versucht diesen Chip von den Arduino RX/TX Pins zu trennen (Widerstände auslöten), erst dann hat es funktioniert.

                    Es muss nicht unbedingt original Mega sein. ich meinen bei diesem Verkäufer gekaut: http://ebay.de/itm/121903526895

                    Funktierniert perfekt (sieht auch wie Original aus). Auf dem Bild neben dem USB-Anschluss sieht man Atmega 16U2, damit geht es auf jedem Fall (gilt auch für UNO).


                    Ich will jetzt nicht werben, aber mit
                    Code:
                    UCSR0C = UCSR0C | B00100000;
                    knx.uartReset();
                    hatte ich damals auch Probleme, mit allen meinen Arduinos, außer MEGA (der hat ja Serial1).

                    Seit dem ich selbst KONNEKTING nutze, funktioniert alles bei ersten Versuch.
                    Ausprobieren schadet ja nicht
                    Zuletzt geändert von Eugenius; 09.03.2016, 09:27.

                    Kommentar


                      ... ja, mit KONNEKTING habe ich auch schon geliebäugelt (und schon erste, leider erfolglose Versuche gemacht)
                      Da ist aber (wenn es so wie bei mir schon erste Erfolgserlebnisse gab) der Einarbeitungsaufwand hoch:
                      - neue (mir unbekannte) Bibliotheken für den Arduino
                      - zusätzlich zum Sketch noch ein korrespondierendes XML
                      - weitere Software (KONNEKTING Suite)
                      Da hatte ich gehofft mit den hiesigen Möglichkeiten einfacher zum Ziel zu kommen ...

                      Wenn ich nicht weiter komme, werde ich mir das später mal näher ansehen - wird aber wohl erst nach der L&B was.

                      Kommentar


                        Zitat von mars Beitrag anzeigen
                        ... ja, mit KONNEKTING habe ich auch schon geliebäugelt (und schon erste, leider erfolglose Versuche gemacht)
                        Wir können nur besser werden, wenn wir Feedback bekommen. Magst du uns vielleicht im KONNEKTING-Board (neuer Thread, weil passt in diesen hier nicht so recht rein) verraten wie's lief und wo es Probleme gab?

                        Da ist aber (wenn es so wie bei mir schon erste Erfolgserlebnisse gab) der Einarbeitungsaufwand hoch:
                        - neue (mir unbekannte) Bibliotheken für den Arduino
                        Die neue Lib (die im Kern gar nicht so neu ist) ist an und für sich recht einfach. Sie ist aber primär "anders" als die KnxTpUart Lib.

                        - zusätzlich zum Sketch noch ein korrespondierendes XML
                        Das kann ich leider nicht wegdiskutieren. Für einfache Dinge, ist die XML aber auch sehr einfach gehalten.

                        - weitere Software (KONNEKTING Suite)
                        Auch das kann ich nicht wegdiskutieren. Aber die Suite macht es dir unheimlich einfach später an deinem Sketch Einstellungen zu ändern ohne nochmal die Arduino IDE ausgraben zu müssen.

                        Da hatte ich gehofft mit den hiesigen Möglichkeiten einfacher zum Ziel zu kommen ...
                        Die KnxTpUart Lib ist natürlich noch einfacher als KONNEKTING.

                        Mein Tipp:

                        Um noch debuggen zu können während der TPUART am Arduino hängt, empfehle ich wärmstens SoftwareSerial. Verwenden wir mit KONNEKTING auch. Für debugging-Zwecke reicht das dicke und du musst nicht im Blindflug per try&error am Code herumfuhrwerken.

                        Wenn ich nicht weiter komme, werde ich mir das später mal näher ansehen - wird aber wohl erst nach der L&B was.
                        Gerne. Wenns Probleme gibt, dann bitte im KONNEKTING Board melden.

                        Für alle unentschlossenen, hier eine Pro/Kontra KONNEKTING Entscheidungshilfe:
                        https://knx-user-forum.de/forum/proj...tro-konnekting

                        Antworten zum Thema KONNEKTING bitte ins KONNEKTING Board. Dieser Thread hier ist schon lang genug und muss nicht zur KONNEKTING Diskussionsplattform werden wenn es dafür ein extra Board gibt.
                        Zuletzt geändert von tuxedo; 10.03.2016, 11:40.

                        Kommentar


                          Hallo mars,

                          ich teste nur mit dem Original Uno oder Mega.

                          Des Weiteren gibt es zwei ProMini Varianten, einer mit 3,3 Volt und einer mit 5 Volt.
                          Die 5 Volt Variante mit dem Atmega 328P sollte eigentlich funktionieren, dieser Aufbau beschränkt sich auf das Minimum an notwendigen Bauteilen zur Funktion.
                          Ist wie ein ATmega 328P im Breadboard mit Quarz und Koppelkondensatoren, sowie Resettaster und Abblockkondensatoren.

                          Den ATmega 16U2 halt ich auch bei nicht USB-Speisung und Anschluss an den Rechner im Reset.

                          Bei meinen eigenen Tests hatte sich herausgestellt das nicht jeder Atmega 16U2 die Kommunikation zwischen ATmega 328P und 5WG1 117-2AB12 störte.
                          Manche taten dies, manche nicht. Deshalb empfehle ich immer den Atmega 16U2 im Reset zuhalten. Betrifft jetzt nur den Arduino Uno (Original R3).

                          Wie gesagt bei mir laufen derzeit 5 Stück Arduino Uno (Original R3) mit senden und empfangen.
                          Weitere 6 Stück ATmega 328P (Breadboard Variante) mit senden und empfangen.
                          Zwei Atmega 1284P (Breadboard Variante) mit senden und empfangen.
                          Und natürlich 1 Stück Arduino Mega (Original R3) mit senden und empfangen.

                          Alle lassen sich problemlos programmieren und verrichten ihre aufgetragene Arbeit (beim Arduino Uno oder dem ATmega 328P "Breadboard" sollte man beim Programmieren den 5WG1 117-2AB12 abstecken oder TxD und RxD trennen).

                          Ich gehe bei dir davon aus das es nicht an deiner Programmierung sondern an der eingesetzten Hardware liegt.


                          Mit freundlichen Grüßen

                          Mag Gyver
                          Zuletzt geändert von Mag Gyver; 10.03.2016, 16:44.

                          Kommentar


                            ...sondern an der eingesetzten Hardware liegt
                            Ja, das vermute ich inzwischen auch - Danke für die Bestätigung.
                            und
                            sollte man beim Programmieren den 5WG1 117-2AB12 abstecken oder TxD und RxD trennen
                            ... habe ich auch gemerkt, dann geht das Hochladen des Sketches nicht.
                            Aber kann dabei am Arduino oder an der BCU was kaputt gehen?
                            Kann ich TX und RX-Pin an der BCU testen?

                            Marco

                            Kommentar


                              Hallo mars,

                              am Arduino oder der BCU konnte ich seither keinen Defekt feststellen.
                              Leider vergesse ich öfters die BCU vom Arduino Uno zu trennen.

                              RxD und TxD kann man testen, ich benütze dafür den Saleae Logic 8.

                              Verbindungen hast du überprüft?

                              RxD ATmega <-> TxD BCU
                              TxD ATmega <-> RxD BCU
                              GND ATmega <-> GND BCU
                              5V ATmega <-> 5V BCU

                              Spannung muss mindestens 4,5 Volt höchsten 5,5 Volt betragen, damit der ATmega mit 16Mhz arbeiten kann.

                              Welche IDE-Version benützt du den zum Programmieren des ATmegas?
                              Hatte mal bei einer Version das Verhalten, das das Empfangen nicht gehen wollte.
                              Der benützte Compiler hat die Variablen wegrationalisiert, dadurch wurden diese von "Serial Event" nicht mehr an die "void loop" übergeben.

                              Bis heute benütze ich die Versionen der ARDUINO IDE 1.0.5 und 1.6.5 von arduino.cc.
                              Damit laufen bisher meine ATmega´s ohne Probleme.

                              Bezusquelle für deinen Arduino Uno Clone?

                              Mit freundlichen Grüßen

                              Mag Gyver
                              Zuletzt geändert von Mag Gyver; 12.03.2016, 08:02.

                              Kommentar


                                Vielen Dank für die Tipps (komme wegen der L+B aber erst jetzt zum lesen und antworten)

                                zu Deinen Fragen:
                                - Ja, Verbindungen sind (mehrfach) geprüft und senden auf den Bus geht problemlos
                                - (Versorgungs-) Spannung aus der BCU beträgt 5,05V - gemessen mit einfachen Multimeter. Zusätzlich habe ich auch versucht, den Uno per USB-Netzteil zu betreiben und dafür nur GND (und natürlich RX/TX bzw TX/RX) von Arduino und BCU verbunden.
                                - Ich habe bisher immer die IDE in Version 1.6.5 genutzt
                                - Bezugsquelle für meinen Uno-Clone kann ich leider nicht mehr nennnen

                                ... Ich werde mir wohl einen Saleae Logic 8 bestellen und dazu einen neuen Uno + BCU um noch mal "von vorn" anzufangen.
                                Mal sehen, wann es weiter geht. Jetzt geht bei mir erst mal die Bastelsaison zu Ende und die Gartenzeit beginnt.


                                Marco

                                Kommentar

                                Lädt...
                                X