利用RGB-LED模块中R颜色发光二级管和G颜色发光二级管来模拟一个十字路口单方向的红绿灯控制功能(B颜色发光二级管不用) (1)绿灯先亮10s(前7秒绿灯常亮,后3秒绿灯闪烁(0.5秒闪亮一次)) (2)绿灯灭,等待0.5s,然后黄灯亮3s; 说明:由于模块上没有黄色的发光二极管。可以用红灯和绿灯同时亮来模拟黄灯; (3)黄灯灭,等待0.5s,红灯亮10s; (4)反复循环上次过程,知道按住“ctrl+c” 结束
时间: 2023-03-26 10:03:39 浏览: 195
可以使用以下代码实现:
#include <stdio.h>
#include <wiringPi.h>
#define RED_PIN // 红灯引脚
#define GREEN_PIN 1 // 绿灯引脚
int main(void) {
wiringPiSetup(); // 初始化wiringPi库
pinMode(RED_PIN, OUTPUT); // 设置红灯引脚为输出模式
pinMode(GREEN_PIN, OUTPUT); // 设置绿灯引脚为输出模式
while (1) {
// 绿灯亮10s
digitalWrite(GREEN_PIN, HIGH); // 绿灯常亮
delay(700); // 延时7s
for (int i = ; i < 6; i++) {
digitalWrite(GREEN_PIN, HIGH); // 绿灯亮
delay(500); // 延时.5s
digitalWrite(GREEN_PIN, LOW); // 绿灯灭
delay(500); // 延时.5s
}
// 黄灯亮3s
digitalWrite(RED_PIN, HIGH); // 红灯亮
digitalWrite(GREEN_PIN, HIGH); // 绿灯亮
delay(500); // 延时.5s
digitalWrite(GREEN_PIN, LOW); // 绿灯灭
delay(250); // 延时2.5s
// 红灯亮10s
digitalWrite(RED_PIN, HIGH); // 红灯亮
digitalWrite(GREEN_PIN, LOW); // 绿灯灭
delay(10000); // 延时10s
// 灯灭
digitalWrite(RED_PIN, LOW); // 红灯灭
delay(500); // 延时.5s
}
return ;
}
阅读全文