Ich möchte SoftwareSerial mit meinem ATTiny85 verwenden, und wenn ich es google, behaupten mehrere Projekte, dass sie es verwenden ... Ich habe die Hardware von https://code.google.com/p/arduino-tiny/ heruntergeladen , aber wenn ich es versuche Um SoftwareSerial hinzuzufügen und zu kompilieren, bekomme ich:
fatal error: SoftwareSerial.h: No such file or directory
Wenn Sie das Board auf UNO umstellen, verschwindet das Problem. Haben sie es also weggelassen? Wie kann ich das beheben?
serial
attiny
softwareserial
Jason94
quelle
quelle
Antworten:
Kurze Antwort - nein. Es wird im Gegenteil nicht ausgelassen.
Bevor Sie sich jedoch mit dem von Ihnen erwähnten Compilerfehler befassen, eine kleine Klarstellung:
Bei dem von Ihnen angegebenen Link handelt es sich nicht um Hardware , sondern um Software , die als ATtiny-Kerndateien bezeichnet wird . Es enthält die erforderlichen Dateien, mit denen Sie Code aus der Arduino IDE kompilieren und in das ATtiny hochladen können (auch wenn Sie ArduinoISP als Programmierer verwenden).
Das SoftwareSerial ist eine Bibliothek, die mit der Arduino IDE-Zip / Installation geliefert wird. Wenn Sie die neueste Version von Arduino IDE von der Arduino-Website heruntergeladen haben , sollten Sie die SoftwareSerial-Bibliotheksdateien unter folgender Adresse finden:
Beispiel für SoftwareSerial-Bibliotheksdateien, von denen Sie erwarten sollten, dass sie SoftwareSerial.cpp und SoftwareSerial.h enthalten .
Der Compilerfehler, den Sie erhalten, scheint zu implizieren, dass der Compiler die Header-Datei (SoftwareSerial.h) für die SoftwareSerial-Bibliothek nicht finden kann. Dies scheint in der Tat ziemlich seltsam zu sein, da diese Bibliothek keine spezielle Installation erfordert und wie erwähnt Teil der Bibliotheken ist, die in die Arduino IDE-Installation integriert sind.
Um dies zu mildern, würde ich empfehlen, dass Sie:
Wenn Sie Ihren Code kompilieren können, überprüfen Sie ihn anhand des mit der Bibliothek gelieferten SoftwareSerial-Beispiels. Beachten Sie, dass es nicht wie beim Arduino Uno "out-of-the-box" funktioniert. Das ATtiny verfügt nicht über dieselbe FTDI-Hardware für die direkte Kommunikation mit USB. Für das Senden und Empfangen von seriellen Nachrichten mit dem ATtiny müssen Sie entweder das Arduino Uno als Proxy (mit den Pins 0 und 1 des Uno) oder dediziert verwenden USB zu serieller Hardware ähnlich dieser .
Nebenbei bemerkt, wenn Sie zum Uno wechseln, werden die meisten ATtiny-Probleme "verschwinden", da der Uno sowohl auf MCU-Ebene als auch auf Breakout-Board-Ebene, die Sie mit dem Uno (und) erhalten, viel besser ausgestattet ist als ATtiny85 / 4 was Sie nicht bekommen, wenn Sie direkt mit einem Chip wie ATtiny arbeiten). Außerdem zielt der größte Teil der Codebasis auf Uno und nicht auf ATTiny ab. Wenn Sie also Ihre ersten Schritte mit dem ATtiny ausführen, sollten Sie darauf vorbereitet sein, dass viele Dinge, die mit dem Uno "gerade funktioniert" haben, zusätzlichen / anderen Code erfordern, bevor sie mit dem ATtiny funktionieren können (und einige funktionieren überhaupt nicht).
Sie können meinen einfachen Analog-Serien-Code verwenden:
quelle
Unten finden Sie den Code für eine minimale serielle Bit-Bang-Send-Implementierung, die sich ideal zum Debuggen eignet. Die Codegröße beträgt ca. 60 Byte.
Es gibt 38400 Baud für 1 MHz oder 230400 Baud bei 8 MHz Attiny-Takt.
Ich habe es für einen Attiny 85 geschrieben.
ArminJo / AttinySendSerial_1Mhz_38400Bd
quelle
Ich hatte das gleiche Problem und es scheint, dass mit Arduino IDE 1.6.x Bibliotheken "pro Board" definiert und nicht mehr gemeinsam genutzt werden. Zumindest werden nicht alle Bibliotheken gemeinsam genutzt, und SoftwareSerial scheint eine davon zu sein.
Die Lösung besteht also darin, die SoftwareSerial-Bibliothek von der Arduino-Installation unter
[programs]/Arduino/hardware/arduino/avr/libraries/SoftwareSerial
in Ihren ATTiny-Hardwareordner unter zu kopieren[documents]/Arduino/hardware/tiny/avr/libraries/SoftwareSerial
und die IDE gemäß [diesem Thread] neu zu starten. 1quelle
Ja, in IDE 1.6.x werden Bibliotheken "pro Karte" definiert, sie befinden sich in speziellen Ordnern und werden vom Autor des Kartenpakets bereitgestellt. Die Bibliothek von Digispark heißt SoftSerial und ist enthalten. In IDE Check File / Examples / DigisparkSoftSerial. Überprüfen Sie auch https://digistump.com/wiki/digispark/tutorials/debugging
Kurz gesagt, müssen Sie Folgendes einschließen:
und definieren Sie dann RX- und TX-Pins (können in besonderen Fällen auch gleich sein):
Dann benutze
mySerial.println()
& co.quelle