步驟1:修復(fù)LED。
修復(fù)紅色LED如圖所示,將其固定在面包板上,并用黃色LED固定在面包板上,然后將綠色LED固定在面包板上。
步驟2:固定電線和開關(guān)。
h2》
取兩條線并將其切換并固定到面包板上。如圖所示,將兩根導(dǎo)線的一根導(dǎo)線固定到面包板的負(fù)極,另一根導(dǎo)線固定到面包板的正極。
第3步:將電線固定到ARDUINO。
首先用LED的頂部接一根跳線來固定紅色。將LED固定到ARDUINO的4號(hào)插腳,并用另一根導(dǎo)線將黃色LED固定到ARDUINO的3號(hào)插針,將綠色LED固定到ARDUINO的2號(hào)插針,將紅色LED固定在ARDUINO的7號(hào)插針,將綠色的LED固定到ARDUINO的6號(hào)插針。 》
將LED的下部紅色LED接至ARDUINO接腳號(hào)10,將黃色LED接至ARDUINO接腳號(hào)9,將綠色LED接至ARDUINO接腳號(hào)8,將小的紅色LED接至ARDUINO接腳號(hào)13,將綠色LED接至ARDUINO接腳號(hào)12。
步驟4:固定ARDUINO
用一根導(dǎo)線將面包板正極固定到ARDUINO引腳接地。并用另一根線將ARDUINO 3.3V固定在面包板上,如圖所示。
ARDUINO程序。
//交通信號(hào)燈
//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};
//計(jì)時(shí)器
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(){
//更新時(shí)間
現(xiàn)在= millis();
//檢查是否按下按鈕
表示(int x = 0; x 《2; x ++){
btnval = digitalRead(btn [x]);
如果(btnval == HIGH){
pedwait [x] = true ;////我們有人在等待穿越
}
}
////進(jìn)入
開關(guān)(stp){
//綠色
情況1:
//設(shè)置
if(stpset == false){
changeat =現(xiàn)在+ tgreen-tpedwarn;//設(shè)置計(jì)時(shí)器
//如果(pedwait [direct] == true){
//打開ped的燈光
》
digitalWrite(light [direct] [3],HIGH);
digitalWrite(light [direct] [4],LOW);
//設(shè)置一些變量/p》
pedwait [direct] =假;
pedactive [direct] =真;
pedredon =假;
}
//打開綠色
digitalWrite(light [direct] [0],HIGH);
//關(guān)閉紅色
digitalWrite(light [direct] [2],LOW);
stpset = true;//我們已經(jīng)設(shè)置
}
//運(yùn)行
else {
if(現(xiàn)在》 changeat){//
if(pedactive [direct] == true){
//關(guān)閉Ped
digitalWrite(light [direct] [3],LOW);
digitalWrite(light [direct] [4],HIGH);
pedredon = true;
}
//下一步
stp ++;
stpset = false;
}
}
中斷;
//警告ped(如果可能)
情況2:
//設(shè)置
if(stpset == false){
changeat = now + tpedwarn;
changeatped = now + tpedwarnint;
stpset = true;
}
//運(yùn)行
else {
//如果(pedactive [direct] == true){
if(pedredon = = true && changeatped 《現(xiàn)在){
digitalWrite(light [direct] [4],LOW);
pedredon = false;
changeatped =現(xiàn)在+ tpedwarnint;
}
if(pedredon == false && changeat 《現(xiàn)在){
digitalWrite(light [direct] [4],HIGH);
pedredon = true;
changeatped = now + tpedwarnint;
}
}
if(now》 changeat){//計(jì)時(shí)
//關(guān)閉
digitalWrite(light [direct] [0],LOW);
digitalWrite(light [direct] [4],HIGH);
pedredon = true;
pedactive [direct] = false;
//下一步
stp ++;
stpset = false;
}
}
中斷;
//黃色
情況3:
//設(shè)置
if(stpset == false){
changeat = now + tyellow;
digitalWrite(light [direct] [1],HIGH);
stpset = true;
}
//運(yùn)行
else {
if(現(xiàn)在》 changeat){//計(jì)時(shí)
//關(guān)閉
digitalWrite(light [direct] [1],LOW);
//下一步
stp ++;
stpset = false;
}
}
中斷;
//紅色
情況4:
//設(shè)置
if(stpset == false){
changeat = now + tred;
digitalWrite(light [direct] [2],HIGH);
stpset = true;
}
//運(yùn)行
else {
如果(現(xiàn)在》 changeat) {//時(shí)間增加
//重新開始
stp = 1;
stpset = false;
//如果(direct == 1){
direct = 0;
}
else {
direct = 1;
}
}
}
中斷;
}
}
-
紅綠燈
+關(guān)注
關(guān)注
2文章
34瀏覽量
12114
發(fā)布評(píng)論請(qǐng)先 登錄
V2X技術(shù)全解析

工業(yè)數(shù)據(jù)采集網(wǎng)關(guān):讓工廠 "開口說話" 的超級(jí)翻譯官

【ELF 2學(xué)習(xí)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目-實(shí)現(xiàn)開機(jī)起動(dòng)
【ELF 2學(xué)習(xí)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈按鈕項(xiàng)目
【ELF 2學(xué)習(xí)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目
2025款比亞迪漢家族OTA升級(jí)內(nèi)測(cè) 智駕體驗(yàn)大提升
高德地圖與長(zhǎng)城汽車共建出行聯(lián)合創(chuàng)新LAB
基于CNN和英特爾開發(fā)板的紅綠燈控制系統(tǒng)設(shè)計(jì)

評(píng)論