熊壘 向柄全 曾智文 陳志偉 張磊

摘要:隨著信息技術的迅猛發展,傳感器的應用技術也在飛速發展,新的應用技術呈現出爆炸式的發展。傳感器作為測控系統中對象信息的入口,作為捕獲信息的主要工具,在現代化事業中的重要性已被人們所認識。光電傳感器的應用技術為信息科學的一個分支,俗稱“電眼”。它是將傳統光學技術與現代微電子技術以及計算機技術機密結合的紐帶,是獲取光信息或借助光提取其他信息的重要手段。本次基于Arduino uno和紅外對射傳感器,我們設計了一款計數設備,此設備基于紅外對射傳感器可實現對產品數量的檢測。
關鍵字:紅外對射,光電計數,Arduino uno
一、引言
Arduino UNO R3是一款單片機開發板,采用AVR單片機ATmega328P作為主控制器,集成開發環境為Arduino IDE。它有14個數字輸入/輸出引腳(其中6個可用作PWM輸出),6個模擬輸入,16MHz晶振時鐘,USB連接,電源插孔,ICSP接頭和復位按鈕。只需要通過USB數據線連接電腦就能供電、程序下載和數據通訊。
ArduinoUNO擁有14個數字引腳(6個PWM)和6個模擬引腳,數字引腳為引腳0至引腳13。其中引腳0和引腳1用于接收和傳輸串行數據。PWM:3,5,6,9,10,11。這6個引腳可以用作PWM(脈沖寬度調制)引腳,使用這些引腳可以依次控制電壓和亮度。模擬引腳為到引腳A5,模擬引腳的主要功能是從模擬傳感器讀取值。
電力系統方面,ArduinoUNO具有便捷的電源管理和內置電壓調節功能。電源是自動選擇的。可以通過USB或USB直接為其供電。外部電源可以通過將電源(7-12VDC)連接到直流電源插孔或將電池引線連接到Vin和Gnd。
內存:ATmega328p具有32KB的閃存來存儲程序,2KB的SRAM和1KB的EEPROM。
通信:UNO具有諸如UART串行通信,SPI和I2C的通信協議。
UART:UNO使用數字pin0(RX)和數字pin1(TX)進行UARTTTL串行通信。
I2C:UNO使用A4或SDA引腳,而A5或SCL引腳用于與線庫的I2C通信。SCL是時鐘信號,SDA是數據信號。
SPI:Pin11:(MOSI),Pin12:(MISO),Pin13:(SCK)MOSI(MasterOutSlaveIn)-用于將數據發送到外圍設備的主控線。MISO(主機輸入從機輸出)-用于將數據發送到主機的從機線路。SCK(串行時鐘)-用于同步主機產生的數據傳輸的時鐘脈沖。對應的引腳以及SPI庫用于SPI通信。ICSP頭可用于通過引導加載程序直接對ATmega進行編程。
二、紅外對射傳感器
紅外線反射傳感器是利用紅外線反射的原理,根據反射的強度來判定前方障礙的有無。在距離適中的時候測量精度很高。由于使用的是紅外線,所以抗干擾能力很強。這樣做更加確保了裝置的穩定性。
特點如下:1.使用槽型光耦傳感器;2.槽寬度10mmo;3.有輸出狀態指示燈,輸出高電平燈滅,輸出低電平燈亮;4.有遮擋,輸出高電平,無遮擋。輸出低電平;5.比較器輸出,信號干凈,波形好,驅動能力強,超過15mAo;6.工作電壓3.3V -5Vo;7.輸出形式:數字開關量輸出(o和1);8.設有固定螺栓孔,方便安裝;9.小板PCB尺寸:23mm *20mm;10.使用寬電壓LM393比較器。
使用說明:模塊槽中無遮擋時,接收管導通,模塊DO輸出低電平,遮擋時,DO輸出高電平。模塊DO可與繼電器相連,組成限位開關等功能,也可以與有源蜂鳴器模塊相連,組成報警器。
三、數字矩陣按鈕
4*4矩陣按鍵,又稱行列式鍵盤,它用4條I/O線作為行線, 它用4條I/O線作為列線組成鍵盤。 在行線和列線的每一個交叉點上設置一個按鍵, 這樣鍵盤按鍵就有4*4個,這種行列式鍵盤結構能夠有效的提高單片機系統的I/0口利用率。
矩陣鍵盤4個輸入端口ROW[3:0] 接收由FPGA產生的鍵盤掃描輸入信號,而4個輸出COL[3:0] 將按鍵操作的信息變化輸入到FPGA掃描分析電路,進而得到按鍵的操作碼。輸入端口分別接了4個上拉電阻,當4個輸入端口輸入若都為1時,則有無論按哪個按鍵,輸出都為1,所以 若剛開始的時候對四個輸入端口賦0,則只要按下任何一個按鍵,鍵盤上的4個輸出則肯定有1變為0,而且能夠判斷到是哪一列,但是并不知道是哪一行,所以此時就要用到鍵盤掃描,何為鍵盤掃描,就是只要讓輸入端口的一行為0,其余三行全為1,輪流掃描一遍,便可以方便的確定按鍵按下的準確值。又因為實際運用的時候按鍵按下會有抖動現象,所以要對其進行消抖處理,消抖模塊可以有很多種方法,例如狀態機的消抖方法以及打拍延時,然后相或,因為這個是鍵值輸入,若要用到打拍延時的方法進行消抖處理的話,需要對其進行一些改動,相或改為兩兩相等并相與以增加時鐘時間。
四、硬件設計
本裝置以ARDUINO UNO為控制中心,結合紅外對射傳感器、液晶顯示器,通過光電傳感器檢測一定時間內經過傳感器的物體的個數,以此來滿足實際生產過程中流水線上工件的數量統計。使用arduino ide開發工具進行arduino程序的編寫和開發,它擁有開放源代碼的電路圖設計、支持ISP在線燒錄,同時支持Flash、Max/Msp、VVVV、PD、C、Processing等多種程序兼容。
開放源代碼電路圖設計,程序開發接口免費下載,也可依需求自己修改。使用低價格的微處理控制器(AVR系列控制器),可以采用USB接口供電,不需外接電源,也可以使用外部9VDC輸入。Arduino支持ISP在線燒,可以將新的“bootloader”固件燒入AVR芯片。有了bootloader之后,可以通過串口或者USB to Rs232線更新固件。可依據官方提供的Eagle格式PCB和SCH電路圖簡化Arduino模組,完成獨立運作的微處理控制;可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達,…等)
接線圖設計如下:
參考文獻:
[1] 張金.《Arduino程序設計與實踐》
[2] 梁森,歐陽三泰.《自動檢測技術及應用》(第3版)
[3] 蔡睿妍. Arduino的原理及應用[J]電子設計工程,2012(16)