導航:首頁 > 操作系統 > 光電編碼器單片機

光電編碼器單片機

發布時間:2022-12-12 02:11:46

㈠ 用硬體實現光電編碼器輸出脈沖的鑒相及其計數,怎麼連接STM32單片機看不懂

每個編碼器接到每個定時器的TIMx_CHx上,這個引腳既可以作為PWM輸出,也可以作為輸入引腳,可配置。一個編碼器對應一個定時器即可。

㈡ 請教光電編碼器如何和單片機相連

光電編碼器,一般有相差90度相位的A,B脈沖和其反向/A,/B脈沖,以及零位脈沖Z及其反向/Z。根據需要連接。如果只檢測速度,接A和Z就可以了。如果還需要檢測方向,那麼需要接A、B、Z三路信號。

㈢ 增量式光電編碼器如何與單片機連接直接連接還是設置電路連接呢直接連接在哪裡連

直接連。
連在單片機的I/O口上,用I/O口檢測編碼器輸出的脈沖,判斷旋轉方向和角速度。

㈣ 光電編碼器的脈沖信號如何接到單片機上

每個單片機都有計數功能,將脈沖信號接入單片機的輸入口,再設置一下計數器,就可以了。具體的設置你查一下相應單片機的資料。
如果我的回答還算滿意,請支持一下,謝謝。

㈤ 請問如何把光電編碼器中的數據採集到單片機上

光電編碼器一般採用四線制,數字輸出,電源、地、信號A、信號B,AB相差半個脈沖用來識別正反轉。可以把A直接接單片機中斷,在中斷中根據B判斷正反轉。

㈥ 編碼器與單片機的連接

可以直接和單片機IO相接,但有的設計者為了降低外部干擾,一般通過D觸發器或者光耦後與IO相連,一般的光電編碼器都是集電極開路輸出型的,你看其說明書有具體電路。一般將A、B相接到定時器輸入的IO上,這樣比較好處理,將定時器設為計數器模式就可以了。檢測步進電機轉動角度當然可以做到,這只是基本應用。360線,一個脈沖輸入就是1度,所以很容易的。接收到45個脈沖就證明轉動了45度了。

㈦ 關於兩個光電編碼器 接ATMEGA16單片機來進行 脈沖計數

隨著微電子技術的發展,電氣控制方式變得更加靈活多樣,控制精度越來越高。智能化控制中越來越多地採用了以單片機為核心的控制單元實現設備的智能化控制。介紹以Atmega16單片機為控制核心,實現重物提升位移量的精確控制。

1 重物提升控制系統原理

重物提升控制系統的設計目的是使用智能化的控制技術,將重物提升到預定高度。如圖1所示是系統控制結構圖,從控制結構圖可以看出,控制系統研究對象是重物的提升和降落。主要的控制對象是卷揚機,通過卷揚機的正、反轉運動實現控制目標。

圖中感測器選用光電編碼器,光電編碼器的轉軸上安裝一個輪,將其固定在導向輪上,這樣光電編碼器和導向輪同軸旋轉,實現光電編碼器轉過的角度與導向輪轉過的角度相等,重物提升的距離就是導向輪周長和轉過總角度的乘積。設導向輪的直徑為d,與其同軸連接的光電編碼器每圈輸出脈沖數設為k,那麼脈沖當量為:

2 單片機主從結構的控制方式

工程設計研究對象是控制卷揚機的轉動,提升重物到預定高度,需要在運行前計算出運行的總脈沖數;設計要求顯示屏能實時顯示重物的高度,需要在運行中對採集的數據實時處理,計算出移動的距離;還要求對重物高度和導向輪周長進行設定,設定參數要能夠存儲和讀出,這就需要帶有存儲功能的智能化器件。Atmega16單片機能夠完成數據處理,內含EEPROM存儲區,在掉電的情況下也能夠保存數據,內含2個外輸入計數器,能夠實現計數任務,可以簡化硬體電路。綜合考慮,本設計選擇Atmega16單片機作為核心器件實現任務要求。為了簡化結構,突出模塊設計,採用雙晶元結構,以主、從機模式的設計方法實現控制要求。主機單元負責感測器信號的處理、人機界面參數設定、實時數據處理等工作。從機單元負責接收主機所發信號,響應主機決定是否輸出實時的控制指令。

