久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8499|回復: 11
收起左側(cè)

51單片機 四足機器人 12路PWM源程序

  [復制鏈接]
ID:516644 發(fā)表于 2019-9-3 18:16 | 顯示全部樓層 |閱讀模式
之前比賽做的一個小四足機器人,由51單片機產(chǎn)生十二路PWM控制十二個舵機進行運動,用藍牙遙控
IMG_20190503_164931.jpg

單片機源程序如下:
  1. #include "headfile.h"

  2. void jihuo()        //激活/停止
  3. {
  4.         uint sign = 3;
  5. //調(diào)整四腳姿勢
  6.         delayms(250);
  7.         t_up0 = 1800;
  8.         t_up1 = 1500;
  9.         t_up2 = 1500;
  10.         t_up3 = 1500;
  11.         t_up4 = 1500;
  12.         t_up5 = 1500;
  13.         t_up6 = 1500;
  14.         t_up7 = 1500;
  15.         t_up8 = 1500;
  16.         t_up9 = 1100;
  17.         t_up10 = 1500;
  18.         t_up11 = 1600;
  19.        
  20. //抬左前腿
  21.         delayms(200);
  22.         t_up7 = 1800;
  23.         delayms(50);
  24.         t_up8 = 1200;
  25.         while(sign--)
  26.         {
  27.                 delayms(200);
  28.                 t_up6 = 1100;
  29.                 delayms(200);
  30.                 t_up6 = 1500;
  31.         }
  32.         delayms(200);
  33.         t_up7 = 1500;
  34.         delayms(50);
  35.         t_up8 = 1500;
  36.         delayms(200);
  37.         t_up0 = 1500;
  38.         t_up9 = 1500;
  39. }

  40. void ahead()        //前進
  41. {
  42. //調(diào)整四腳姿勢
  43.         delayms(250);
  44.         t_up0 = 1500;       
  45.         t_up1 = 1500;
  46.   t_up2 = 1500;
  47.   t_up3 = 1500;
  48.   t_up4 = 1500;
  49.   t_up5 = 1500;
  50.   t_up6 = 1500;
  51.   t_up7 = 1500;
  52.   t_up8 = 1500;
  53.   t_up9 = 1500;
  54.   t_up10 = 1500;
  55.   t_up11 = 1600;
  56.         while(direc == 2)
  57.         {
  58. //抬右腿
  59.                 delayms(250);
  60.                 t_up1 = 1200;
  61.                 delayms(125);
  62.                 t_up2 = 1800;
  63.                 delayms(100);
  64.                 t_up0 = 1900;
  65.                 delayms(100);
  66.                 t_up1 = 1700;
  67.                
  68.                 t_up6 = 1900;
  69.                 delayms(100);
  70.                 t_up3 = 1000;
  71.                 delayms(50);
  72.                 t_up4 = 1300;
  73.                 delayms(100);
  74.                 t_up9 = 1100;
  75.                 delayms(100);
  76.                 t_up5 = 1300;
  77.                 t_up2 = 1500;
  78.                 delayms(100);
  79.                 t_up5 = 1500;
  80.                 delayms(50);
  81.                 t_up4 = 1500;

  82. //抬左腿
  83.                 delayms(250);
  84.                 t_up7 = 1800;
  85.                 delayms(125);
  86.                 t_up8 = 1200;
  87.                 delayms(100);
  88.                 t_up6 = 1400;
  89.                 delayms(100);
  90.                 t_up7 = 1300;
  91.                
  92.                 t_up0 = 1500;
  93.                 delayms(100);
  94.                 t_up9 = 1500;
  95.                 delayms(50);
  96.                 t_up10 = 1700;
  97.                 delayms(100);
  98.                 t_up3 = 1500;
  99.                 delayms(100);
  100.                 t_up11 = 1800;
  101.                 t_up8 = 1500;
  102.                 delayms(100);
  103.                 t_up11 = 1600;
  104.                 delayms(50);
  105.                 t_up10 = 1500;
  106.         }
  107. }

  108. void back()         //后退
  109. {
  110. //調(diào)整四腳姿勢
  111.         delayms(250);
  112.         t_up0 = 1500;
  113.         t_up1 = 1500;
  114.   t_up2 = 1500;
  115.   t_up3 = 1500;
  116.   t_up4 = 1500;
  117.   t_up5 = 1500;
  118.   t_up6 = 1500;
  119.   t_up7 = 1500;
  120.   t_up8 = 1500;
  121.   t_up9 = 1500;
  122.   t_up10 = 1500;
  123.   t_up11 = 1600;
  124.         while(direc == 3)
  125.         {
  126. //抬右腿
  127.                 delayms(250);
  128.                 t_up4 = 1800;
  129.                 delayms(125);
  130.                 t_up5 = 1200;
  131.                 delayms(100);
  132.                 t_up3 = 1000;
  133.                 delayms(100);
  134.                 t_up4 = 1300;
  135.                
  136.                 t_up9 = 1200;
  137.                 delayms(100);
  138.                 t_up0 = 2000;
  139.                 delayms(50);
  140.                 t_up1 = 1700;
  141.                 delayms(125);
  142.                 t_up6 = 1900;
  143.                 delayms(125);
  144.                 t_up2 = 1700;
  145.                 t_up5 = 1500;
  146.                 delayms(125);
  147.                 t_up2 = 1500;
  148.                 delayms(50);
  149.                 t_up1 = 1500;

  150. //抬左腿
  151.                 delayms(250);
  152.                 t_up10 = 1200;
  153.                 delayms(125);
  154.                 t_up11 = 1900;
  155.                 delayms(100);
  156.                 t_up9 = 1500;
  157.                 delayms(100);
  158.                 t_up10 = 1700;
  159.                
  160.                 t_up3 = 1500;
  161.                 delayms(100);
  162.                 t_up6 = 1500;
  163.                 delayms(50);
  164.                 t_up7 = 1300;
  165.                 delayms(100);
  166.                 t_up0 = 1500;
  167.                 delayms(100);
  168.                 t_up8 = 1200;
  169.                 t_up11 = 1600;
  170.                 delayms(100);
  171.                 t_up8 = 1500;
  172.                 delayms(50);
  173.                 t_up7 = 1500;
  174.         }
  175. }

  176. void ymove()         //向右平移
  177. {
  178. //調(diào)整四腳姿勢
  179.         delayms(250);
  180.         t_up0 = 1500;
  181.         t_up1 = 1500;
  182.   t_up2 = 1500;
  183.   t_up3 = 1500;
  184.   t_up4 = 1500;
  185.   t_up5 = 1500;
  186.   t_up6 = 2000;
  187.   t_up7 = 1500;
  188.   t_up8 = 1500;
  189.   t_up9 = 1100;
  190.   t_up10 = 1500;
  191.   t_up11 = 1600;
  192.         while(direc == 7)
  193.         {
  194. //右邊起身
  195.                 delayms(250);
  196.                 t_up2 = 2000;
  197.                 delayms(50);
  198.                 t_up1 = 1800;
  199.                 delayms(50);
  200.                 t_up5 = 1000;
  201.                 delayms(50);
  202.                 t_up4 = 1200;       
  203. //左邊起身
  204.                 delayms(250);
  205.                 t_up7 = 1200;
  206.                 t_up10 = 1800;
  207.                 delayms(50);
  208. //右邊還原
  209.                 t_up1 = 1500;
  210.                 t_up4 = 1500;
  211.                 delayms(50);
  212.                 t_up2 = 1500;
  213.                 t_up5 = 1500;
  214.                 t_up8 = 1200;
  215.                 t_up11 = 1900;
  216.                 delayms(100);
  217. //左邊還原               
  218.                 t_up7 = 1500;
  219.                 t_up10 = 1500;
  220.                 delayms(50);
  221.                 t_up8 = 1500;
  222.                 t_up11 = 1600;
  223.         }
  224. }

  225. void zmove()        //向左平移
  226. {
  227. //調(diào)整四腳姿勢
  228.         delayms(250);
  229.         t_up0 = 1500;
  230.         t_up1 = 1500;
  231.   t_up2 = 1500;
  232.   t_up3 = 1500;
  233.   t_up4 = 1500;
  234.   t_up5 = 1500;
  235.   t_up6 = 2000;
  236.   t_up7 = 1500;
  237.   t_up8 = 1500;
  238.   t_up9 = 1100;
  239.   t_up10 = 1500;
  240.   t_up11 = 1600;
  241.         while(direc == 6)
  242.         {
  243. //左邊起身
  244.                 delayms(250);
  245.                 t_up8 = 1000;
  246.                 delayms(50);
  247.                 t_up7 = 1200;
  248.                 delayms(50);
  249.                 t_up11 = 2100;
  250.                 delayms(50);
  251.                 t_up10 = 1800;       
  252. //右邊起身
  253.                 delayms(250);
  254.                 t_up1 = 1800;
  255.                 t_up4 = 1200;
  256.                 delayms(50);
  257. //左邊還原
  258.                 t_up7 = 1500;
  259.                 t_up10 = 1500;
  260.                 delayms(50);
  261.                 t_up8 = 1500;
  262.                 t_up11 = 1600;
  263.                 t_up2 = 1800;
  264.                 t_up5 = 1200;
  265.                 delayms(100);
  266. //右邊還原       
  267.                 t_up1 = 1500;
  268.                 t_up4 = 1500;
  269.                 delayms(50);
  270.                 t_up2 = 1500;
  271.                 t_up5 = 1500;
  272.         }
  273. }

  274. void right()         //右轉(zhuǎn)
  275. {
  276. //調(diào)整四腳姿勢
  277.         delayms(250);
  278.         t_up0 = 1500;
  279.         t_up1 = 1500;
  280.   t_up2 = 1500;
  281.   t_up3 = 1500;
  282.   t_up4 = 1500;
  283.   t_up5 = 1500;
  284.   t_up6 = 1500;
  285.   t_up7 = 1500;
  286.   t_up8 = 1500;
  287.   t_up9 = 1500;
  288.   t_up10 = 1500;
  289.   t_up11 = 1600;
  290.        
  291.         delayms(250);
  292.         t_up1 = 1200;
  293.         delayms(125);
  294.         t_up0 = 1900;
  295.         delayms(100);
  296.         t_up1 = 1500;
  297.         while(direc == 5)
  298.         {
  299.                 delayms(200);
  300.                 t_up1 = 1700;
  301.                 delayms(50);
  302.                 t_up2 = 1700;
  303.                 delayms(200);
  304.                 t_up3 = 1100;
  305.                 delayms(100);
  306.                 t_up2 = 1500;
  307.                 delayms(50);
  308.                 t_up1 = 1500;
  309.                 delayms(200);
  310.                 t_up4 = 1400;
  311.                 delayms(50);
  312.                 t_up5 = 1400;
  313.                 delayms(100);
  314.                 t_up0 = 1900;
  315.                 delayms(100);
  316.                 t_up9 = 1100;
  317.                 delayms(100);
  318.                 t_up6 = 1900;
  319.                 delayms(200);
  320.                 t_up5 = 1500;
  321.                 delayms(50);
  322.                 t_up4 = 1500;
  323.                 delayms(200);
  324.                 t_up1 = 1700;
  325.                 delayms(50);
  326.                 t_up2 = 1700;
  327.                 delayms(200);
  328.                 t_up6 = 1500;
  329.                 delayms(200);
  330.                 t_up2 = 1500;
  331.                 delayms(50);
  332.                 t_up1 = 1500;
  333.                 delayms(200);
  334.                 t_up10 = 1600;
  335.                 delayms(100);
  336.                 t_up9 = 1500;
  337.                 delayms(100);
  338.                 t_up10 = 1500;
  339.                 delayms(200);
  340.                 t_up3 = 1500;
  341.         }
  342. }
  343. void left()        //左轉(zhuǎn)
  344. {
  345. //調(diào)整四腳姿勢
  346.         delayms(250);
  347.         t_up0 = 1500;
  348.         t_up1 = 1500;
  349.   t_up2 = 1500;
  350.   t_up3 = 1500;
  351.   t_up4 = 1500;
  352.   t_up5 = 1500;
  353.   t_up6 = 1500;
  354.   t_up7 = 1500;
  355.   t_up8 = 1500;
  356.   t_up9 = 1500;
  357.   t_up10 = 1500;
  358.   t_up11 = 1600;
  359.        
  360.         delayms(250);
  361.         t_up1 = 1200;
  362.         delayms(125);
  363.         t_up0 = 1900;
  364.         delayms(100);
  365.         t_up1 = 1500;
  366.         delayms(200);
  367.         t_up3 = 1000;
  368.         while(direc == 4)
  369.         {
  370.                 delayms(200);
  371.                 t_up1 = 1700;
  372.                 delayms(50);
  373.                 t_up2 = 1700;
  374.                 delayms(200);
  375.                 t_up6 = 2000;  // 1900
  376.                 delayms(200);
  377.                 t_up3 = 1500;
  378.                 delayms(200);
  379.                 t_up9 = 1100;
  380.                 delayms(50);
  381.                 t_up2 = 1500;
  382.                 delayms(200);
  383.                 t_up1 = 1500;
  384.                 delayms(200);
  385.                 t_up6 = 1500;
  386.                 delayms(200);
  387.                 t_up3 = 1100;
  388.                 delayms(200);
  389.                 t_up11 = 1400;
  390.                 delayms(50);
  391.                 t_up9 = 1500;
  392.                 delayms(50);
  393.                 t_up11 = 1600;
  394.         }
  395. }
