精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arduino交通燈控制器項目教程

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-03 16:26 ? 次閱讀

Arduino紅綠燈是一個有趣的小項目,您可以在一個小時內完成構建。這是使用Arduino構建自己的方法,以及如何更改電路以實現高級變體。

如果您希望將其作為視頻教程觀看,我們將向您介紹:

構建Arduino交通燈控制器所需的條件

除了基本的Arduino,還需要:

1個10k歐姆電阻器

1個按鈕開關

6個220歐姆電阻

一塊面包板

連接導線

紅色,黃色和綠色LEDs

只要有足夠的引腳,幾乎任何Arduino都可以用于該項目。如果不確定所需的型號,請確保閱讀我們的Arduino購買指南。您可能已經在Arduino入門套件中包含了這些零件。

Arduino交通燈:基礎知識

讓我們從小處入手。一個基本的單一交通信號燈是一個不錯的起點。這是電路:

Arduino交通燈控制器項目教程

將每個LED的陽極(長腳)連接到數字引腳8、9和10(通過220歐姆電阻器) )。將陰極(短腿)連接到Arduino的地面。

Arduino交通燈的代碼

首先定義變量,以便您可以通過名稱而不是數字來尋址燈。開始一個新的Arduino項目,并從以下幾行開始:

int red = 10;

int yellow = 9;

int green = 8;

接下來,讓我們添加設置功能,在其中將紅色,黃色和綠色LED配置為輸出。由于您已經創建了表示引腳號的變量,因此現在可以按名稱引用引腳了:

void setup(){

pinMode(red, OUTPUT);

pinMode(yellow, OUTPUT);

pinMode(green, OUTPUT);

}

pinMode 函數可配置Arduino使用給定的引腳作為輸出。您必須這樣做才能使LED完全正常工作。現在了解交通信號燈的實際邏輯。這是您需要的代碼。在您的變量定義和設置函數下面添加此代碼:

void loop(){

changeLights();

delay(15000);

}

void changeLights(){

// green off, yellow on for 3 seconds

digitalWrite(green, LOW);

digitalWrite(yellow, HIGH);

delay(3000);

// turn off yellow, then turn red on for 5 seconds

digitalWrite(yellow, LOW);

digitalWrite(red, HIGH);

delay(5000);

// red and yellow on for 2 seconds (red is already on though)

digitalWrite(yellow, HIGH);

delay(2000);

// turn off red and yellow, then turn on green

digitalWrite(yellow, LOW);

digitalWrite(red, LOW);

digitalWrite(green, HIGH);

delay(3000);

}

將此代碼上傳到Arduino,然后運行(確保從選擇正確的板卡和端口工具》 面板和工具》 端口菜單)。您應該有一個每15秒更改一次的工作紅綠燈,如下所示(加快):

讓我們分解一下此代碼。 changeLights 功能執行所有艱苦的工作。這樣會將交通信號燈旋轉通過黃色和紅色,然后又變回綠色。當在 loop 函數內部調用該代碼時,Arduino將永久運行該代碼,每次暫停15秒。

changeLights 函數由四個不同的步驟組成:

綠色點亮,黃色熄滅

黃色熄滅,紅色點亮

黃色點亮,紅色點亮

綠色點亮,紅色熄滅,黃色熄滅

這四個步驟復制了實際交通信號燈中使用的過程。對于每個步驟,代碼都非常相似。使用 digitalWrite 可以打開或關閉相應的LED。這是一個Arduino函數,用于將輸出引腳設置為HIGH(高)(打開)或LOW(低)(關閉)。

啟用或禁用所需的LED后,延遲使Arduino等待給定的時間。在這種情況下,需要三秒鐘。

更深入:Arduino人行橫道

現在您已經了解了基礎知識,請對其進行改進。添加一個按鈕,方便行人在需要時改變燈光:

注意交通信號燈與上一個示例完全相同。將按鈕連接到數字引腳12。您會注意到該開關上連接了一個高阻10k歐姆電阻,您可能想知道為什么。這是一個下拉電阻。

一個開關允許電流流過或不讓電流流過。這似乎很簡單,但是在邏輯電路中,電流應始終以高或低狀態(請記住,1或0,HIGH或LOW)流動。您可能會假設沒有被真正按下的按鈕開關處于LOW狀態,但實際上,它被稱為“浮動”狀態,因為根本沒有消耗電流。

