int big = 2;
int push = 3;
int datain = 4;
void setup()
{
Serial.begin(9600);
pinMode(big, OUTPUT);
pinMode(push, OUTPUT);
pinMode(datain, OUTPUT);
}
void loop()
{
int num=1;
for (int i = 0; i < 8; i++)
{
Serial.println("kaishi");
digitalWrite(big, LOW);
int data = num;
//data分别为 1 2 4 8 16
//转换为二进制后分别取出每一位的值并写入到寄存器中
for (int j = 0; j < 8; j++)
{
digitalWrite(push, LOW);
digitalWrite(datain, data & 1);
data = data >> 1;
digitalWrite(push, HIGH);
}
digitalWrite(big, HIGH);
num = num<<1;
delay(1000);
}
}
![原理图](https://img2020.cnblogs.com/blog/1870349/202006/1870349-20200617012008378-732977583.png)
![电路图](https://raw.githubusercontent.com/Chilkings/blog_image/master/20200617011600.png)