Xem chó hẹn giờ + Arduino


8

Làm thế nào để tôi thiết lập một bộ đếm thời gian con chó theo dõi phần cứng với Arduino?


2
Tôi nghĩ bạn nên chọn câu trả lời khác vì Arduino có bộ đồng hồ tích hợp.
Matt Williamson

Câu trả lời:


7

Có một số chip giám sát phần cứng chuyên dụng có sẵn, nhưng nó đủ dễ để sử dụng IC hẹn giờ 555 thông thường và một vài bộ phận hỗ trợ. Với cấu hình 555 được định cấu hình ở chế độ astable với khoảng thời gian "CAO" rất dài và thời gian "THẤP" tương đối ngắn (có thể là 0,3 giây), đầu ra có thể được kết nối với chân thiết lập lại của Arduino thông qua một diode để biến bộ theo dõi thành một bộ thu mở thiết bị. Arduino sau đó có thể định kỳ thiết lập lại bộ giám sát bằng cách sử dụng đầu ra kỹ thuật số để bật một bóng bán dẫn xả tụ điện thời gian gắn vào 555, ngăn không cho nó đạt đến điểm kích hoạt sẽ khiến nó đặt lại Arduino.

Một số thông tin cơ bản về một dự án để thực hiện điều này có sẵn tại http://www.prrealarduino.com/news/id/471


1
phooky hoàn toàn chính xác, nhưng WDT nội bộ có những hạn chế: nó không thể chạy quá 6 giây (tùy thuộc vào kiểu CPU) và không có cách nào để thực hiện "khởi động lại" hoàn toàn từ phần mềm. Bạn có thể yêu cầu CPU nhảy đến vị trí 0 và khởi động lại bộ tải khởi động, nhưng sau đó bạn có thể bị bỏ lại những thứ tinh ranh trong RAM và những thứ như cờ ngắt vẫn được đặt trong CPU. Khẳng định RESET trong phần cứng đảm bảo Arduino sẽ có được môi trường sạch sẽ.
jonoxer

2
để hết thời gian WDT sẽ gây ra "thiết lập lại sạch" vì tất cả các thanh ghi sẽ được đảm bảo khởi động ở trạng thái xác định. Hoàn thành nó trong phần mềm cũng đơn giản như vô hiệu hóa các ngắt và lặp vô tận.
Nick T

14

Đã có một bộ đếm thời gian theo dõi được tích hợp trong chip atmega; bạn có thể sử dụng avr/wdt.hđể thao tác nó.

Một ví dụ nhanh:

#include <avr/wdt.h>

void setup() {  
  wdt_enable(WDTO_500MS); // have the wdt reset the chip
  // if 500ms passes without a reset
}

void loop() {   
  wdt_reset(); // reset the wdt
}

3

Tôi đã nghe nói về một số vấn đề được báo cáo với WDT và bộ tải khởi động thông thường, vì vậy bạn có thể muốn thử một bộ tải khởi động khác với nó, ví dụ như Adaboot.

Ngoài ra, bạn có thể thực hiện nhiều công việc khác với WDT bên cạnh việc chỉ cần thiết lập lại. Tôi khuyên dùng http://www.atmel.com/dyn/resource/prod_document/doc2551.pdf

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.