在這種浮動狀態狀態下,由于電干擾而波動時,可能會出現錯誤的讀數。換句話說,浮動開關既不能提供可靠的HIGH讀數,也不能提供LOW讀數。下拉電阻器在開關閉合時保持少量電流流動,從而確保了準確的低態讀數。

在其他邏輯電路中,您可能會找到一個上拉電阻器,而這

現在,在代碼的循環部分中,而不是每隔15秒更改一次燈,您將按照相同的原理工作,但要相反,請確保特定的邏輯門默認為高。而是改為讀取按鈕開關的狀態,并且僅在激活時更改燈光。

Arduino人行橫道代碼

首先添加一個新變量來存儲按鈕銷:

int button = 12; // switch is on pin 12

現在,在設置功能中,添加新行以將開關聲明為輸入。添加一行以將交通燈設置為綠色舞臺。如果沒有此初始設置,它們將關閉,直到第一次 changeLights 運行。

pinMode(button, INPUT);

digitalWrite(green, HIGH);

將整個循環功能改為以下內容:

void loop() {

if (digitalRead(button) == HIGH){

delay(15); // software debounce

if (digitalRead(button) == HIGH) {

// if the switch is HIGH, ie. pushed down - change the lights!

changeLights();

delay(15000); // wait for 15 seconds

}

}

}

應該這樣做。您可能想知道為什么按鈕檢查會發生兩次( digitalRead(button)),并間隔一小段時間。這在反跳。就像按鈕的下拉電阻一樣,這種簡單的檢查可以停止代碼以檢測按下按鈕時是否受到干擾。

在 if 語句中等待15秒鐘,紅綠燈至少在這段時間內不能改變。 15秒后,循環將重新啟動。每次循環重新啟動時,它都會再次讀取按鈕的狀態,但是如果不按下按鈕, if 語句將永遠不會激活,指示燈也不會改變,并且程序會再次重新啟動。

這是它的外觀(加速):

帶結的Arduino交通燈

讓我們嘗試更高級的模型。代替人行橫道,將電路更改為具有兩個交通信號燈:

將第二個交通信號燈連接到數字引腳11、12和13。

帶有連接點的Arduino交通燈的代碼

首先,將新的交通燈引腳分配給變量,并將其配置為輸出,如第一個示例所示:

// light one

int red1 = 10;

int yellow1 = 9;

int green1 = 8;

// light two

int red2 = 13;

int yellow2 = 12;

int green2 = 11;

void setup(){

// light one

pinMode(red1, OUTPUT);

pinMode(yellow1, OUTPUT);

pinMode(green1, OUTPUT);

// light two

pinMode(red2, OUTPUT);

pinMode(yellow2, OUTPUT);

pinMode(green2, OUTPUT);

}

現在,更新循環以使用第一個示例中的代碼(而不是人行橫道):

void loop(){

changeLights();

delay(15000);

}

再次,所有工作都在 changeLights 功能中進行。該代碼不會代替紅色》 紅色和黃色》 綠色,而是替換交通信號燈。當一個為綠色時,另一個為紅色。這是代碼:

void changeLights(){

// turn both yellows on

digitalWrite(green1, LOW);

digitalWrite(yellow1, HIGH);

digitalWrite(yellow2, HIGH);

delay(5000);

// turn both yellows off, and opposite green and red

digitalWrite(yellow1, LOW);

digitalWrite(red1, HIGH);

digitalWrite(yellow2, LOW);

digitalWrite(red2, LOW);

digitalWrite(green2, HIGH);

delay(5000);

// both yellows on again

digitalWrite(yellow1, HIGH);

digitalWrite(yellow2, HIGH);

digitalWrite(green2, LOW);

delay(3000);

// turn both yellows off, and opposite green and red

digitalWrite(green1, HIGH);

digitalWrite(yellow1, LOW);

digitalWrite(red1, LOW);

digitalWrite(yellow2, LOW);

digitalWrite(red2, HIGH);

delay(5000);

}

這是(加速)外觀:

Arduino紅綠燈的后續步驟

今天就這些。您對Arduino LED和按鈕的新了解適用于各種不同的項目。如果您想擴展這些交通信號燈,為什么不建一個四通(或更多)路口,并配備許多行人過路處和行人交通信號燈呢?

