色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

用Arduino和距離傳感器制作小雞賽車!(第2篇)

陳俊 ? 2023-02-20 10:25 ? 次閱讀

第1篇:在最后一刻停下來!用Arduino和距離傳感器制作小雞賽車!(第1篇)

該項目旨在介紹用Arduino讓傳感器工作的一個電子作品。此次的分享嘉賓是福田和宏先生!他過去曾在DevicePlus上連載過“Arduino基礎”等作品。

◆◆◆

poYBAGPyzySACCPUAAeI-HJ0xcI379.png

大家好!在第1篇中,我為大家介紹了小雞賽車的全貌。在本文中,我們一起來了解一下小雞賽車中使用的電子部件的工作情況。然后,我們會創建一個電子電路,使其能夠安裝在作品主體上。

可以測量距離的“超聲波距離傳感器”

當小雞賽車停在墻壁前面時,我希望能夠測量并讓我們知道賽車的停止位置距離墻壁有多遠。可以使用超聲波距離傳感器來完成這項任務。超聲波距離傳感器是利用超聲波(聲音)從傳感器發出、并被墻壁反射回來所需的時間來計算距離的。通過將時間乘以聲速(340.29 m/sec)即可計算出距離。然而,由于這個距離是聲音從傳感器到對象物、并從對象物被反射回到傳感器的往復距離,所以實際上到對象物的距離需要減半。雖然在不同的室溫下會多少存在一些誤差,但由于在測量短距離時忽略誤差也不會造成太大的偏差,所以我沒有給小雞賽車配備溫度校準功能。

poYBAGPyzyWAO7zpAADRyLfELBU078.png

現在,讓我們通過Arduino Nano使用超聲波距離傳感器來測量距離吧。如下連接超聲波距離傳感器。

poYBAGPyzyqAYz9hAANC8ABdiC8821.png

超聲波距離傳感器帶有稱為“TRIG”和“ECHO”的引腳。通過對“TRIG”施加“HIGH”,可以發出超聲波。此外,“ECHO”在接收到反射回來的超聲波時會變為“HIGH”。使用Arduino,可以通過測量從將TRIG置“HIGH”發出超聲波直到ECHO切換為“HIGH”的時間,來獲取從超聲波發射到返回所花的時間。當然,需要將TRIG連接到Arduino Nano的數字輸入輸出引腳2,將ECHO連接到數字輸入輸出引腳3。

此次的超聲波距離傳感器的測量工作將使用筆者創建的庫。您可以通過下面的鏈接下載這個庫。

下載庫文件(HCSR04.zip)

從Arduino IDE的“Sketch”菜單中選擇“Include Library”-“Add .ZIP Library”,打開下載的庫。現在,就可以使用超聲波距離傳感器庫了。

創建如下程序,通過這個程序,可以利用超聲波距離傳感器來獲取距離,并在串口顯示器上查看。

#include 

const int US_TRIG_PIN = 2;
const int US_ECHO_PIN = 3;

HCSR04 hcsr04( US_TRIG_PIN, US_ECHO_PIN );

void setup()
{
    Serial.begin( 9600 );

    hcsr04.begin();
}

void loop()
{
    float distance;
    distance = hcsr04.get_length();
    
    Serial.print( distance );
    Serial.println( "cm" );
    
    delay( 500 );
}

將程序傳輸到Arduino并打開串口顯示器,就會顯示出距離。接下來,您可以把書本等物體放在超聲波距離傳感器前來改變距離,可以看到顯示器上的距離數據也會隨之發生變化。

顯示字符的“字符液晶顯示器”

我們使用字符液晶顯示器來顯示超聲波距離傳感器測量到的結果。字符液晶顯示器是一種在內部存儲有字母和數字等字符信息,可以簡單地顯示字符的顯示設備。雖然能夠顯示的字符數是預先規定好的,但在顯示像這次這樣的測量距離或簡單的介紹文本時,足夠用了。

本次使用的字符液晶顯示器“AQM1602Y-FLW-FBW”可以在屏幕上顯示32個字符(16個字符×2行)。

AQM1602Y-FLW-FBW通過I2C由Arduino來控制。在Arduino Nano Every中,模擬輸入引腳A4和A5可用于I2C通信

