Ich folgte einem Tutorial zum Einrichten von Arduino und Bluetooth, damit es ohne USB-Kabel programmiert werden kann. Ich habe keine Kondensatoren oder Widerstände verwendet, da sie anscheinend nicht benötigt werden. Ich habe den seriellen Ausgang auf der seriellen Arduino-Konsole über Bluetooth (kein USB-Kabel angeschlossen). Da es sich um eine funktionierende Verbindung handelt, bedeutet dies, dass sie bis zu einem gewissen Punkt funktioniert. Beim Hochladen wird jedoch der Fehler "avrdude: stk500_getsync (): nicht synchron: resp = 0x4c" angezeigt.
Ich habe Pin 32 von hc-05 noch nicht mit Arduino Reset Pin verbunden. Könnte das das Problem sein? Ich brauche eigentlich kein Arduino, um zurückgesetzt zu werden, da ich die Stromversorgung zumindest vorerst nur manuell beenden kann. Ich habe auch 9600 als Baudrate anstelle von 115200 wie im Tutorial verwendet, weil mein Arduino-Code 9600 verwendet hat, aber vielleicht habe ich das falsch verstanden und es muss tatsächlich 115200 sein, unabhängig davon oder meine Baudrate im Arduino-Code?
Was könnte die Ursache sein?
Bearbeiten 1:
Von der Antwort von @sachleen habe ich die Baudrate gemäß dem Tutorial geändert und Pin 32 des hc-05-Moduls auf den ersten Pin von Arduino gelötet.
Nach dem Ändern der Baudrate gibt das Öffnen der seriellen Arduino-Konsole nichts mehr aus. Warum ist das passiert? Ich habe schon einmal eine serielle Ausgabe erhalten, als die Baudrate von hc-05 9600 betrug.
Nach dem Löten scheint der erste Pin Arduino auch nach dem Öffnen der seriellen Konsole zurückgesetzt zu werden. Ich habe den Kondensator nicht hinzugefügt, ist er erforderlich und wenn ja, warum? Ich habe auch Widerstände ausgeschlossen, da sie anscheinend nur zur Spannungsreduzierung von 5 V auf 3 V dienen (mein Arduino ist eine 3,3 V-Version).
quelle
Antworten:
Ich habe das Tutorial geschrieben, dem Sie gefolgt sind, damit ich vielleicht helfen kann. Als ich die Schaltung anfangs baute, habe ich einige der anderen Tutorials zur Arduino Bluetooth-Programmierung verwendet, die nicht viele zusätzliche Widerstände und Kondensatoren enthalten. Ich konnte jedoch keine davon dazu bringen, zuverlässig zu arbeiten. Mit einem Schaltungssimulator und einigen Versuchen und Irrtümern kam ich zu der im Tutorial gezeigten Schaltung, die für mich funktionierte.
Während einige der zusätzlichen Passive "nicht benötigt werden", wenn Ihre Schaltung ohne sie nicht funktioniert, besteht vielleicht doch ein Bedarf für sie? ;-) Nun habe ich von anderen Leuten gehört, dass sie bestimmte Teile weglassen konnten, so dass es scheint, dass es eine gewisse Variabilität in der Hardware gibt. Wir sprechen jedoch von vier Passiven, um einen zuverlässigen Betrieb zu gewährleisten. Warum sollten Sie sie also weglassen?
Wie auch immer, ein paar Punkte:
Pin 32 am HC-05 wird bei einer Bluetooth-Verbindung aktiv. Wir konfigurieren den Pin so, dass er niedrig aktiv ist, damit wir das Arduino bei serieller Verbindung automatisch zurücksetzen können, um zu emulieren, was mit der normalen USB-Verbindung passiert. Sie können die Verbindung zu Pin 32 nur auslassen, wenn Sie das Arduino manuell zurücksetzen müssen, um es zu programmieren.
Die Baudrate von 115200 ist die Rate für die Programmierung des Arduino und wird vom Arduino-Bootloader festgelegt. Es ist möglich, den Bootloader mit einer anderen Konfiguration neu zu flashen, wenn dies aus irgendeinem Grund erforderlich ist.
Die Programmierbaudrate ist also im Bootloader festgelegt, aber die Kommunikationsbaudrate kann in der Software mithilfe von konfiguriert werden
Serial.begin()
. Die Baudrate des HC-05 muss jedoch mit der des Arduino übereinstimmen, sodass Sie sowohl für die Programmierung als auch für die Kommunikation dieselbe Baudrate einhalten müssen (standardmäßig 115200).Am Reset sind zwei Widerstände beteiligt, R3 und R2. Ich glaube, R2 ist nur notwendig, damit 5V Arduinos mit R3 als Spannungsteiler fungieren. R3 sollte jedoch für jede Spannung Arduino enthalten sein. Siehe diesen Atmel-Konstruktionshinweis - "Die Rücksetzleitung verfügt über einen internen Pull-up-Widerstand. Wenn die Umgebung jedoch verrauscht ist, kann dies unzureichend sein und das Zurücksetzen kann daher sporadisch erfolgen ... Dieser Pull-up-Widerstand stellt sicher, dass der Reset nicht zu niedrig wird unbeabsichtigt." R3 sollte 4,7 k oder mehr sein; Die meisten Designs bleiben bei 10k.
Der Kondensator C1 ist erforderlich, da Pin 32 während der gesamten Bluetooth-Verbindung niedrig bleibt. Wenn Sie RST direkt an Pin 32 anschließen, bleibt der Arduino zurückgesetzt, bis die Bluetooth-Verbindung unterbrochen wird, und nichts funktioniert so, als ob Sie die Reset-Taste gedrückt gehalten und niemals losgelassen hätten.
Wenn C1 an Ort und Stelle ist, entlädt sich Pin 32 kurzzeitig C1, zieht RST nach unten und setzt den Arduino zurück. C1 beginnt sofort mit dem Aufladen über R3 bis zu VCC, wodurch RST wieder auf Hoch gesetzt wird und der Arduino nicht mehr zurückgesetzt wird. Die Werte von R3 und C1 beeinflussen den Zeitpunkt des Zurücksetzens und müssen entsprechend gewählt werden.
Vergiss R1 nicht. Ich kann mich nicht erinnern, warum es hilfreich ist, aber es hat etwas mit dem Arduino / Atmel UART zu tun. Ich habe die Empfehlung gefunden, sie eines Tages in ein Atmel-Diskussionsforum aufzunehmen, und sie hat viele Male einen nicht funktionierenden Schaltkreis für mich gelöst.
Ich hoffe, das hilft!
quelle
Beides wird Probleme verursachen.
Es muss zurückgesetzt werden, wenn eine neue Skizze heruntergeladen wird. Sie können es im richtigen Moment manuell zurücksetzen, aber wenn Sie das Timing nicht richtig einstellen, tritt dieses Problem auf.
Die Baudrate, die Sie in Ihrem Code für die serielle Kommunikation festgelegt haben, spielt beim Laden einer neuen Skizze, die im Bootloader festgelegt ist, keine Rolle mehr. Halten Sie es bei 115200, wie im Tutorial vorgeschlagen.
quelle
Haben Sie den TX vom Bluetooth-Modul erhalten, das mit dem RX-Pin des Arduino verbunden ist?
Wenn Sie haben, müssen Sie es beim Hochladen aushaken. Eine bessere Lösung besteht darin, nicht die TX RX-Pins des Arduino zu verwenden und stattdessen serielle Software zu verwenden.
Hier ist eine einfache Anleitung, die sich jedoch über einige Seiten erstreckt:
http://ianlangelectronic.webeden.co.uk/#/arduino-bluetooth/4583456314
Eine Bluetooth-Baudrate von mehr als 9600 wird nicht empfohlen. Der Arduino kämpft darum, mitzuhalten, wenn es viel schneller ist.
quelle
Die Baudrate hängt vom verwendeten Arduino-Modell ab. Für Pro-Micro; Pro-Mini und Nano, die ich benutze, mussten auf 57600 Baud umgestellt werden, da die DLL (Downlineloader) diese Baudrate erzwingt:
Für Mega beträgt die übergeordnete Baudrate 115200.
quelle
Die einfachste Möglichkeit, Ihr Arduino über Bluetooth (HC-05) zu programmieren, sind die folgenden Schritte
1: Ändern Sie die Baudrate des Bluetooth-Moduls mithilfe von Software-Seriel auf 57600. Dies ist alles, was Sie mit Ihrem Bluetooth tun müssen. Wenn Sie die Software-Seriel-Skizze verwenden, benötigen Sie keinen Ftdi-Konverter ( https://www.youtube.com/watch?v=zoJUAjW3vQ0 )
2: Der nächste Schritt besteht darin, eine sehr einfache und kleine Schaltung für den Reset-Pin Ihres Bluetooth-Moduls wie die in diesem Youtube-Link zu erstellen (die Schaltung, von der ich spreche, ist eine Schaltung aus einem NPN-Transistor, einem 0,01-Kondensator und Bei einem 10-k-Widerstand ist die Schaltung wie ein Signalinverter oder so etwas ( https://www.youtube.com/watch?v=xXUKfTNHkKE ). Sie finden die Schaltung in der Mitte des Videos.
Ich habe es getan und es funktioniert,
Danke, dass du Arman gelesen hast
quelle