Je veux utiliser SoftwareSerial avec mon ATTiny85 et quand je le google plusieurs projets affirment qu'ils l'utilisent ... J'ai téléchargé le matériel depuis https://code.google.com/p/arduino-tiny/ , mais quand j'essaye pour ajouter SoftwareSerial et compiler j'obtiens:
fatal error: SoftwareSerial.h: No such file or directory
Passer la carte sur UNO fait disparaître le problème, alors l'ont-ils laissé de côté? Comment puis-je réparer cela?
serial
attiny
softwareserial
Jason94
la source
la source
Réponses:
Réponse courte - non. Ce n'est pas laissé de côté, au contraire.
Mais avant d'aborder l'erreur de compilation que vous avez mentionnée, une petite clarification:
Le lien que vous avez fourni n'est pas du matériel , mais un logiciel appelé fichiers de base ATtiny . Il contient les fichiers nécessaires qui vous aideront à compiler et à télécharger du code depuis Arduino IDE vers ATtiny (même lorsque vous utilisez ArduinoISP comme programmeur).
Le SoftwareSerial est une bibliothèque qui vient avec le zip / installation Arduino IDE. Si vous avez téléchargé la dernière version d'Arduino IDE à partir du site Web Arduino , vous devriez pouvoir trouver les fichiers de la bibliothèque SoftwareSerial situés à:
Exemple de fichiers de bibliothèque SoftwareSerial que vous devriez vous attendre à trouver: SoftwareSerial.cpp et SoftwareSerial.h .
L'erreur de compilation que vous recevez semble impliquer que le compilateur ne peut pas trouver le fichier d'en-tête (SoftwareSerial.h) pour la bibliothèque SoftwareSerial. Cela semble en effet assez étrange, car cette bibliothèque ne nécessite aucune installation spéciale et, comme mentionné, fait partie des bibliothèques intégrées à l'installation Arduino IDE.
Donc, pour atténuer cela, je recommanderais que vous:
Enfin, lorsque vous pourrez compiler votre code, essayez d'utiliser l'exemple SoftwareSerial fourni avec la bibliothèque pour le vérifier. Notez que cela ne fonctionnera pas «prêt à l'emploi» comme avec l'Arduino Uno; L'ATtiny n'a pas le même matériel FTDI pour communiquer directement avec USB, donc pour envoyer et recevoir des messages série en utilisant l'Attiny, vous devrez soit utiliser l'Arduino Uno comme proxy (en utilisant les broches 0 et 1 de l'Uno), soit utiliser des Matériel USB vers série similaire à celui-ci .
En passant, le passage à l'Uno fera disparaître la plupart des problèmes ATtiny puisque l'Uno est beaucoup plus équipé que ATtiny85 / 4, à la fois au niveau du MCU et au niveau de la carte de dérivation, que vous obtenez avec l'Uno (et que vous n'obtenez pas lorsque vous travaillez directement avec une puce comme ATtiny). En outre, la plupart des bases de code ciblent l'Uno et non ATTiny. Donc, si vous faites vos premiers pas avec ATtiny, préparez-vous à ce que beaucoup de choses qui `` fonctionnent juste '' avec Uno nécessitent un code supplémentaire / différent avant de pouvoir fonctionner avec ATtiny (et certaines ne fonctionneront pas du tout).
Vous pouvez utiliser mon simple code analogique-série:
la source
Ci-dessous, vous pouvez trouver le code pour une implémentation série minimale de bit-bang send idéalement adapté au débogage. La taille du code est d'environ 60 octets.
Il donne 38400 bauds pour 1 MHz ou 230400 bauds sur une horloge Attiny de 8 MHz.
Je l'ai écrit pour un Attiny 85.
ArminJo / AttinySendSerial_1Mhz_38400Bd
la source
J'ai eu le même problème et il apparaît qu'avec Arduino IDE 1.6.x, les bibliothèques sont définies "par carte" et ne sont plus partagées. Au moins, toutes les bibliothèques ne sont pas partagées, et SoftwareSerial semble être l'une d'entre elles.
La solution consiste donc à copier la bibliothèque SoftwareSerial de l'installation Arduino à
[programs]/Arduino/hardware/arduino/avr/libraries/SoftwareSerial
dans votre dossier matériel ATTiny à[documents]/Arduino/hardware/tiny/avr/libraries/SoftwareSerial
, et à redémarrer l'IDE, selon [ce fil]. 1la source
Oui, dans IDE 1.6.x, les bibliothèques sont définies "par carte", elles résident dans des dossiers spéciaux et sont fournies par l'atuhor du paquet de cartes. La bibliothèque de Digispark s'appelle SoftSerial et est incluse. Dans IDE, vérifiez Fichier / Exemples / DigisparkSoftSerial. Consultez également https://digistump.com/wiki/digispark/tutorials/debugging
En bref, vous devez inclure:
puis définissez les broches RX et TX (peuvent également être les mêmes dans des cas particuliers):
Utilisez ensuite
mySerial.println()
& co.la source