復制代碼

所有資料51hei提供下載:
避障機器人.rar (63.17 KB, 下載次數(shù): 134)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:610719 發(fā)表于 2019-11-1 16:38 | 顯示全部樓層
提問,程序中利用定時器1控制PWM占空比時間,但是樓主的程序中,定時器1在定時器1中斷中,這樣做的話,當中斷中的定時器1溢出時,會不會再次進入定時器中斷1,陷入死循環(huán)
回復

使用道具 舉報

ID:623518 發(fā)表于 2019-10-15 23:59 來自手機 | 顯示全部樓層
厲害厲害
回復

使用道具 舉報

ID:516644 發(fā)表于 2020-2-29 19:58 | 顯示全部樓層
1206246381 發(fā)表于 2019-11-1 16:38
提問,程序中利用定時器1控制PWM占空比時間,但是樓主的程序中,定時器1在定時器1中斷中,這樣做的話,當中 ...

在中斷里,只是改變了PWM的輸出值,沒有死循環(huán)
回復

使用道具 舉報

ID:203076 發(fā)表于 2020-3-26 16:46 | 顯示全部樓層
請問樓主 還有外置電路嗎?
回復

使用道具 舉報

ID:516644 發(fā)表于 2020-4-5 22:26 | 顯示全部樓層
qihemu 發(fā)表于 2020-3-26 16:46
請問樓主 還有外置電路嗎?