現在,讓我們來嘗試通過Arduino Nano實際控制字符液晶顯示器,并使之顯示任意字符。連接如下。由于背面的背光引腳的干擾,AQM1602Y-FLW-FBW可能無法插入面包板。在這種情況下,最好準備一個針座并通過針座將其插入面包板。

pYYBAGPyzy6ABXyNAAIuHWsDpjE223.png

要在AQM1602Y-FLW-FBW上顯示來自Arduino的字符,需要另外的庫。這次我們將使用筆者創建的庫來來實現顯示。您可以從下面的鏈接下載這個庫文件。

下載庫文件(AQM1602Y.zip)

從Arduino IDE的“Sketch”菜單中選擇“Include Library”-“Add .ZIP Library”,打開下載的庫。現在,就可以使用該庫了。

讓我們實際顯示一下“Chicken Racer”。創建如下程序:

#include 
#include 

int VDD_VOLT = 5;

const int AQM1602Y_ADDR = 0x3E;
AQM1602Y lcddisp( AQM1602Y_ADDR, VDD_VOLT );

void setup()
{
    lcddisp.begin();

    lcddisp.set_cursol( false );
    lcddisp.set_blink( false );
    lcddisp.set_contrast( 0x0f );

    lcddisp.move( 0x01, 0x00 );
    lcddisp.charwrite("Chicken  Racer");
}

void loop()
{
}

lcddsip.move () 是將光標移動到希望開始顯示的位置。需要按照位和行的順序指定。屏幕左上角為0位0行。例如,如果要在第2位第1行顯示,就需要指定“lcddisp.move (0x01, 0x00)”。

要顯示的字符串由 lcddisp.charwrite() 指定。

當我將程序傳輸到Arduino時,顯示器上顯示“Chicken Racer”。為了便于查看,我打開了背光燈(如下面照片所示),但是實際上沒有連接背光燈,所以背光燈不會亮。

poYBAGPyzzCARHheAADbsLs-vJ0154.jpg

推動車輪前進的“電機

小雞賽車是通過使裝有車輪的電機來推動其前進的。在啟動時使電機旋轉,在按下開關時使電機停止。

由于使電機運行所需的電流較大,因此無法直接將電機連接到Arduino Nano的數字輸入輸出引腳。所以需要使用電機驅動器由電機專用電源供電。有關電機和電機驅動器的詳細信息,請參閱“Arduino基礎:控制電機”。

要想實際驅動電機,就需要使用電機驅動器進行如下連接。本次使用的電機驅動器帶有兩個控制引腳,可以控制正轉、反轉和停止。但是,由于小雞賽車只能前進,所以將正轉控制用的輸入1(引腳7)連接到Arduino進行控制,將反轉控制用的輸入2(引腳9)連接到了GND。

poYBAGPyzzeAAUBhAAOT3_kd96g099.png

另外,通過本次使用的電機驅動器的“VREF”引腳(引腳1),還能夠調整可提供給電機的電壓。正轉或反轉時,電機會輸出與VREF相同的電壓。當施加在電機上的電壓發生變化時,電機的轉速也會改變。因此,可以事先安裝旋鈕來調節施加于VREF的電壓,這樣就能夠調整電機的轉速了。這個旋鈕是學齡前兒童可以慢慢轉動、小學生可以快速轉動的程度。

連接完成后,讓我們試著通過Arduino來實施控制。這次我們嘗試以5秒的間隔反復旋轉和停止。創建如下程序:

const int MOTOR1_PIN = 4;

void setup()
{
    pinMode( MOTOR1_PIN, OUTPUT );
}

void loop()
{
    digitalWrite( MOTOR1_PIN, HIGH );
    delay( 5000 );
    digitalWrite( MOTOR1_PIN, LOW );
    delay( 5000 );
}

通過這個程序,連接電機驅動器的數字輸入輸出引腳(引腳4)被置“High”時將會旋轉,被置“Low”時將會停止。因此,可以通過使用digitalWrite()切換引腳4的輸出來實現電機控制

