最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Arduino控制舵機詳解 附代碼

 更新時間:2023年05月19日 15:11:27   作者:項目申報小狂人  
rduino是一款便捷靈活、方便上手的開源電子原型平臺,它構建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境,這篇文章主要介紹了Arduino控制舵機詳解(含代碼),需要的朋友可以參考下

Arduino使用C/C++編寫程序,雖然C++兼容C語言,但不是C語言。C語言是Arduino語言的一種。早期的Arduino核心庫使用C語言編寫,后來引進了面向對象的思想,目前最新的Arduino核心庫采用C與C++混合編寫而成。

rduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬件(各種型號的Arduino板)和軟件(ArduinoIDE)。由一個歐洲開發(fā)團隊于2005年冬季開發(fā)。其成員包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。

它構建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境。主要包含兩個的部分:硬件部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,你的計算機中的程序開發(fā)環(huán)境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會告訴Arduino電路板要做些什么了。

Arduino能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、馬達和其他的裝置來反饋、影響環(huán)境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。對Arduino的編程是通過 Arduino編程語言 (基于 Wiring)和Arduino開發(fā)環(huán)境(基于 Processing)來實現(xiàn)的?;贏rduino的項目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運行的軟件,它們之間進行通信 (比如 Flash, Processing, MaxMSP)來實現(xiàn)。

1. 舵機簡介

舵機是一種位置(角度)伺服的驅動器。舵機只是一種通俗的叫法,其實質是一個伺服馬達。在需要角度不斷變化并可以保持的控制系統(tǒng)中應用廣泛。如遙控機械人、飛機模型等。

舵機的轉動角度為0~180°,其內部結構包括電機,控制電路和機械結構三部分。電機有三根線引出,分別接VCC、GNG和信號線。主要有兩種引出線的格式:

  • 棕、紅、橙(棕色連接GND、紅色連接VCC、橙色連接信號);
  • 紅、黑、黃(紅色連接VCC、黑色連接GND、黃色連接信號)。

圖1 舵機實物圖

2 硬件電路連線

Arduino

Arduino

功能舵機功能
VCC正極紅色正極
GND負極棕色負極
D9(PWM)數(shù)字引腳(PWM)橙色(信號傳輸)信號輸入

3 項目:舵機來回轉動

實現(xiàn)功能:舵機0~180°來回轉動。

3.1 控制代碼

#include <Servo.h>            //加載文件庫
int pos = 0;
Servo myservo;
void setup()
{
  myservo.attach(9, 500, 2500);          //修正脈沖寬度
}
void loop()
{
  for (pos = 0; pos <= 180; pos += 1) {       //pos+=1等價于pos=pos+1
    myservo.write(pos);
    delay(15);					
  }
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    delay(15); 					
  }
}

3.2 仿真結果

圖2 舵機連線及仿真圖

4 項目2:光控舵機

實現(xiàn)功能:隨著光照強度增加,舵機跟著轉動。A0產生的模擬值大于500時,內置的13引腳的可編程LED發(fā)光。

4.1硬件電路連線

Arduino

Arduino

功能舵機功能
VCC正極紅色正極
GND負極棕色負極
D9(PWM)數(shù)字引腳(PWM)橙色(信號傳輸)信號輸入
A0模擬接口(光敏電阻)

4.2 控制代碼

#include <Servo.h>
const int sensorPin = A0;       
int led=13;         
int pos = 0;
Servo myservo;//創(chuàng)建舵機對象
void setup(){
  myservo.attach(9, 500, 2500);
  pinMode(led,OUTPUT);
  Serial.begin(9600);
}
void loop(){
  int val=analogRead(sensorPin);
  if(val>500){
    digitalWrite(led,HIGH);
  }
  else{
    digitalWrite(led,LOW);
  }
  int yp=map(val,0,1023,0,180);
    //數(shù)值轉換,將[0,1023]產生的模擬值轉換成[0,180]中的值
  Serial.println(yp);
  myservo.write(yp);
  delay(10);
}

4.3 仿真結果

圖4 光控舵機仿真

5項目3:串口控制舵機和內置LED燈

實現(xiàn)功能如下:

串口輸入2,led點亮,同時串口打印“ON”,舵機轉動到90°。

串口輸入4,led熄滅,同時串口打印“OFF”,舵機轉動到180°

 
#include <Servo.h>
int led4=4;       
int led=13;         
Servo myservo;//創(chuàng)建舵機對象
void setup(){
  myservo.attach(9, 500, 2500);
  pinMode(led,OUTPUT);
  pinMode(led4,OUTPUT);
  Serial.begin(9600);
}
void loop(){
  if(Serial.available()>0){
    char c=Serial.read();
    if(c=='2'){
      digitalWrite(led,HIGH);
      digitalWrite(led4,HIGH);
      myservo.write(90);
      Serial.println("ON");
    }
   	else if(c=='4'){
      digitalWrite(led,LOW);
      digitalWrite(led4,LOW);
      myservo.write(180);
      Serial.println("OFF");
    }
  }
}