還是為什么不通過更大的擴展您的新技能DIY MIDI控制器或帶有Xod的Arduino機器人之類的項目?您也可以看看使用VS Code和PlatformIO的Arduino編碼。

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 交通燈
    +關注

    關注

    13

    文章

    323

    瀏覽量

    39729
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186665
收藏 人收藏

    評論

    相關推薦

    一文讀懂單控制器工作原理

    一文讀懂單控制器工作原理
    的頭像 發表于 11-11 13:13 ?119次閱讀
    一文讀懂單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>工作原理

    智慧城市路燈——聯網單控制系統,單控制器

    智慧城市路燈——聯網單控制系統,單控制器
    的頭像 發表于 11-11 12:52 ?175次閱讀
    智慧城市路燈——<b class='flag-5'>燈</b>聯網單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>系統,單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>

    【星閃派物聯網開發套件體驗連載】智能交通燈--云端查看,遠程控制視頻

    完整項目在這個帖子中: https://bbs.elecfans.com/jishu_2457322_1_1.html 本文是智能交通燈--云端查看,遠程控制視頻
    發表于 10-21 13:44

    【星閃派物聯網開發套件體驗連載】智能交通燈

    感謝電子發燒友,感謝潤和軟件,提供星閃派物聯網開發套件試用。 本次試用計劃: 用星閃派物聯網開發套件,先實現本地交通燈項目,接入WiFi連上云端,本地紅綠燈狀態上傳云端,云端顯示,云端遠程控制紅綠燈
    發表于 10-05 13:00

    基于555定時的四路交通燈電路圖

    交通燈,也稱為交通信號燈,是城市交通管理的重要工具,用于指示車輛和行人通行。它由紅燈、黃燈和綠燈(有時還包括其他類型的信號燈,如箭頭燈、閃光警告信號燈等)組成,通過不同顏色的燈光周期性交替顯示,以
    的頭像 發表于 07-03 18:16 ?1583次閱讀
    基于555定時<b class='flag-5'>器</b>的四路<b class='flag-5'>交通燈</b>電路圖

    基于STM32單片機的交通燈系統設計

    本次設計的智能交通燈控制系統設計有硬件數據采集控制和上位機監控兩部分,通過單片機作為核心控制器,控制紅外傳感
    的頭像 發表于 06-24 09:49 ?2927次閱讀
    基于STM32單片機的<b class='flag-5'>交通燈</b>系統設計

    嵌入式操作教程案例分享:2-26 交通燈控制實驗 #交通燈

    嵌入式交通燈
    創龍教儀
    發布于 :2024年04月26日 13:42:28

    干貨!89C51單片機模擬交通燈控制,原理圖,仿真程序等完整資料

    設計要求 (1)利用51單片機設計一個交通燈控制系統,來實現行人與車流的分流的目的。該系統主要應用在十字路口,縱向為主干道,橫向為支干道; (2)主、支干道交替通行,兩個干道上的交通燈工作方式同時
    發表于 03-14 18:23

    控制器工作原理是什么?單控制器是如何控制燈具的?

    控制器工作原理是什么?單控制器是如何控制燈具的? 單
    的頭像 發表于 02-03 11:38 ?2101次閱讀

    單片機交通燈程序設計中斷系統

    交通燈智能控制的關鍵。 單片機交通燈的基本原理 交通燈控制系統的基本原理是利用紅、綠、黃三種顏色的燈光的閃爍組合通過向車輛和行人傳遞不同的指
    的頭像 發表于 01-24 16:16 ?968次閱讀

    基于51單片機的交通燈設計

    電子發燒友網站提供《基于51單片機的交通燈設計.rar》資料免費下載
    發表于 01-12 10:40 ?5次下載

    基于51單片機的交通燈設計

    電子發燒友網站提供《基于51單片機的交通燈設計.rar》資料免費下載
    發表于 01-12 10:30 ?1次下載

    基于51單片機的交通燈設計

    電子發燒友網站提供《基于51單片機的交通燈設計.rar》資料免費下載
    發表于 01-07 09:41 ?20次下載

    基于51單片機的交通燈設計報告

    電子發燒友網站提供《基于51單片機的交通燈設計報告.rar》資料免費下載
    發表于 01-05 10:50 ?12次下載

    關注智慧桿-智慧城市建設項目

    廣東惠州仲愷高新區全域視聯感知項目,項目總投資:28000萬元。新建智慧桿400套,同時配套智慧交通燈桿屏400套等智慧化設備。
    的頭像 發表于 12-14 15:47 ?335次閱讀
    關注智慧<b class='flag-5'>燈</b>桿-智慧城市建設<b class='flag-5'>項目</b>