กลับไปหน้ารวมไฟล์
attiny85-bi-direction-traffic-stop-light-73e83e.md

ประสิทธิภาพสถาปัตยกรรมขนาดเล็ก: การควบคุมการจราจรแบบสองทิศทาง

โปรเจกต์นี้สำรวจพลังของการประมวลผลสไตล์ "bare-metal" โดยการสร้างระบบควบคุมการจราจรที่ซับซ้อนบน ATtiny85 ซึ่งเป็นไมโครคอนโทรลเลอร์ 8 พินที่มี I/O จำกัด โดยการรวม 74HC595 Shift Register โปรเจกต์นี้แสดงให้เห็นถึงวิธีเอาชนะข้อจำกัดของพินเพื่อขับเคลื่อนองค์ประกอบภาพหลายรายการผ่านอินเทอร์เฟซแบบ serial-to-parallel

การเอาชนะข้อจำกัด I/O: The 74HC595 Shift Register

ATtiny85 มีเพียง 6 พิน I/O ที่ใช้งานได้ ซึ่งโดยปกติจะไม่เพียงพอสำหรับไฟจราจรสองแยก (6 LEDs)

  1. การส่งข้อมูลแบบ Bit-Banging: ATtiny85 ส่งข้อมูล 8 บิตแบบอนุกรมเข้าสู่ shift register โดยใช้เพียงสามพิน: Data, Clock และ Latch
  2. เอาต์พุตแบบ Parallel: เมื่อ Latch ถูกทริกเกอร์ shift register จะเก็บสถานะ (แดง/เหลือง/เขียว สำหรับสองทิศทาง) ผ่าน 8 พินเอาต์พุตพร้อมกัน
  3. การซิงโครไนซ์: สิ่งนี้ช่วยให้โค้ดอัปเดตสัญญาณไฟจราจรทั้งสองให้สอดคล้องกันอย่างสมบูรณ์ เพื่อให้มั่นใจว่าทิศทางหนึ่งจะเป็นสีแดงเสมอก่อนที่อีกทิศทางจะเปลี่ยนเป็นสีเขียว

ตรรกะการตั้งเวลาและสถานะความปลอดภัย

ซอฟต์แวร์ที่คอมไพล์โดยใช้ ATTinyCore สำหรับ Arduino IDE ได้ใช้ state machine ที่เข้มงวดเพื่อให้ตรงกับโปรโตคอลความปลอดภัยของการจราจรในโลกแห่งความเป็นจริง:

  • การเปลี่ยนเฟส: โค้ดมีการรวมช่วงเวลาเคลียร์ "All-Red" ที่จำเป็น เพื่อให้แน่ใจว่ารถยนต์จากเฟสสีเขียวก่อนหน้าได้เคลียร์ทางแยกแล้ว
  • การปรับเทียบ Clock: ทำงานที่ clock speed 1MHz ภายใน ทริกเกอร์การตั้งเวลาได้รับการปรับเทียบเพื่อให้ช่วงเวลาที่สมจริงสำหรับเมืองจำลองหรือการจำลองบนโต๊ะ
  • การเพิ่มประสิทธิภาพพลังงาน: เพื่อรักษาเสถียรภาพบน breadboard ระบบจะได้รับพลังงานจาก 5V DC Buck Converter เพื่อให้แน่ใจว่าการดึงกระแสสูงของ LEDs ที่ทำงานอยู่หลายตัวจะไม่ทำให้ microcontroller ที่ละเอียดอ่อนเกิดอาการ brown out

ประตูสู่การเรียนรู้อิเล็กทรอนิกส์แบบกำหนดเอง

สำหรับนักเรียนและผู้สนใจงานอดิเรก โปรเจกต์นี้เป็นสะพานเชื่อมที่สมบูรณ์แบบระหว่าง "การใช้ Arduino Board" และ "การออกแบบอุปกรณ์อิเล็กทรอนิกส์เฉพาะทางของคุณเอง" การเชี่ยวชาญ ATtiny85 ช่วยให้ผู้สร้างสามารถย่อขนาดโปรเจกต์ของตนให้เป็นตู้หุ้มถาวรระดับมืออาชีพ พิสูจน์ว่าคุณไม่จำเป็นต้องใช้โปรเซสเซอร์ขนาดใหญ่เพื่อจัดการกับลอจิสติกส์ที่ซับซ้อนในชีวิตจริง

นี่คือโปรเจกต์ง่ายๆ เพื่อเรียนรู้วิธีใช้ shift register (74hc595) กับชิป ATtiny85

โปรแกรมนี้เขียนขึ้นสำหรับ ATtiny85 โดยใช้ Arduino IDE และบอร์ด 'ATTinyCore' ซึ่งดูได้ที่: https://github.com/SpenceKonde/ATTinyCore

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ATtiny85 ดูได้ที่: https://www.microchip.com/wwwproducts/en/ATtiny85

ATtiny85 ได้รับการตั้งโปรแกรมด้วยโปรแกรมเมอร์ภายนอก และทำงานที่ clock speed 1MHz (ภายใน)

วงจรนี้ได้รับพลังงานจาก DC buck converter ภายนอกที่ทำงานที่ 5v

ข้อมูล Frontmatter ดั้งเดิม

title: "ATtiny85 - Bi-direction Traffic Stop Light"
description: "This is a simple Traffic Stop Light program written for an ATtiny85 & 74HC595 shift register."
author: "mattrude"
category: ""
tags:
  - "75hc595"
  - "shift register"
  - "transportation"
  - "attiny85"
views: 2377
likes: 0
price: 1120
difficulty: "Intermediate"
components:
  - "1x Tiny AVR Programmer"
  - "2x 5 mm LED: Yellow"
  - "2x 5 mm LED: Red"
  - "6x Resistor 220 ohm"
  - "1x Jumper wires (generic)"
  - "1x Solderless Breadboard Full Size"
  - "2x 5 mm LED: Green"
  - "1x ATtiny85"
  - "1x Shift Register- Serial to Parallel"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "2d004a76e04315fd926da77882b33b0ab3d808b5f0194029365c29a397f26d19"
encryptedPayload: "U2FsdGVkX18nFYwRmE9wtuC0wJpUvokyjAlp4TATDeZ5Xbb9JWGfBO6Yqf9KwBg887EHtQ3/bJ+jYclqrWJmY5M5aCXQD5h4oErSTi4sy1g="
seoDescription: "Simple Bi-direction Traffic Stop Light program using ATtiny85 and 74HC595 shift register."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/attiny85-bi-direction-traffic-stop-light-73e83e_cover.jpg"
lang: "th"