学习Arduino差不多有半年了,在极客工坊也混了好久好久了;在此谢谢各位同仁以及各位大神的帮助,谢谢你们的代码、资料、和库等等…
第一次发帖,望大家看看有哪些不足以及需要改进的地方,谢谢!
闲言少叙,直接上图(霸气侧漏有木有,就假装有吧!!!)
ARDUIN 代码:
int latchPin = 12; //Arduino 连接到 74HC595 的引脚(Latch)
int clockPin = 4; //Arduino 连接到 74HC595 的引脚(Clock)
int dataPin = 8; //Arduino 连接到 74HC595 的引脚(Data)
int QE = 7;
int flag;
int i = 0;
void setup()
{
//设置引脚为输出模式
pinMode(QE, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(QE, LOW);
digitalWrite(latchPin, LOW); //设置 latchPin 为 LOW, 允许数据输入芯片
flag = Serial.read();
switch(flag)
{
case 1:
i = 86; //前进
break;
case 2:
i = 169; //后退
break;
case 3:
i = 0; //刹停
break;
case 4:
i = 228; //右转
break;
case 5:
i = 27; //左转
break;
}
shiftOut(i);
//设置 latch 引脚为 HIGH, 锁存数据并送出数据
digitalWrite(latchPin, HIGH);
}
void shiftOut(byte dataOut)
{
//在时钟上升沿送出 8 位数据
boolean pinState;
digitalWrite(dataPin, LOW); //清除移位寄存器, 为送数据做准备
digitalWrite(clockPin, LOW);
for(int i = 0; i <= 7; i++)
{
//送出数据的每一位
digitalWrite(clockPin, LOW); //在输出数据前设置 clockPin 引脚为LOW
//如果 dataOut 与位掩码进行逻辑或运算的结果是 ture, 设置pinState 为 HIGH
if(dataOut & (1 << i))
{
pinState = HIGH;
}
else
{
pinState = LOW;
}
//根据 pinState 设置 dataPin 为 HIGH 或 LOW
digitalWrite(dataPin, pinState); //在时钟上升沿送出数据
digitalWrite(clockPin, HIGH);
}
digitalWrite(clockPin, LOW);
}
帖子,整理的齐刷刷的,可是~~
APP真心不会传啊!!!
|