日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

protues仿真控制舵机

發布時間:2023/12/9 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 protues仿真控制舵机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在proteus中仿真arduino控制舵機,相對來說比較容易, 但控制過程中會遇到一些問題,這里簡單的說一說,希望對新手有參考租用。
一、基本電路的搭建(為了觀察可變電阻的值與轉動角度的對應,添加一個虛擬終端)

當然,我們可以采用arduino板 庫文件直接來繪制(參考前面的博文:《proteus下仿真arduino》),不過對于長期玩arduino的玩家來說最好熟悉用atmega328p來替代arduino的玩法,這樣更省事!
這里需要注意的是,如果我們采用328P來替代,注意將ARef和AVcc置高電平,否則我們的變阻器的阻值就會出現異常(數值不會變化)。

二、程序代碼(這里我們采用arduino的servo實例代碼)

/*Controlling a servo position using a potentiometer (variable resistor)by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>modified on 8 Nov 2013by Scott Fitzgeraldhttp://www.arduino.cc/en/Tutorial/Knob */#include <Servo.h>Servo myservo; // create servo object to control a servoint potpin = 3; // analog pin used to connect the potentiometer int val; // variable to read the value from the analog pinvoid setup() { Serial.begin(9600); pinMode(potpin,INPUT);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, 1024, 0, 180); // scale it to use it with the servo (value between 0 and 180)Serial.println(val);myservo.write(val); // sets the servo position according to the scaled valuedelay(15); }

三、轉動精度(默認情況下轉動精度是不會很好的匹配驅動程序的,我們進行如下調節設置)
雙擊,打開伺服電機的設置界面:

minimum control pluse 調整靠近最左側角度(如0角度)處的精度
maxinum control pulse 調整靠近最右邊角度(如180角度)處的精度

這個頻率實際與驅動程序中設定的頻率有直接關系,但每次都修改驅動程序比較麻煩,這里就修正了這樣一個值。
如果我們有興趣修改驅動程序庫,可以找一下代碼。
自帶的servo庫默認的頻率是50Hz,但是可以在它的頭文件Servo.h中修改。修改下面這行即可以把PWM頻率:
#define REFRESH_INTERVAL 500

經過調整,我們可以看到,精度還是基本對得起我們的辛勞的

總結

以上是生活随笔為你收集整理的protues仿真控制舵机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。