Phần mềm có bị bỏ lại cho ATTiny85 / 84 không?


8

Tôi muốn sử dụng SoftwareSerial với ATTiny85 của tôi và khi tôi google, một số dự án tuyên bố rằng họ đang sử dụng nó ... Tôi đã tải xuống phần cứng từ https://code.google.com.vn/p/arduino-tiny/ , nhưng khi tôi thử để thêm SoftwareSerial và biên dịch tôi nhận được:

fatal error: SoftwareSerial.h: No such file or directory

Chuyển đổi bảng thành UNO làm cho vấn đề biến mất, vậy họ có bỏ nó không? Làm thế nào tôi có thể sửa lỗi này?


Không thể trùng lặp.
Ignacio Vazquez-Abrams

Tôi đã sao chép với Arduino IDE 1.6.3 và tìm thấy câu trả lời (bên dưới).
Eric Lee

Câu trả lời:


6

Câu trả lời ngắn - không. Nó không bị bỏ rơi, trái lại.

Nhưng trước khi xử lý lỗi trình biên dịch mà bạn đã đề cập, hãy làm rõ một chút:

Tôi đã tải xuống phần cứng từ https://code.google.com.vn/p/arduino-tiny/

Liên kết bạn cung cấp không phải là phần cứng , mà là phần mềm được gọi là tệp lõi ATtiny . Nó chứa các tệp cần thiết sẽ giúp bạn biên dịch và tải mã từ Arduino IDE lên ATtiny (ngay cả khi sử dụng ArduinoISP làm lập trình viên).

Các SoftwareSerial là một thư viện mà đi kèm với các Arduino IDE zip / cài đặt. Nếu bạn đã tải xuống phiên bản Arduino IDE mới nhất từ Trang web Arduino , bạn sẽ có thể tìm thấy các tệp thư viện SoftwareSerial có tại:

[Path to Arduino installation folder]\libraries\SoftwareSerial

Ví dụ cho các tệp thư viện SoftwareSerial bạn nên tìm thấy có SoftwareSerial.cppSoftwareSerial.h .

lỗi nghiêm trọng: SoftwareSerial.h: Không có tệp hoặc thư mục như vậy

Lỗi trình biên dịch mà bạn nhận được dường như ngụ ý rằng trình biên dịch không thể tìm thấy tệp tiêu đề (SoftwareSerial.h) cho thư viện SoftwareSerial. Điều này thực sự có vẻ khá kỳ lạ, vì thư viện này không yêu cầu cài đặt đặc biệt nào, và như đã đề cập, là một phần của các thư viện được tích hợp trong bản cài đặt Arduino IDE.

Vì vậy, để giảm thiểu điều này, tôi khuyên bạn nên:

  • Đảm bảo thư mục thư viện tồn tại ở vị trí được đề cập ở trên
  • Nếu không, có lẽ bạn nên tải xuống lại bản cài đặt Arduino IDE và sau đó cài đặt các tệp lõi ATtiny theo hướng dẫn (quan trọng!). Hướng dẫn cài đặt được đặt trong tệp README bên trong tệp zip lõi ATTiny (tiny \ avr \ README).
  • Nếu nó tồn tại và bạn vẫn gặp lỗi trình biên dịch này, thì bạn phải cài đặt bị hỏng (có lẽ trình biên dịch bao gồm các thư mục bị rối). Tôi vẫn sẽ khuyên bạn nên cài đặt lại như đã đề cập trong phần trước.
  • Đảm bảo rằng bạn có thể tìm thấy ATtiny 85 trong danh sách bảng, tại Công cụ-> Bảng và nó được chọn.
  • Một góc độ khác có thể làm sáng tỏ hơn về lỗi này, đó là bật đầu ra dài dòng cho trình biên dịch (bạn có thể thực hiện điều đó trong Arduino IDE, bằng cách chọn File-> Preferences-> "Hiển thị đầu ra dài dòng trong khi" và kiểm tra "biên dịch "). Đầu ra dài dòng có thể giúp bạn theo dõi bất kỳ lỗi dòng lệnh trình biên dịch nào, như thiếu các thư mục bao gồm.
  • Cuối cùng nhưng không kém phần quan trọng, nếu thư mục SoftwareSerial tồn tại, bạn có thể sử dụng Arduino IDE để kiểm tra xem IDE có thể xác định sự tồn tại của nó hay không, bằng cách truy cập Sketch-> Nhập thư viện và tìm kiếm SoftwareSerial . Nếu nó không ở đó, thì thư mục không được đặt đúng trong 'thư viện', hãy xác minh đường dẫn như đã đề cập ở trên (bạn đã di chuyển nó chưa?)

