步驟1:修復LED。
修復紅色LED如圖所示,將其固定在面包板上,并用黃色LED固定在面包板上,然后將綠色LED固定在面包板上。
步驟2:固定電線和開關。
h2》
取兩條線并將其切換并固定到面包板上。如圖所示,將兩根導線的一根導線固定到面包板的負極,另一根導線固定到面包板的正極。
第3步:將電線固定到ARDUINO。
首先用LED的頂部接一根跳線來固定紅色。將LED固定到ARDUINO的4號插腳,并用另一根導線將黃色LED固定到ARDUINO的3號插針,將綠色LED固定到ARDUINO的2號插針,將紅色LED固定在ARDUINO的7號插針,將綠色的LED固定到ARDUINO的6號插針。 》
將LED的下部紅色LED接至ARDUINO接腳號10,將黃色LED接至ARDUINO接腳號9,將綠色LED接至ARDUINO接腳號8,將小的紅色LED接至ARDUINO接腳號13,將綠色LED接至ARDUINO接腳號12。
步驟4:固定ARDUINO
用一根導線將面包板正極固定到ARDUINO引腳接地。并用另一根線將ARDUINO 3.3V固定在面包板上,如圖所示。
ARDUINO程序。
//交通信號燈
//Ben Hovinga http://ben.hovinga.me
/燈光{GREEN,黃色,紅色,PEDGREEN,PEDRED}
詮釋燈[2] [5] = {{2,3,4,6,7},{8,9,10,12,13}};
//按鈕{light [0],light [1]}
int btn [] = {5,11};
//計時器
int tgreen = 30000;//30s
int tyellow = 3000;//3s
int tred = 3000;//3s
int tpedwarn = 5000;//5s(必須小于tgreen)
int tpedwarnint = 500;//0.5s(必須小于tpedwarn)
//其他Val。不要更改
int btnval = 0;
布爾pedwait [] = {false,false};
布爾pedactive [] = {false,false };
int direct = 0;
int stp = 1;
boolean stpset = false;
unsigned long now = 0 ;
unsigned long changeat = -1;
unsigned long changeatped = -1;
boolean pedredon = true;
//SETUP
void setup(){
//為(int x = 0; x 《2; x ++){
for(int y = 0; y 《5; y ++){
pinMode(light [x] [y],OUTPUT);
}
//開始所有停止的操作(紅色)
digitalWrite(light [x] [2],HIGH);
digitalWrite(light [x] [4],HIGH);
}
//為(int x = 0; x 《2; x ++){
pinMode(btn)分配按鈕
[x],INPUT);
}
}
//RUN
void loop(){
//更新時間
現在= millis();
//檢查是否按下按鈕
表示(int x = 0; x 《2; x ++){
btnval = digitalRead(btn [x]);
如果(btnval == HIGH){
pedwait [x] = true ;////我們有人在等待穿越
}
}
////進入
開關(stp){
//綠色
情況1:
//設置
if(stpset == false){
changeat =現在+ tgreen-tpedwarn;//設置計時器
//如果(pedwait [direct] == true){
//打開ped的燈光
》
digitalWrite(light [direct] [3],HIGH);
digitalWrite(light [direct] [4],LOW);
//設置一些變量/p》
pedwait [direct] =假;
pedactive [direct] =真;
pedredon =假;
}
//打開綠色
digitalWrite(light [direct] [0],HIGH);
//關閉紅色
digitalWrite(light [direct] [2],LOW);
stpset = true;//我們已經設置
}
//運行
else {
if(現在》 changeat){//
if(pedactive [direct] == true){
//關閉Ped
digitalWrite(light [direct] [3],LOW);
digitalWrite(light [direct] [4],HIGH);
pedredon = true;
}
//下一步
stp ++;
stpset = false;
}
}
中斷;
//警告ped(如果可能)
情況2:
//設置
if(stpset == false){
changeat = now + tpedwarn;
changeatped = now + tpedwarnint;
stpset = true;
}
//運行
else {
//如果(pedactive [direct] == true){
if(pedredon = = true && changeatped 《現在){
digitalWrite(light [direct] [4],LOW);
pedredon = false;
changeatped =現在+ tpedwarnint;
}
if(pedredon == false && changeat 《現在){
digitalWrite(light [direct] [4],HIGH);
pedredon = true;
changeatped = now + tpedwarnint;
}
}
if(now》 changeat){//計時
//關閉
digitalWrite(light [direct] [0],LOW);
digitalWrite(light [direct] [4],HIGH);
pedredon = true;
pedactive [direct] = false;
//下一步
stp ++;
stpset = false;
}
}
中斷;
//黃色
情況3:
//設置
if(stpset == false){
changeat = now + tyellow;
digitalWrite(light [direct] [1],HIGH);
stpset = true;
}
//運行
else {
if(現在》 changeat){//計時
//關閉
digitalWrite(light [direct] [1],LOW);
//下一步
stp ++;
stpset = false;
}
}
中斷;
//紅色
情況4:
//設置
if(stpset == false){
changeat = now + tred;
digitalWrite(light [direct] [2],HIGH);
stpset = true;
}
//運行
else {
如果(現在》 changeat) {//時間增加
//重新開始
stp = 1;
stpset = false;
//如果(direct == 1){
direct = 0;
}
else {
direct = 1;
}
}
}
中斷;
}
}
-
紅綠燈
+關注
關注
2文章
34瀏覽量
12150
發布評論請先 登錄
Momenta MNP記憶領航輔助駕駛系統輕松應對城市復雜路況
V2X技術全解析

工業數據采集網關:讓工廠 "開口說話" 的超級翻譯官

【ELF 2學習板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目-實現開機起動
【ELF 2學習板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈按鈕項目
【ELF 2學習板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目
2025款比亞迪漢家族OTA升級內測 智駕體驗大提升
高德地圖與長城汽車共建出行聯合創新LAB
基于CNN和英特爾開發板的紅綠燈控制系統設計

評論