熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2021-1-14 23:14
正文摘要:買了一個(gè)旋轉(zhuǎn)編碼器模塊,之前單片機(jī)也是小白,但想學(xué)會使用編碼器,以后可以做應(yīng)用玩。對自己編程邏輯思維沒有信心,所以在論壇上找了很多例程,有3,4段,編碼器的基本原理和編程思想也有點(diǎn)看明白了, ... |
liuhailan5757 發(fā)表于 2021-1-15 09:24 肯定是沒得示波器唄 |
沒有絕對的誰對誰錯(cuò), 第一步先檢查編碼器,抓去在旋轉(zhuǎn)編碼器的兩個(gè)腳是否發(fā)生變化,一般有變化編碼器都是正常的, 如果編碼器輸出信號對,那第二步就要看程序抓取信號對不對了。 編碼器的類型不同輸出的信號順序是不一樣的。 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
編碼器直接和單片機(jī)相連 中間沒有任何器件 如果接在P0口就要接上拉電阻 判斷旋轉(zhuǎn)方向就是先判斷哪個(gè)腳先接地 比如三個(gè)腳分別是A左 B右 G地 向左轉(zhuǎn)是A先接地 然后B在接地 向右轉(zhuǎn)是B先接地 A后接地 只要判斷出AB哪個(gè)先接地就可以判斷出旋轉(zhuǎn)方向 然后在延時(shí)等待下一次AB哪個(gè)按鍵先接地 延時(shí)時(shí)間慢慢調(diào) 確?鞌Q不會丟失對AB每一次接地的檢測 也確保擰一下不會相當(dāng)于擰了N多下 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
用《人人學(xué)會單片機(jī)》視頻教程的代碼,直接IO口接上就行了。如果P0需要上拉。不需要電容 更不需要串聯(lián)電阻。主函數(shù)高速循環(huán)不斷的調(diào)用以下掃描函數(shù)就行了。 以下代碼的A和B分別代表兩個(gè)普通IO口。 void ROTARY_ROTARY_Scan_Drive(void) { static xdata u8 count=0,Rotary_Flag=0; if(count>30) { count=0; if((ROTARY_B==0)&&(Rotary_Flag==0)) //如果按鍵B按下,且flag是0 { Rotary_Flag=1; Rotary_Read_Data_Rotary++; //按鍵值增加1 } if((ROTARY_A==0)&&(Rotary_Flag==0)) //如果按鍵A按下,且flag是0 { Rotary_Flag=1; Rotary_Read_Data_Rotary--; //按鍵值減少1 } if((ROTARY_B!=0)&&(ROTARY_A!=0)) //按鍵必須釋放,下次按鍵才有效 { Rotary_Flag=0; } } count++; } |
就用你自己畫的那個(gè)原理圖,同上電,旋轉(zhuǎn)開關(guān),看一下輸出端的波形,你就明白了。要學(xué)會用示波器去分析電路 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
我用At89C52 接5線旋轉(zhuǎn)編碼器才用查詢法調(diào)試, 右旋調(diào)大,左旋調(diào)小,就是不能快速旋轉(zhuǎn)會反應(yīng)不過來.偶爾會有左旋反而調(diào)大,右旋反而調(diào)小發(fā)生, 總體可用. 線路上只有10k上拉電阻, MPU和編碼器之間沒有串10K電阻. |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
編碼開關(guān)不需要電阻的,中間一根線接地,兩邊兩根線隨便接兩個(gè)IO就可以了,如果想要放心一點(diǎn),那就加分別加一個(gè)上拉電阻就可以了 你測量阻值是沒有意義的,編碼開關(guān)實(shí)際上是通過檢測哪個(gè)引腳先導(dǎo)通來區(qū)分順時(shí)針還是逆時(shí)針轉(zhuǎn)動(dòng)的 編碼開關(guān)是分好幾種的,你一定要先這個(gè)開關(guān)的資料,再根據(jù)這個(gè)開關(guān)的時(shí)序圖來寫程序,不同的開關(guān)有不同的程序 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)