包装盒及配件质量看起来都不错
代码
- // 汽车灯
- int carRed = 12;
- int carYellow = 10;
- int carGreen = 8;
-
- // 开关
- int button = 7;
- unsigned long changeTime; // 按钮按下后的时间
-
- // 行人灯
- int pedRed = 1;
- int pedGreen = 3;
- int crossTime = 5000; // 行人通过时间
-
- // 等待变灯时间
- int waitTime = 5000;
-
- void setup() {
- setOutput(1);
- setOutput(3);
- setOutput(8);
- setOutput(10);
- setOutput(12);
- // 设置按钮为输入
- pinMode(button, INPUT);
-
- // 初始状态
- // 汽车
- digitalWrite(carGreen, HIGH); // 绿灯亮
- // 行人
- digitalWrite(pedRed, HIGH); // 红灯亮
- }
-
- // 设置指定针脚输出
- void setOutput(int pin) {
- pinMode(pin, OUTPUT);
- }
-
- // 改变信息号灯
- void changeLights() {
- // 汽车
- digitalWrite(carGreen, LOW); // 绿灯灭
- digitalWrite(carYellow, HIGH); // 黄灯亮
- delay(2000);
- digitalWrite(carYellow, LOW); // 黄灯灭
- digitalWrite(carRed, HIGH); // 红灯亮
- delay(1000);
-
- // 行人
- digitalWrite(pedRed, LOW); // 红灯灭
- digitalWrite(pedGreen, HIGH); // 绿灯亮
- // 等待行人通过
- delay(crossTime);
- // 闪烁
- pedLightFlash();
- digitalWrite(pedRed, HIGH); // 红灯亮
- delay(500);
-
- // 汽车
- digitalWrite(carRed, LOW); // 红灯灭
- digitalWrite(carYellow, HIGH); // 黄灯亮
- delay(1000);
- digitalWrite(carYellow, LOW); // 黄灯灭
- digitalWrite(carGreen, HIGH); // 绿灯亮
-
- changeTime = millis(); // 记录上一次灯变化的时间
- }
-
- // 行人灯闪烁
- void pedLightFlash() {
- for (int i = 0; i < 10; i++) {
- digitalWrite(pedGreen, HIGH);
- delay(250);
- digitalWrite(pedGreen, LOW);
- delay(250);
- }
- }
-
- void loop() {
- int state = digitalRead(button);
- if (state == HIGH && (millis() - changeTime) > waitTime) {
- changeLights();
- }
- }
复制代码
第一次接线,开关忘记接电阻了,信号灯自动切换,加上电阻就好了,还是不够细心。
产品及文档都不错。继续学习。
|