Bin gerade nicht in Deutschland. Erinnere mich bitte nächste Woche noch einmal daran.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Erste Bilder und Bestückungsplan HW1.1, HW1.2 & Aufsteckplatine
Einklappen
X
-
Habe gerade gesehen, dass man wenn man die Platine mit einer Siemens BCU verwendet, noch weitere Lötbrücken geschlossen werden müssen. Nutzt ihr einen Arduino mit 5V, dann müsst ihr die rote Lötbrücke schließen und bei einem 3,3V Arduino die grüne Lötbrücke . Präsentation1.png
Kommentar
-
PROBLEM:
Ich hatte vor dem Schließen der Lötbrücke die Situation, dass ich mit angeschlossenem USB Kabel alles programmieren konnte und auf dem Bus auch Telegramme empfangen habe.
Nach dem Schließen der roten Brücke bei meinem Pro Micro 5V leuchten zwar die LEDs vom Arduino, es werden aber keine Telegramme mehr auf den Bus geschickt und ein Programmieren scheitert wieder..?
Any ideas?Zuletzt geändert von Onkelandy; 15.11.2018, 07:48.
Kommentar
-
Warum das technisch der Fall sein soll ist mir nicht ganz klar. Da da schließen der Lötbrücke nur bedeutet, das der Promicro seinen Strom über die BCU bezieht und nicht mehr nur über den USB. Auf die Kommunikation zwischen Arduino und BCU sollte das keinen Abbruch tun.
Wenn der Arduino nur an der BCU hängt und der USB ist NICHT angeschlossen, kannst du dann die Prog LED ein und wieder ausschalten !? wenn ja heißt das, dass der Arduino mal in seiner Loop Schleife läuft.
Ich habe auf der Rückseite der Platinen markiert, ob es sich um eine 3,3V oder 5V Variante handelt. Hast du den richtigen Arduino auf die richtige Platine gesteckt?
Kommentar
-
Ja, hab die richtige Platine hergenommen und logisch ist mir das Ganze auch nicht. Es muss also effektiv am Arduino Code liegen, seh ich das richtig? Die Prog LED würde leuchten, sobald ich 1 Mal den Button betätige und abschalten, sobald ich nochmals auf den Button drücke? Oder einfach, solange man den Button hält? Dann werde ich das nochmals mit einem Beispielcode testen. Auf welchem Pin ist die LED denn? Sie blinkt bei mir immer, wenn es eine Übertragung gibt (TX-LED auf dem Arduino). Beim Drücken des Buttons ist mir noch nichts aufgefallen.
Gibt's irgendwo einen getesteten Arduino Sketch, der einfach nur zB alle 10 Sekunden was per Serial Monitor in die Debug Konsole und auf den Bus schickt? Ohne zusätzliche Libraries, etc. Das wäre extrem hilfreich, um grundsätzliche Fehler auszuschließen.
Vielen lieben Dank für den super Support!
Kommentar
-
Zitat von Onkelandy Beitrag anzeigenAuf welchem Pin ist die LED denn?
beim drücken leuchtet die LED und beim wiederholten drücken geht sie wieder aus. Im Debug Fenster wird das so auch angezeigt. Das muss mal funktionieren, sonst brauchst du noch nicht nach das Senden von Nachrichten denken.
Ich habe leider keinen Code mehr für die Arduino Micros.
Kommentar
-
Oki, prinzipiell funzt es nun. Danke für die Info. Ich habe versucht, einen Dummy Code zu basteln, den man zum Testen nutzen kann.. Ich wundere mich gerade, dass es ca. 10 Mal genau so funktioniert wie ich dachte.. nämlich 1 Mal pro Sekunde Wert senden. Danach läuft es aber plötzlich ca. 10 Mal so schnell.. Was hab ich da denn falsch?
Code:#include <KonnektingDevice.h> #include "Konnekting_Blank.h" // ################################################ // ### KONNEKTING Debugging // ################################################ // #define KDEBUG // comment this line to disable DEBUG mode #ifdef KDEBUG #include <DebugUtil.h> // Get correct serial port for debugging #ifdef __AVR_ATmega32U4__ // Leonardo/Micro/ProMicro use the USB serial port #define DEBUGSERIAL Serial #elif ESP8266 // ESP8266 use the 2nd serial port with TX only #define DEBUGSERIAL Serial1 #else // All other, (ATmega328P f.i.) use software serial #include <SoftwareSerial.h> SoftwareSerial softserial(11, 10); // RX, TX #define DEBUGSERIAL softserial #endif #endif //----------- // ################################################ // ### KONNEKTING Configuration // ################################################ #ifdef __AVR_ATmega328P__ #define KNX_SERIAL Serial // Nano/ProMini etc. use Serial #elif ESP8266 #define KNX_SERIAL Serial // ESP8266 use Serial #else #define KNX_SERIAL Serial1 // Leonardo/Micro etc. use Serial1 #endif //----------- // PIN for programming LED #define PROG_LED_PIN 8 // PIN for programming button #define PROG_BUTTON_PIN 7 //LED heartbeat #define PROG_LED_HEARTBEAT 1 #define COMPILE_TIMESTAMP __DATE__ " " __TIME__ #ifdef PROG_LED_HEARTBEAT int last_blink = millis(); bool state = false; #endif int last_write = millis(); int delay_write = 10000; void setup() { #ifdef KDEBUG // Start debug serial with 9600 bauds DEBUGSERIAL.begin(9600); #ifdef __AVR_ATmega32U4__ // wait for serial port to connect. Needed for Leonardo/Micro/ProMicro only while (!DEBUGSERIAL) #endif // make debug serial port known to debug class // Means: KONNEKTING will use the same serial port for console debugging Debug.setPrintStream(&DEBUGSERIAL); Debug.println(F("Setup... compiletime: %s"), COMPILE_TIMESTAMP); #endif // Init KONNEKTING ... Konnekting.init(KNX_SERIAL, PROG_BUTTON_PIN, PROG_LED_PIN, MANUFACTURER_ID, DEVICE_ID, REVISION); /* Delay */ uint8_t val = Konnekting.getUINT8Param(PARAM_startupDelay); // int paramStartupDelay = (val == 0xff ? 0 : val * 1000); //seconds // initial delay Debug.print(F("Startup delay delay %ims "), PARAM_startupDelay); delay(PARAM_startupDelay); Debug.println(F(" *done*")); } void loop() { // process KNX stuff Knx.task(); // it's not ready, unless it's programmed via Suite if (Konnekting.isReadyForApplication()) { writeValue(); } #ifdef PROG_LED_HEARTBEAT progLedHeartbeat(); #endif } void writeValue() { if (millis() - last_write > delay_write) { #ifdef KDEBUG Debug.println(F("COMOBJ_testValue %i "), COMOBJ_testValue); #endif Knx.write(COMOBJ_testValue, !COMOBJ_testValue); last_write = millis(); } } #ifdef PROG_LED_HEARTBEAT void progLedHeartbeat() { if (Konnekting.isReadyForApplication()) { // Blink Prog-LED SLOW for testing purpose if (millis() - last_blink > 1000) { if (state) { digitalWrite(PROG_LED_PIN, HIGH); state = false; } else { digitalWrite(PROG_LED_PIN, LOW); state = true; } last_blink = millis(); } } else { // Blink Prog-LED FAST for testing purpose if (!Konnekting.isProgState() && (millis() - last_blink > 200)) { if (state) { digitalWrite(PROG_LED_PIN, HIGH); state = false; } else { digitalWrite(PROG_LED_PIN, LOW); state = true; } last_blink = millis(); } } } #endif // Callback function to handle com objects updates void knxEvents(byte index) { // nothing to do in this sketch };
Kommentar
Kommentar