3 光電編碼器測量位移

光電編碼器是一種通過光電轉換將輸出軸上的機械幾何位移量轉換成脈沖或數字量的感測器,這是目前高精度控制系統最常用的位移量測量感測器。光電編碼器由光柵盤和光電檢測裝置組成,光柵盤是在一定直徑的圓板上等分地開通若干個長方形孔。原理示意如圖2所示。通過計算光電編碼器輸出脈沖的個數就能知道當前拖動的位移量,還可以通過計算每秒光電編碼器輸出脈沖的個數實現速度測量。

用光電編碼器測量位移時,不僅要知道位移的大小,還要知道位移的正負方向,判別方向是成功測量關鍵。現在市場上見到的光電編碼器是4線介面或5線介面。4線介面的光電編碼器能輸出A、B兩路脈沖,5線介面的能輸出A、B、Z三路脈沖。光電編碼器輸出的A、B兩路脈沖在相位上差90°,正轉時A路超前B路90°,反轉時B路超前A路90°。測量中依據A、B之間的相位差,就能夠判別位移的方向符號,通過帶符號的加運算,可以知道輸出脈沖個數,計算出位移量。

4 感測器信號的提取電路設計

如圖3所示是感測器信號提取電路。光電編碼器輸出的信號通過74LS244進行整形後,輸出理想的A、B相波形,U3(74LS74)是D觸發器,把感測器輸出整形方波信號的A相輸入D1,B相作為D觸發器的時鍾信號CK,U3與U9(7400)共同組成鑒相電路,判斷光電編碼盤是正轉還是反轉。

當光電編碼器正向旋轉時,通道A輸出波形超前通道B輸出波形90°,D觸發器輸出Q為高電平,Q為低電平,上面U9A與非門關閉保持高電平,計數脈沖不能通過U11;此時,下面U9B與非門打開,其輸出計數脈沖D能夠順利通過U12進行傳輸,如圖4(a)所示。

當光電編碼器逆時針旋轉時,通道A輸出波形比通道B輸出波形滯後90°,D觸發器Q輸出為低電平,Q為高電平,上面U9A與非門打開,其輸出計數脈沖C能夠通過U11進行傳輸;此時,下面U9B與非門關閉保持高電平,計數脈沖不能通過,如圖4(b)所示。

5 重物提升位移量的計算

Atmega16微處理器內包含3個獨立的定時器/計數器模塊,其中T/C0、T/C2是8位定時器/計數器模塊,T/C1是16位的定時器/計數器模塊。硬體設計中選擇T0、T1作為正反轉計數器,記錄光電編碼器輸出的正、負脈沖數。在軟體設計中一定要將T0、T1計數器進行擴展,使其有足夠的計數空間,擴展位移測量范圍。筆者在設計軟體時,將T0、T1進行擴展,使它們都是長整數(32位)形式,利用的就是計數器滿產生溢出中斷的形式擴展的。這樣T0計數256個脈沖產生中斷一次, T1計數65 536個脈沖產生中斷一次。

T0、T1控制寄存器設置及產生溢出中斷程序為:

TCCR0=0x06; //計數脈沖由T0引腳輸入,下降沿有效。
TCCR1B=0x06; //計數脈沖由T1引腳輸入,下降沿驅動
有效。

#pragma interrupt_handler timer1_ovf_isr:9//正計數 16bits
void timer1_ovf_isr(void){
cnt1++; //32位計數
}
#pragma interrupt_handler timer0_ovf_isr:10 //負計數8bits
void timer0_ovf_isr(void){
long c;
cnt0++; //32位計數
c=(cnt0>>8); //防止cnt0,cnt1溢出
if(c && (cnt1>=c))
{cnt1-=c; //計算計數差值
cnt0=cnt0&0xff; //只保留低8位
} }

設計中,選擇型號為S38-J3V100光電編碼器,輸出編碼是500碼/轉,則脈沖當量是πd/500,當前的位移量就是總脈沖數與脈沖當量的乘積。軟體計算程序如下:

posicnt=(cnt1<<16)|TCNT1; //正脈沖數
negcnt=(cnt0<<8)|TCNT0; //負脈沖數
totalcnt =posicnt-negcnt; //產生位移量大的總脈沖數
curPosi=(totalcnt*(meterCyl*1000+ CentCyl));
curPosi/=PLS_PER_ROUND; //當前的位移量


