欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5906|回復: 14
收起左側

請問c51小車怎樣通過延時函數控制直流電機轉彎90度,或者不用延時,應怎樣實現?

  [復制鏈接]
ID:366033 發表于 2018-8-23 13:08 | 顯示全部樓層 |閱讀模式
不要求精度高,只想知道具體的思路,謝謝各位大佬了。
回復

使用道具 舉報

ID:388013 發表于 2018-8-23 15:15 | 顯示全部樓層
這個受外界干擾比較大如果有固定的九十度軌跡可以用外設來控制,比如黑線循跡使用紅外線傳感器控制

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:317046 發表于 2018-8-23 16:04 | 顯示全部樓層
可以先讓一邊電機停止同時另一邊轉動,這樣就可以實現轉彎,但是轉過多少度跟延時時間有關,所以需要自己測試調節

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:381818 發表于 2018-8-24 09:41 | 顯示全部樓層
慢慢調延時咯,也用不了多久的,我是輸出60%占空比的PWM,一個輪子向前轉,一個輪子向后轉,這樣快多了,差不多90°就可以了
回復

使用道具 舉報

ID:382067 發表于 2018-8-24 10:08 來自觸屏版 | 顯示全部樓層
首先轉彎可以通過一個電機停止,另一個電機轉動。90度呢最好加外設,黑線固定路跡,紅外感應,控制電機轉動停止
回復

使用道具 舉報

ID:389552 發表于 2018-8-24 10:18 | 顯示全部樓層
可以考慮使用陀螺儀。陀螺儀輸出的是角速度,把角速度積分(加起來)就能得到角度。這樣程序就能知道小車轉了多少度了。
回復

使用道具 舉報

ID:366033 發表于 2018-8-25 09:05 | 顯示全部樓層
本帖最后由 wqqdwdd 于 2018-8-25 10:10 編輯
達達達 發表于 2018-8-24 09:41
慢慢調延時咯,也用不了多久的,我是輸出60%占空比的PWM,一個輪子向前轉,一個輪子向后轉,這樣快多了,差 ...

while(1)
{
        run();
        delay();
        turnleft();
        delay();
}這個有什么問題嗎?
回復

使用道具 舉報

ID:366033 發表于 2018-8-25 09:06 | 顯示全部樓層
達達達 發表于 2018-8-24 09:41
慢慢調延時咯,也用不了多久的,我是輸出60%占空比的PWM,一個輪子向前轉,一個輪子向后轉,這樣快多了,差 ...

你好 我可以加你QQ嗎?
回復

使用道具 舉報

ID:389034 發表于 2018-8-25 12:13 | 顯示全部樓層
可以先讓一邊電機正轉同時另一邊反轉,這樣就可以實現轉彎,但是轉過多少度跟延時時間以及電機的轉速有關,所以需要自己測試調節延時時間和電機的轉速這兩個參數
回復

使用道具 舉報

ID:389034 發表于 2018-8-25 12:16 | 顯示全部樓層
首先看你要轉90度的彎度是多少,一邊輪子正轉一邊輪子反轉是原地轉彎,我們平常大多數用到這種轉彎方式,其他情況你可以自己測試,對于原地旋轉這種情況你可以先讓一邊電機正轉,同時另一邊反轉,這樣就可以實現轉彎,但是轉過多少度跟延時時間以及電機的轉速有關,所以需要自己測試調節延時時間和電機的轉速這兩個參數
回復

使用道具 舉報

ID:389913 發表于 2018-8-25 13:29 | 顯示全部樓層
配置pwm好一些,延時函數不夠用
回復

使用道具 舉報

ID:366033 發表于 2018-8-25 14:13 | 顯示全部樓層
hi-Slowly 發表于 2018-8-25 12:16
首先看你要轉90度的彎度是多少,一邊輪子正轉一邊輪子反轉是原地轉彎,我們平常大多數用到這種轉彎方式,其 ...

while(1)
{
    run();
    delay();
    turnleft();
    delay();
}
回復

使用道具 舉報

ID:316895 發表于 2018-8-25 14:46 來自觸屏版 | 顯示全部樓層
大概90度的話,通過兩個電機的差速就可以做到,當然要控制電機的延時。
回復

使用道具 舉報

ID:366033 發表于 2018-8-25 22:04 | 顯示全部樓層
代瑞 發表于 2018-8-25 14:46
大概90度的話,通過兩個電機的差速就可以做到,當然要控制電機的延時。

while(1)
{
      run();
      delay();
      turnleft();
      delay();
}
這個代碼有什么問題?
回復

使用道具 舉報

ID:342294 發表于 2018-8-28 11:36 | 顯示全部樓層
第一  弄明白  你的90°是原地打轉90°還是差速90°  或者是帶有半徑的90°   
第二  你不同的方式  速度肯定不一樣  延時多長時間才能達到90°完全取決與你的車速
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表