這次的小雞賽車采用兩個電機來使左車輪和右車輪旋轉和前進。因此,需要為每個電機準備一個電機驅動器。如果能夠獨立控制兩個電機,不僅可以使賽車前進,還可以實現旋轉操作,可以更靈活地進行控制。

不過本次的賽車只需要能夠前進和停止,因此只要讓兩個電機以相同的方式運行即可。所以,通過將兩個電機驅動器的控制引腳連接到Arduino的一個數字輸入輸出引腳,即可執行相同的動作。

當然,在某些情況下,電機的轉速可能會有所不同,可能無法直線行駛。在這種情況下,可使用連接到VREF引腳的旋鈕將轉速調整為同一轉速。

用來檢測碰撞的“微動開關”

要想判斷是否失敗,就需要檢測到是否與墻壁發生了碰撞;另外,當撞到墻上時需要立即使電機停止。針對這種需求,我使用的是微動開關。微動開關是一種響應性能良好的開關,按下開關后,當到達特定位置時會立即切換。它也常用于鼠標的單擊按鈕。

另外,如果是帶有金屬板的微動開關,那么即使按下角度有偏差,也能夠確保開關被按下。像這次需要檢測是否碰撞墻壁的情況,某些碰撞角度,可能無法按下開關。而如果使用帶有金屬板的微動開關,那么即使撞擊角度有一定程度的傾斜,開關也能夠被按下。此外,通過在左側和右側同時安裝開關,可以進一步確保開關在撞擊時被按下。

微動開關帶有3個引腳。未按下開關時,COM引腳和NC引腳處于連接狀態。當按下開關時,開關由NC切換到NO,COM引腳和NO引腳連接。

poYBAGPyzzmAegyVAAFYpSCwegI422.png

由于我們這次是希望通過開關被按下來檢測碰撞,所以將使用COM引腳和NO引腳。我們將一個引腳連接到Arduino Nano的數字輸入輸出引腳,將另一個引腳連接到GND,這樣,當開關被按下時,數字輸入輸出引腳將會被切換到GND狀態。另外,需要啟用上拉功能,使數字輸入輸出引腳在開關未被按下時處于5V狀態,以穩定輸入。

下面,讓我們來試用一下微動開關吧。這次,先試試當開關被按下時讓安裝在Arduino Nano上的 LED燈亮起來吧。連接方法如下。我們使用引腳12作為數字輸入輸出引腳來讀取微動開關的狀態。

pYYBAGPyzz2ACAujAAI3GK1j2Nk179.png

連接好之后,創建以下程序:

const int LED_PIN = 13;
const int BUMPER_PIN = 12;

void setup()
{
    pinMode( LED_PIN, OUTPUT );
    pinMode( BUMPER_PIN, INPUT_PULLUP );
}

void loop()
{
    if( digitalRead( BUMPER_PIN ) == LOW ){
        while( digitalRead( BUMPER_PIN ) == LOW ){
            delay( 10 );
        }

        digitalWrite( LED_PIN, HIGH );
	} else {
        digitalWrite( LED_PIN, LOW );
	}
}

當將程序傳輸到Arduino并按下微動開關時,您可以看到安裝在Arduino Nano上的LED亮了。

在電路板上創建電路

在確認了每個電子部件的工作情況之后,我們來為整個小雞賽車創建一個配套的電路。電路圖如下:

pYYBAGPyz0CAUQZHAAHIHpBDC7o023.png

基本上,要讓每個確認過的電子部件分別連接好。但是考慮到操作的方便性,我還增加了一個在調整電機轉速時使電機旋轉的開關、以及為了便于獨立控制電機而設置的切換用跳線。

這個電路是在萬用板上通過焊接來制作完成的。下面是作者做的電路板。是將主板和電機控制板分開制作的。

poYBAGPyz0KAdEfSAAGvDpLyQgc539.png

poYBAGPyz0OAI1V5AAEqpGTIhcA972.png

在制作電路板時,如果使用連接器進行連接,布線會更容易處理。這是因為一旦電路有什么問題,也可以通過插拔輕松地進行調整。這次,我用的是小型連接器——“XH連接器”。另外,在使用連接器時,需另行準備連接用的導線。

◆◆◆