只有最小系統(tǒng)和降壓電路
回復

使用道具 舉報

ID:723293 發(fā)表于 2020-4-6 11:45 | 顯示全部樓層
學習了!!!
回復

使用道具 舉報

ID:216527 發(fā)表于 2020-4-24 11:03 | 顯示全部樓層
這個不錯,正好要做一個玩一下,謝謝!
回復

使用道具 舉報

ID:410464 發(fā)表于 2020-4-28 09:39 | 顯示全部樓層
這個程序怎么這么熟悉呢?
回復

使用道具 舉報

ID:1003334 發(fā)表于 2022-4-20 20:03 | 顯示全部樓層
樓主,問一下舵機是不是需要外加電路,我之前做的一個小車沒有加電路然后操控舵機會導致藍牙斷開
回復

使用道具 舉報

ID:1077953 發(fā)表于 2023-5-16 22:01 | 顯示全部樓層
有雙足機器人走路都的源程序嘛,求大佬
回復

使用道具 舉報

ID:884711 發(fā)表于 2024-5-5 09:04 | 顯示全部樓層
路過學習,謝謝分享!
回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜小影院 | 二区av| 亚洲日产精品 | 久久久蜜桃一区二区人 | 全部免费毛片在线播放网站 | 久久久久亚洲 | 国产xxx在线观看 | 日韩一二区 | 欧美一区二区三区在线 | 福利片一区二区 | 国产精品一区二区三区久久久 | 亚洲精品国产一区 | 国产视频精品在线观看 | 日韩精品在线网站 | 97国产精品视频人人做人人爱 | 精品欧美一区免费观看α√ | 久久久久久久av麻豆果冻 | 欧美一区二区在线看 | 秋霞电影一区二区三区 | 国产毛片久久久久久久久春天 | 日韩精品一区二区三区免费观看 | 日韩成人专区 | 成人久久网| 精品一区二区三区在线视频 | 国产精品激情 | 粉色午夜视频 | 日韩欧美成人一区二区三区 | 日韩中出 | 国产色黄 | 欧美人妖网站 | 一区二区三区国产好 | 51ⅴ精品国产91久久久久久 | 国产又色又爽又黄又免费 | 国产成人综合在线 | 色综合久久天天综合网 | 国产高清精品一区二区三区 | 亚洲最大的成人网 | 成人免费视频观看视频 | 日本三级电影免费 | 免费日本视频 | 日韩二区 |