用移位寄存器来扩展 8位移位寄存器( 六 )


74HC595 和 74HC165 一起使用当然,将所有这些 LED 和开关连接起来而不采取额外的步骤将它们连接在一起将是一种浪费!所以让我们这样做 。
74HC595 和 74HC165 连接如果您像我一样在自己的无焊面包板上构建每个演示,那么将它们连接在一起非常简单 。

用移位寄存器来扩展 8位移位寄存器


在其中一个演示中将 Arduino 与其面包板断开连接,哪个并不重要 。将连接留在面包板上,以便您可以将它们重新连接到另一个 Arduino 。您可以将 5 伏和接地连接连接到其他面包板电源轨 。
完成后尝试在 Arduino 上运行之前的代码,一切都应该仍然有效 。如果某些东西不起作用,请检查您的接线,当您加入项目时,某些东西可能已断开连接 - 这里有很多电线!
测试完所有内容后,就可以查看代码以同时使用 74HC165 和 74HC595 。
74HC595 和 74HC165 代码 1由于我们的演示本质上是将两个演示融合在一起,因此我们的代码完全相同 。你会看到这个代码和之前的代码有很多相似之处,这并非偶然——其中一些是字面上的剪切和粘贴!
代码的目的是简单地使用 LED 来显示按钮的状态 。作为演示,它运行良好 。我保证在这之后我们会继续做一些更令人兴奋的事情!
/*  74HC595 & 74HC165 Shift Register Demonstration  74hc595-to-74ch165.ino  Input for 8 pushbuttons using 74HC165  Output to 0 LEDs using 74HC595   DroneBot Workshop 2020  https://dronebotworkshop.com*/ // Define Connections to 74HC165 // PL pin 1int load = 7;// CE pin 15int clockEnablePin = 4;// Q7 pin 7int dataIn = 5;// CP pin 2int clockIn = 6; // Define Connections to 74HC595 // ST_CP pin 12const int latchPin = 10;// SH_CP pin 11const int clockPin = 11;// DS pin 14const int dataPin = 12; void setup () {   // Setup Serial Monitor  Serial.begin(9600);   // 74HC165 pins  pinMode(load, OUTPUT);  pinMode(clockEnablePin, OUTPUT);  pinMode(clockIn, OUTPUT);  pinMode(dataIn, INPUT);   // 74HC595 pins  pinMode(latchPin, OUTPUT);  pinMode(clockPin, OUTPUT);  pinMode(dataPin, OUTPUT); }  void loop() {   // Read Switches   // Write pulse to load pin  digitalWrite(load, LOW);  delayMicroseconds(5);  digitalWrite(load, HIGH);  delayMicroseconds(5);   // Get data from 74HC165  digitalWrite(clockIn, HIGH);  digitalWrite(clockEnablePin, LOW);  byte incoming = shiftIn(dataIn, clockIn, LSBFIRST);  digitalWrite(clockEnablePin, HIGH);   // Print to serial monitor  Serial.print(Pin States:rn);  Serial.println(incoming, BIN);    // Write to LEDs   // ST_CP LOW to keep LEDs from changing while reading serial data  digitalWrite(latchPin, LOW);   // Shift out the bits  shiftOut(dataPin, clockPin, LSBFIRST, ~incoming);   // ST_CP HIGH change LEDs  digitalWrite(latchPin, HIGH);   delay(500); }

推荐阅读