這次我們創建了電路。下次我們將完成殼體制作并創建運行程序,徹底完成小雞賽車。下一篇更精彩,敬請期待!

poYBAGPyzyGANl2-AAk6vSVzWPY891.jpg

福田和宏

作家,居住在日本札幌。喜歡撰寫有關電子創作、電腦Linux智能手機等方面的文章。在為“Raspberry Pi Magazine”和“日經Linux”供稿。著有《這本書足夠!Raspberry Pi超簡單入門教程》(SOTECHSHA)、《學習各種電子元器件的控制!Arduino電子創作 實戰教程》(SOTECHSHA)、《Arduino實用入門》(技術評論出版社)等書籍。目前,創辦了“札幌電子工藝部”,這里匯集了眾多電子創作發燒友,大家使用各自的電子技能創作各種作品。任何人都可以參加,也期待您的加入!

審核編輯黃宇

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

    關注

    14

    文章

    1557

    瀏覽量

    76979
  • 電機驅動器
    +關注

    關注

    16

    文章

    648

    瀏覽量

    64798
  • Arduino
    +關注

    關注

    188

    文章

    6477

    瀏覽量

    187737
  • 距離傳感器
    +關注

    關注

    3

    文章

    76

    瀏覽量

    15158
收藏 人收藏

    評論

    相關推薦

    IR傳感器Arduino制作一個數字轉速計(附代碼)

    本項目采用IR傳感器Arduino開發板制作了一個數字轉速計,以RPM為單位測量馬達的轉數。項目黑簡單,只需將IR傳感器Arduino
    的頭像 發表于 08-25 09:55 ?3703次閱讀
    <b class='flag-5'>用</b>IR<b class='flag-5'>傳感器</b>和<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>一個數字轉速計(附代碼)

    基于Arduino Nano和HC-SR04超聲波傳感器制作社交距離項目

    傳感器制作社交距離項目。當距離小于或等于 3 英尺時 LED 模塊自動開啟,當距離大于 3 英尺時 LED 模塊關閉。您只需更改預設值即可根
    發表于 08-09 06:30

    使用超聲波傳感器HC SR04和Arduino Uno制作超聲波距離傳感器

    電子發燒友網站提供《使用超聲波傳感器HC SR04和Arduino Uno制作超聲波距離傳感器.zip》資料免費下載
    發表于 10-31 09:35 ?1次下載
    使用超聲波<b class='flag-5'>傳感器</b>HC SR04和<b class='flag-5'>Arduino</b> Uno<b class='flag-5'>制作</b>超聲波<b class='flag-5'>距離</b><b class='flag-5'>傳感器</b>

    使用Arduino Uno和PIR傳感器的社交距離項目

    電子發燒友網站提供《使用Arduino Uno和PIR傳感器的社交距離項目.zip》資料免費下載
    發表于 11-15 10:21 ?0次下載
    使用<b class='flag-5'>Arduino</b> Uno和PIR<b class='flag-5'>傳感器</b>的社交<b class='flag-5'>距離</b>項目

    使用Labview、Arduino和超聲波傳感器制作距離/測距程序

    電子發燒友網站提供《使用Labview、Arduino和超聲波傳感器制作距離/測距程序.zip》資料免費下載
    發表于 11-30 11:19 ?6次下載
    使用Labview、<b class='flag-5'>Arduino</b>和超聲波<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b><b class='flag-5'>距離</b>/測距程序

    使用Arduino制作停車傳感器

    電子發燒友網站提供《使用Arduino制作停車傳感器.zip》資料免費下載
    發表于 12-01 14:08 ?0次下載
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>停車<b class='flag-5'>傳感器</b>

    使用Arduino制作觸摸傳感器

    電子發燒友網站提供《使用Arduino制作觸摸傳感器.zip》資料免費下載
    發表于 12-05 15:02 ?0次下載
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>觸摸<b class='flag-5'>傳感器</b>

    如何使用Arduino制作LED運動傳感器

    電子發燒友網站提供《如何使用Arduino制作LED運動傳感器.zip》資料免費下載
    發表于 12-12 10:39 ?0次下載
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>LED運動<b class='flag-5'>傳感器</b>

    Arduino控制伺服電機來演奏樂器!

    1Arduino控制曲別針電動機2:非接
    的頭像 發表于 02-20 10:15 ?1308次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b>控制伺服電機來演奏樂器!

    Arduino:電磁執行的自制方法

    1Arduino控制曲別針電動機2:非接
    的頭像 發表于 02-20 12:03 ?1425次閱讀
    <b class='flag-5'>Arduino</b>:電磁執行<b class='flag-5'>器</b>的自制方法

    Arduino和加速度傳感器制作數字滾球迷宮【后篇】

    Arduino和加速度傳感器制作數字滾球迷宮?這次將為大家介紹一個使用Arduino
    的頭像 發表于 02-20 11:54 ?1782次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b>和加速度<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>數字滾球迷宮【后篇】

    Arduino距離傳感器制作小雞賽車!(3?最終篇)

    該項目旨在介紹Arduino傳感器工作的一個電子作品。此次的分享嘉賓是福田和宏先生!他過去曾在DevicePlus上連載過“Arduino基礎”等作品。
    的頭像 發表于 02-20 11:12 ?954次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b>和<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>!(<b class='flag-5'>第</b>3<b class='flag-5'>篇</b>?最終篇)

    在最后一刻停下來!Arduino距離傳感器制作小雞賽車!(1

    到目前為止,我們已經在DevicePlus上介紹過Arduino的使用方法和一些應用案例。在本文中,我們將嘗試一個Arduino傳感器工作的電子作品。
    的頭像 發表于 03-23 15:15 ?1717次閱讀
    在最后一刻停下來!<b class='flag-5'>用</b><b class='flag-5'>Arduino</b>和<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>!(<b class='flag-5'>第</b>1<b class='flag-5'>篇</b>)

    一款Raspberry Pi和傳感器制作的可穿戴式小型健康管理設備!第四部分?劇終篇

    1部分:Raspberry Pi Zero和羅姆SensorMedal制作健康管理設備!2部分:根據
    的頭像 發表于 02-24 10:06 ?2276次閱讀
    一款<b class='flag-5'>用</b>Raspberry Pi和<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>的可穿戴式小型健康管理設備!第四部分?劇終篇

    Arduino社交距離傳感器

    電子發燒友網站提供《Arduino社交距離傳感器.zip》資料免費下載
    發表于 06-30 14:33 ?0次下載
    <b class='flag-5'>Arduino</b>社交<b class='flag-5'>距離</b><b class='flag-5'>傳感器</b>
    主站蜘蛛池模板: 伊人色综合久久天天网 | 一个人免费观看在线视频播放 | 中文字幕人成乱码中国 | 一品探花论坛 | 51成人精品午夜福利AV免费七 | 超熟女专门志 | 青草在线在线d青草在线 | 国产精品久久人妻无码网站一区L | 116美女写真成人午夜视频 | 无码成A毛片免费 | 女生扒开尿口 | 亚洲欧美日韩精品久久奇米色影视 | 欧美激情视频在线观看一区二区三区 | 在线视频av大全色久久 | 亚洲国产五月综合网 | 97视频视频人人碰视频 | 76人遣返航班上71人呈阳性 | 国产精品青草久久福利不卡 | 港台三级大全 | 入禽太深视频免费视频 | 久久精品免费电影 | 506070老熟肥妇bbwxx视频 4虎最新网址 | 伊人精品影院一本到综合 | 中文字幕精品在线观看 | 无限资源在线观看完整版免费下载 | 国产精品一区二区四区 | xxnx18日本| 青青青手机视频 | 亚洲精品国产专区91在线 | 秋霞伦理机在线看片 | 欧美亚洲国产免费高清视频 | 国产亚洲精品久久综合阿香蕉 | 国产人成无码视频在线观看 | 黄网13区 | 久久精品亚洲热综合一本奇米 | 日日噜噜噜夜夜爽爽狠狠 | 亚洲AVAV天堂AV在线网爱情 | 538久久视频在线 | 国产精品久久久久激情影院 | 亚洲精品国偷拍自产在线观看蜜臀 | 456亚洲人成在线播放网站 |