วิธีเชื่อมต่อ Shift Register กับ Arduino

สารบัญ:

วิธีเชื่อมต่อ Shift Register กับ Arduino
วิธีเชื่อมต่อ Shift Register กับ Arduino

วีดีโอ: วิธีเชื่อมต่อ Shift Register กับ Arduino

วีดีโอ: วิธีเชื่อมต่อ Shift Register กับ Arduino
วีดีโอ: 74HC595 & 74HC165 Shift Registers with Arduino 2024, พฤศจิกายน
Anonim

ในบทความก่อนหน้านี้ เราได้กล่าวถึงการใช้ shift register โดยเฉพาะอย่างยิ่ง 74HC595 แล้ว มาดูความสามารถและขั้นตอนการทำงานกับไมโครเซอร์กิตนี้กันดีกว่า

ทะเบียนกะ 74HC595
ทะเบียนกะ 74HC595

จำเป็น

  • - Arduino;
  • - กะทะเบียน 74HC595;
  • - สายเชื่อมต่อ

คำแนะนำ

ขั้นตอนที่ 1

Shift register 74HC595 และอื่นๆ ใช้เป็นอุปกรณ์สำหรับแปลงข้อมูลซีเรียลเป็นแบบขนาน และยังสามารถใช้เป็น "สลัก" สำหรับข้อมูล โดยคงสถานะการถ่ายโอนไว้

pinout (pinout) จะแสดงในรูปทางด้านซ้าย จุดประสงค์ของพวกเขามีดังนี้

Q0… Q7 - เอาต์พุตข้อมูลแบบขนาน

GND - กราวด์ (0 V);

Q7 '- เอาท์พุทข้อมูลแบบอนุกรม;

^ MR - รีเซ็ตต้นแบบ (ใช้งานต่ำ);

SHcp - อินพุตนาฬิกาลงทะเบียนกะ;

STcp - อินพุตพัลส์นาฬิกา "สลัก";

^ OE - เปิดใช้งานเอาต์พุต (ใช้งานต่ำ);

Ds - การป้อนข้อมูลแบบอนุกรม

Vcc - แหล่งจ่ายไฟ +5 V.

โครงสร้างไมโครเซอร์กิตทำขึ้นในหลายกรณี ฉันจะใช้อันที่แสดงในรูปด้านขวา - ผลลัพธ์ - เพราะ มันง่ายกว่าที่จะใช้กับเขียงหั่นขนม

Shift register ลักษณะที่ปรากฏและ pinout
Shift register ลักษณะที่ปรากฏและ pinout

ขั้นตอนที่ 2

ให้ฉันจำอินเทอร์เฟซอนุกรม SPI สั้น ๆ ซึ่งเราจะใช้ในการถ่ายโอนข้อมูลไปยัง shift register

SPI เป็นอินเทอร์เฟซแบบอนุกรมแบบสองทิศทางแบบสี่สายซึ่งมีมาสเตอร์และทาสเข้าร่วม ต้นแบบในกรณีของเราคือ Arduino ทาสจะลงทะเบียน 74HC595

สภาพแวดล้อมการพัฒนาสำหรับ Arduino มีไลบรารีในตัวสำหรับการทำงานกับอินเทอร์เฟซ SPI เมื่อใช้จะใช้ข้อสรุปที่ระบุไว้ในรูป:

SCLK - เอาต์พุตนาฬิกา SPI;

MOSI - ข้อมูลจากมาสเตอร์ถึงทาส

MISO - ข้อมูลจากทาสถึงมาสเตอร์

SS - การเลือกทาส

หมุด SPI มาตรฐานของบอร์ด Arduino
หมุด SPI มาตรฐานของบอร์ด Arduino

ขั้นตอนที่ 3

มาประกอบวงจรตามรูปเลยครับ

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

แผนภาพการเดินสายไฟสำหรับ shift register 74HC595 ไปยัง Arduino
แผนภาพการเดินสายไฟสำหรับ shift register 74HC595 ไปยัง Arduino

ขั้นตอนที่ 4

มาเขียนสเก็ตช์แบบนี้แล้วโหลดลงในหน่วยความจำ Arduino

ตัวแปร PIN_SPI_SS เป็นค่าคงที่มาตรฐานภายในที่สอดคล้องกับพิน "10" ของ Arduino เมื่อใช้เป็นต้นแบบของอินเทอร์เฟซ SPI ที่เราใช้ที่นี่ โดยหลักการแล้ว เราสามารถใช้พินดิจิทัลอื่นๆ บน Arduino ได้เช่นกัน จากนั้นเราจะต้องประกาศและตั้งค่าโหมดการทำงาน