執行運行命令,微處理器就要對設定的位移量進行計算,把位移量大小轉換成脈沖數的多少。在運行中進行脈沖數的比較,如果相等,則停止運行,表示已經達到目標位置。軟體計算程序如下:
sysStatus = SYS_RUN;
PosiSet=meterPosi*1000+CentPosi; //毫米計算
cntSet=(PosiSet*PLS_PER_ROUND)/(CentCyl+
meter Cyl*1000);
if(cntSet>totalcnt) Command=CMD_FWD;
//執行正轉命令
else if(cntSet<totalcnt) Command=CMD_REV;
//執行反轉命令
else sysStatus=SYS_IDLE; //停止狀態

本方案設計的重物提升控制系統在實際運行過程中獲得了良好的動態性能,控制精確,智能化程度高。利用光電編碼器作為位移感測器,能獲取高精度控制信號。高性價比的Atmega16單片機使成本大大降低,提高了軟體設計的靈活性,簡化了硬體電路設計,具有很好的實用價值。

㈧ 如何用單片機測量光電編碼器的脈沖,以實現測量電機轉速

你說的是增量型編碼器,這種類型的編碼器主要就是測量速度的,其A,B相,Z相可以通過接在計數器或者PLC上,來獲取其脈沖個數,從而進行轉換,變成速度測量。一般說來只要一相信號就夠了,B相信號和A相信好相位相差90度,通過A超前還是B超前從而判定電機是正轉還是反轉。如果只是測速度,Z相信號用不到的。Z相是一個零點參考信號,每旋轉一圈,會輸出一個脈沖,一般用來測量位移的時候才會用到,不過增量編碼器測位移會出現丟脈沖的現象,造成脈沖累積不準,從而出現位置偏差。最重要的是,供電類型一定要看準,如果是5v供電,你供24v,那就直接燒了,切記切記!

㈨ 絕對式 光電編碼器與單片機怎麼接

絕對式光電編碼器有很多種介面,現在比較常見的是串列同步介面,也就是符合RS422電平標準的時鍾數據介面,其時鍾線通常有+,- 一組,數據線+,- 一組,如與單片機連接的話,最好是選用帶有SPI功能的單片機,把單片機的SPI的時鍾輸出和數據輸入分別用422電平轉換晶元轉換成差分信號後與編碼器連接,當然也可以用普通單片機IO口模擬SPI時序,不過這樣做的話程序上處理相當麻煩,最好不用。

NPN開路輸出,又叫OC輸出。
需要在A、B端分別外接一個電阻,電阻上端的電壓由你的電路決定:
單片機接5V,PLC接24V,使用就很方便了。
檢測A、B信號就是(1)檢測脈沖數量;(2)A、B誰在前,誰在後。A相上升沿在前(出現高電平)表示編碼器正轉;反之B在前,表示反轉。
至於45°,就看編碼器一周有多少脈沖,自己分配了。

㈩ 為什麼我把光電編碼器的信號線接到單片機上卻不接受呢

你是用什麼電路進行放大的?這樣的問題很簡單:就是輸入阻抗不夠,雖然看起來信號是放大了,但跟單片機的I/O口一形成迴路之後,對單片機來說信號的輸入阻抗不夠,電壓並沒有完全落到I/O引腳上。所以出現這樣的問題。把電路圖貼出來才能分析錯誤在那裡怎麼改進。

補充:三極體集電極的上啦電阻是多大的,基極有沒有電阻?還有出來的11v電壓你怎麼接到單片機的I/O口上?有沒有對I/O口的過壓保護措施?我在網路信息里告訴你我的郵箱了。

閱讀全文

與光電編碼器單片機相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:755
蘋果郵件無法連接伺服器地址 瀏覽:958
phpffmpeg轉碼 瀏覽:669
長沙好玩的解壓項目 瀏覽:140
專屬學情分析報告是什麼app 瀏覽:562
php工程部署 瀏覽:831
android全屏透明 瀏覽:730
阿里雲伺服器已開通怎麼辦 瀏覽:801
光遇為什麼登錄時伺服器已滿 瀏覽:300
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163