Cuối cùng, khi bạn có thể biên dịch mã của mình, hãy thử sử dụng ví dụ SoftwareSerial đi kèm với thư viện để kiểm tra nó. Lưu ý rằng nó sẽ không hoạt động 'ngoài luồng' như với Arduino Uno; ATtiny không có phần cứng FTDI tương tự để giao tiếp trực tiếp với USB, vì vậy để gửi và nhận tin nhắn nối tiếp bằng ATtiny, bạn sẽ phải sử dụng Arduino Uno làm proxy (sử dụng chân Uno 0 & 1) hoặc sử dụng chuyên dụng Phần cứng USB to serial tương tự như cái này .

Chuyển đổi bảng thành UNO làm cho vấn đề biến mất

Một lưu ý phụ, việc chuyển sang Uno sẽ khiến hầu hết các vấn đề về ATtiny 'biến mất' vì Uno được trang bị nhiều hơn ATtiny85 / 4, cả ở cấp độ MCU và ở cấp độ bảng đột phá mà bạn gặp phải với Uno (và mà bạn không nhận được khi làm việc trực tiếp với chip như ATtiny). Ngoài ra, hầu hết các cơ sở mã ngoài đó đang nhắm mục tiêu Uno chứ không phải ATTiny. Vì vậy, nếu bạn đang thực hiện những bước đầu tiên với ATtiny, hãy chuẩn bị rằng nhiều thứ 'vừa hoạt động' với Uno sẽ yêu cầu thêm / mã khác trước khi chúng có thể hoạt động với ATtiny (và một số sẽ không hoạt động).

Bạn có thể sử dụng mã Analog to serial đơn giản của tôi:

/*
Takes an input on the AtTiny85 from the VERY TRICKY analogue input pin 2 (as labeled in HLT tutorial)
 and outputs these with Software serial to the arduino uno, or Duemillanove
 Hookup
 ATTINY85 pin 3 -> Arduino Uno pin 0
 ATTINY85 pin 4 -> Arduino Uno pin 1

http://www.instructables.com/id/Easy-ATTiny-Serial-Communication-with-Tiny-AVR-Pro/
 */


#include <SoftwareSerial.h>
// Definitions
#define rxPin 4
#define txPin 3
SoftwareSerial mySerial(rxPin, txPin);
int sensorPin = 7; //ACTUALLY PIN LABELED AS "2" on the HLT tutorial
int sensorVal = -1;


// the setup routine runs once when you press reset:
void setup() {
  pinMode(sensorPin, INPUT);
  mySerial.begin(9600);
analogWrite(0,1); // This is kind a heart beat to show the ATTINY is "alive"
}

// the loop routine runs over and over asensorpingain forever:
void loop() {
  sensorVal = analogRead(sensorPin);
  mySerial.print("Input Val: ");
  mySerial.print(sensorVal);
  mySerial.println();
}

3

Dưới đây bạn có thể tìm thấy mã cho việc triển khai nối tiếp bit-bang tối thiểu phù hợp lý tưởng để gỡ lỗi. Kích thước mã khoảng 60 byte.

Nó cung cấp 38400 baud cho 1 MHz hoặc 230400 baud trên đồng hồ Attiny 8 MHz.

Tôi đã viết nó cho một Attiny 85.

ArminJo / AttinySendSerial_1Mhz_38400Bd


0

Tôi gặp vấn đề tương tự và dường như với Arduino IDE 1.6.x, các thư viện được định nghĩa "trên mỗi bảng" và không được chia sẻ nữa. Ít nhất, không phải tất cả các thư viện đều được chia sẻ và SoftwareSerial dường như là một trong số đó.

Vì vậy, giải pháp là sao chép thư viện SoftwareSerial từ bản cài đặt Arduino tại [programs]/Arduino/hardware/arduino/avr/libraries/SoftwareSerialthư mục phần cứng ATTiny của bạn tại [documents]/Arduino/hardware/tiny/avr/libraries/SoftwareSerialvà khởi động lại IDE, theo [luồng này]. 1


0

Có, trong IDE 1.6.x, các thư viện được định nghĩa "trên mỗi bảng", chúng nằm trong các thư mục đặc biệt và được cung cấp bởi sự ẩn dụ của gói bảng. Thư viện của Digispark được đặt tên là SoftSerial và được bao gồm. Trong IDE Kiểm tra tệp / ví dụ / DigisparkSoftSerial. Ngoài ra, hãy kiểm tra https://digistump.com/wiki/digispark/tutorials/debugging

Nói tóm lại, bạn phải bao gồm:

   #include <SoftSerial.h>
   #include <TinyPinChange.h> 

và sau đó xác định các chân RX và TX (cũng có thể giống nhau trong các trường hợp đặc biệt):

   SoftSerial mySerial(SOFT_RX_PIN, SOFT_TX_PIN); // RX, TX

Sau đó sử dụng mySerial.println()& co.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.