โดยการป้อนพินนี้ LOW เราเปิดใช้งาน shift register เพื่อส่ง / รับ หลังจากการส่งสัญญาณ เราเพิ่มแรงดันไฟฟ้าเป็น HIGH อีกครั้ง และการแลกเปลี่ยนจะสิ้นสุดลง

ภาพร่างเพื่อแสดงการทำงานของรีจิสเตอร์กะ
ภาพร่างเพื่อแสดงการทำงานของรีจิสเตอร์กะ

ขั้นตอนที่ 5

มาเปลี่ยนวงจรของเราให้กลายเป็นงานและดูว่าตัววิเคราะห์ลอจิกแสดงอะไรให้เราเห็น มุมมองทั่วไปของไดอะแกรมเวลาแสดงในรูป

เส้นประสีน้ำเงินแสดง 4 เส้น SPI เส้นประสีแดงแสดง 8 ช่องข้อมูลคู่ขนานของการลงทะเบียนกะ

จุด A บนมาตราส่วนเวลาคือช่วงเวลาที่โอนหมายเลข "210" ไปยัง shift register, B คือช่วงเวลาที่เขียนหมายเลข "0", C คือวัฏจักรที่เกิดซ้ำตั้งแต่ต้น

อย่างที่คุณเห็น จาก A ถึง B - 10.03 มิลลิวินาที และจาก B ถึง C - 90.12 มิลลิวินาที เกือบจะเหมือนกับที่เราถามในภาพร่าง การเพิ่มเล็กน้อยใน 0, 03 และ 0, 12 ms คือเวลาสำหรับการถ่ายโอนข้อมูลอนุกรมจาก Arduino ดังนั้นเราจึงไม่มี 10 และ 90 ms ที่นี่

ไดอะแกรมกำหนดเวลาของการแลกเปลี่ยน Arduino และ shift register 74HC595
ไดอะแกรมกำหนดเวลาของการแลกเปลี่ยน Arduino และ shift register 74HC595

ขั้นตอนที่ 6

มาดูส่วน A กันดีกว่า

ที่ด้านบนสุดคือพัลส์ยาวที่ Arduino เริ่มต้นการส่งสัญญาณบนสาย SPI-ENABLE - การเลือกทาส ในขณะนี้ เริ่มสร้างพัลส์นาฬิกา SPI-CLOCK (บรรทัดที่สองจากด้านบน) 8 ชิ้น (สำหรับการถ่ายโอน 1 ไบต์)

บรรทัดถัดไปจากด้านบนคือ SPI-MOSI - ข้อมูลที่เราถ่ายโอนจาก Arduino ไปยัง shift register นี่คือหมายเลข "210" ของเราในรูปแบบไบนารี - "11010010"

หลังจากการถ่ายโอนเสร็จสิ้น ในตอนท้ายของพัลส์ SPI-ENABLE เราจะเห็นว่าการลงทะเบียนกะได้ตั้งค่าเดียวกันบน 8 ขา ฉันได้เน้นสิ่งนี้ด้วยเส้นประสีน้ำเงินและระบุค่าเพื่อความชัดเจน

การตั้งค่าหมายเลข 210 บนบัสขนานผ่านSPI
การตั้งค่าหมายเลข 210 บนบัสขนานผ่านSPI

ขั้นตอนที่ 7

ตอนนี้เรามาสนใจส่วน B กัน

อีกครั้ง ทุกอย่างเริ่มต้นด้วยการเลือกทาสและสร้างพัลส์นาฬิกา 8 ครั้ง

ข้อมูลในบรรทัด SPI-MOSI ตอนนี้เป็น "0"นั่นคือในขณะนี้เราเขียนหมายเลข "0" ลงในการลงทะเบียน

แต่จนกว่าการโอนจะเสร็จสมบูรณ์ การลงทะเบียนจะเก็บค่า "11010010" มันถูกส่งออกไปยังพินขนาน Q0.. Q7 และส่งออกเมื่อมีพัลส์นาฬิกาในบรรทัดจากเอาต์พุตขนาน Q7 'ไปยังบรรทัด SPI-MISO ซึ่งเราเห็นที่นี่

การตั้งค่าหมายเลข 0 บนบัสขนานผ่าน SPI
การตั้งค่าหมายเลข 0 บนบัสขนานผ่าน SPI

ขั้นตอนที่ 8

ดังนั้นเราจึงได้ศึกษารายละเอียดปัญหาการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์หลัก ซึ่งก็คือ Arduino และรีจิสเตอร์ 74HC595 shift เราเรียนรู้วิธีเชื่อมต่อ shift register เขียนข้อมูลลงในนั้นและอ่านข้อมูลจากมัน

แนะนำ: