查看: 1322|回復: 35
打印 上一主題 下一主題

[未解決] 新萌求助 電位器控制舵機

[復制鏈接]

該用戶從未簽到

跳轉到指定樓層
樓主
發表于 2019-10-18 14:32 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 最強的青蛙 于 2019-10-18 14:43 編輯

新萌求助
最近需要制作一個電位器控制舵機的控制器,找到了代碼示例直接可用,調試OK。


代碼如下:
#include <Servo.h>

Servo myservo;  // create servo object to control a servo


int potpin = 0;  // analog pin used to connect the potentiometer

int val;    // variable to read the value from the analog pin


void setup()

{

  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

}


void loop()

{

  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)

  val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180)

  myservo.write(val);                  // sets the servo position according to the scaled value

  delay(15);                           // waits for the servo to get there

}



新需求:現在根據實際應用情況需要再加2只電位器(暫定為2號,3號電位器),新加的2號,3號電位器分別微調舵機上區與下區部分行程,如果是180舵機,就微調0-30與150-180兩個區間。原本那只1號電位器行程受新加的電位器行程限制,例如新加的2只電位器把舵機行程調整到了下限20,上限160,那么原本那只電位器的總行程就不是0-180 ,而是變成20-160了。

問題:新加的2號,3號電位器,電路上就接到a1,a2即可,電路上沒有其它變化。求助各位大神幫下我這個新萌,代碼上怎么實現呢?有沒有大神幫我用簡短的代碼實現一下。。。先謝過了。

  • TA的每日心情
    開心
    2020-1-6 11:03
  • 簽到天數: 430 天

    [LV.9]以壇為家II

    沙發
    發表于 2019-10-19 10:23 | 只看該作者
    我認為只要加一個電位器接到A1口上就可對全程微調.
    int vt = analogRead(A1)/10;//增大除數就微調更細
    myservo.write(val+vt);  
    這個思路你可試一下

    該用戶從未簽到

    板凳
     樓主| 發表于 2019-10-19 22:42 | 只看該作者
    本帖最后由 最強的青蛙 于 2019-10-19 22:46 編輯
    lwq1947 發表于 2019-10-19 10:23
    我認為只要加一個電位器接到A1口上就可對全程微調.
    int vt = analogRead(A1)/10;//增大除數就微調更細
    mys ...

    感謝大神指導
    我的需求是對舵機末端的角度調整,保持現有精度就好。舵機舵臂現在的轉動角度范圍是0-180的話,我需要2個電位器分別可以調整0-30跟150-180,這樣調整后舵機舵臂轉動角度最小可以變成30-150,不知道我表達清楚沒
  • TA的每日心情
    開心
    2020-1-6 11:03
  • 簽到天數: 430 天

    [LV.9]以壇為家II

    地板
    發表于 2019-10-20 06:17 | 只看該作者
    你的要求若是精密調整舵機上下限的話可以用2個電位器中間串一個電阻然后并接在5V與GND上.使得電阻兩端的電壓分別在1V和4V左右.再將舵機電位器兩端分別接到那兩個電位器的中間接頭上,最后將舵機電位器的中間接頭接到A0上即可.這樣一來就可通過整分別調整兩個電位器來控制舵機電位器兩端電壓的大小使得舵機舵臂轉動角度最小可以變成30-150,

    該用戶從未簽到

    5#
     樓主| 發表于 2019-10-20 21:14 | 只看該作者
    本帖最后由 最強的青蛙 于 2019-10-20 22:37 編輯
    lwq1947 發表于 2019-10-20 06:17
    你的要求若是精密調整舵機上下限的話可以用2個電位器中間串一個電阻然后并接在5V與GND上.使得電阻兩端的電 ...

    你這個優化方案貌似不錯,我去搭建試一下,感謝大神指點。要得到1V 與4V電壓,請問大概分別串多大的電阻合適呢?R=U/I=4V/0.3A=13.333歐姆?等下我先把大神指點的電路畫個草圖消化一下。。
  • TA的每日心情
    開心
    2020-1-6 11:03
  • 簽到天數: 430 天

    [LV.9]以壇為家II

    6#
    發表于 2019-10-21 05:38 | 只看該作者
    兩頭各用一個1K電位器,中間接3K電阻即可.

    該用戶從未簽到

    7#
     樓主| 發表于 2019-10-21 09:19 | 只看該作者
    本帖最后由 最強的青蛙 于 2019-10-21 09:39 編輯
    lwq1947 發表于 2019-10-21 05:38
    兩頭各用一個1K電位器,中間接3K電阻即可.

    好的,記下了。畫了個草圖,幫我看看對嗎?
  • TA的每日心情
    開心
    2020-1-6 11:03
  • 簽到天數: 430 天

    [LV.9]以壇為家II

    8#
    發表于 2019-10-21 11:18 | 只看該作者
    對的,祝你成功.

    該用戶從未簽到

    9#
     樓主| 發表于 2019-10-24 08:17 | 只看該作者

    今天下班路上繞道去本地電子市場買了2顆  1k電位器,回家聯上已經實現。根據實際應用發現還需要新功能,需要通過一個2檔開關實現舵機反向的功能。請問代碼上如何實現呢?
  • TA的每日心情
    開心
    2020-1-6 11:03
  • 簽到天數: 430 天

    [LV.9]以壇為家II

    10#
    發表于 2019-10-24 11:04 | 只看該作者
    你的意思是通過2檔開關讓舵機電位器順時針控制30-150度變為150-30度嗎
    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    熱門推薦

    [限時福利]5分鐘帶你快速了解新一代開發板:M5STACK
    [限時福利]5分鐘帶你快速
    一、什么是M5Stack M5Stack是一種模塊化、可堆疊擴展的開發板,每個模塊
    【Arduino】168種傳感器系列實驗(140)---KY-027魔術光環模塊
    【Arduino】168種傳感器系
    37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是
    【Arduino】108種傳感器系列實驗(39)---18B20溫度傳感器模塊
    【Arduino】108種傳感器系
    37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是
    vscode 編譯Arduino 很慢
    vscode 編譯Arduino 很慢
    用 vscode 編譯 Arduino 程序 很慢,然后提示這個警告,請問有什么方法可以加快編譯速
    終于完成了客廳燈的小愛控制,更新于12月29日,更新完成
    終于完成了客廳燈的小愛控
    完成了小愛同學控制的客廳燈,用的是esp8266,附上視頻 http://v.youku.com/v_show/id
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    3d每天组六27个号必中