5.1仿真結果

圖4 串口控制舵機仿真

6 用到的函數(shù)解釋

  • Serial.begin()是串口初始化函數(shù),設置傳輸速率。
  • Serial.println()與Serial.print()的區(qū)別在于前者具備換行功能,后者不具備。
  • Servo.h是舵機庫文件,直接在Aruidno IDE中可以加載。
  • Servo myservo為創(chuàng)建對象,本質就是一個名稱,myservo可自己命名。
  • myservo.attach(9)表示控制舵機的引腳。
  • myservo.write(45)表示舵機旋轉到45°的位置,而不是旋轉了45°。
  • map()函數(shù)的使用率比較高,將某一區(qū)間的值轉換為另外區(qū)間的值。

語法格式為: val =map(value, fromLow, fromHigh, toLow, toHigh);

val,value為同類型變量,fromHigh與fromLow為變量a的最大與最小值,toHigh與toLow為val變量的最大與最小值。map()函數(shù)根據(jù)范圍比例即可將某一區(qū)間的值縮放至另外區(qū)間的值,并將值賦予val。

到此這篇關于Arduino控制舵機詳解(含代碼)的文章就介紹到這了,更多相關Arduino控制舵機內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言實現(xiàn)簡單彈球游戲

    C語言實現(xiàn)簡單彈球游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單彈球游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 使用VS2010創(chuàng)建MFC ActiveX工程項目

    使用VS2010創(chuàng)建MFC ActiveX工程項目

    VS2010開發(fā)ActiveX有兩種方法,分別是MFC和ATL。MFC開過起來比較簡單,但是最終生成的文件比較大,ATL是專門用來開發(fā)ActiveX的,但是相對比較難,必須知道很多原理機制和API。咱先從MFC開發(fā)ActiveX開始吧。
    2015-06-06
  • C語言編寫Linux守護進程實例

    C語言編寫Linux守護進程實例

    這篇文章主要介紹了C語言編寫Linux守護進程實例,本文講解了守護進程及其特性、守護進程的編程要點、守護進程代碼實例等內容,需要的朋友可以參考下
    2015-02-02
  • 詳解C++實現(xiàn)匈牙利算法

    詳解C++實現(xiàn)匈牙利算法

    匈牙利算法是一種在多項式時間內求解任務分配問題的組合優(yōu)化算法,并推動了后來的原始對偶方法。美國數(shù)學家哈羅德·庫恩于1955年提出該算法。此算法之所以被稱作匈牙利算法,是因為算法很大一部分是基于以前匈牙利數(shù)學家Dénes K&#337;nig和Jen&#337; Egerváry的工作之上創(chuàng)建起來的
    2021-06-06
  • 深入理解 C++ 的 std::initializer_list及使用場景分析

    深入理解 C++ 的 std::initializer_list及使用場景分析

    本文介紹了C++11引入的std::initializer_list模板類,它作為統(tǒng)一初始化語法的重要橋梁,封裝同類型常量值,常用于容器初始化、函數(shù)參數(shù)傳遞和自定義類支持花括號初始化,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • C++實現(xiàn)LeetCode(150.計算逆波蘭表達式)

    C++實現(xiàn)LeetCode(150.計算逆波蘭表達式)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(150.計算逆波蘭表達式),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • VC WinExec打開指定程序或者文件的方法

    VC WinExec打開指定程序或者文件的方法

    使用WinExec命令打開指定程序或者文件的參數(shù)說明
    2008-11-11
  • 淺談do {...} while (0) 在宏定義中的作用

    淺談do {...} while (0) 在宏定義中的作用

    下面小編就為大家?guī)硪黄獪\談do {...} while (0) 在宏定義中的作用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C++空間命名的使用

    C++空間命名的使用

    本文主要介紹了C++空間命名的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Python/Java/JS語言調用C/C++庫的底層原理詳解

    Python/Java/JS語言調用C/C++庫的底層原理詳解

    開發(fā)過程中很多時候都會遇到調用C++動態(tài)庫dll的需求,下面這篇文章主要介紹了Python/Java/JS語言調用C/C++庫的底層原理,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2026-01-01

最新評論

元江| 若尔盖县| 天等县| 综艺| 谷城县| 张家港市| 垣曲县| 新竹市| 马龙县| 河源市| 上高县| 长岛县| 永济市| 舟曲县| 大余县| 红安县| 犍为县| 江安县| 平潭县| 芒康县| 广昌县| 黔江区| 治多县| 建瓯市| 阳西县| 泰安市| 门源| 通辽市| 丹凤县| 青岛市| 广宁县| 体育| 阿拉善盟| 公主岭市| 南京市| 婺源县| 伊春市| 渭南市| 洛南县| 呈贡县| 巫山县|