導航:首頁 > 編程語言 > arduino搖頭風扇編程

arduino搖頭風扇編程

發布時間:2023-06-04 02:52:59

『壹』 Arino編程用的是什麼方法

arino編程語言入門:

1. 關鍵字

語法符號:

;

;是一條語句結束的標志,供編譯器識別,必須得有。

{}

{}將多條語句合成一個復合語句,能劃分語句的作用域,增強整體整體的可讀性。

//

//行注釋,該行//後的所有語句,文字將不被編譯器所編譯、執行。相似的,還有,在中的所有語句,文字將不被編譯器所編譯、執行。

if(表達式)

{

語句A;

}

if(表達式1)

{

語句1;

}

else if(表達式2)

{

語句2;

}

...

else if(表達式n)

{

語句n;

}

else

{

語句n+1;

}

for(初始表達式;條件表達式;循環變數表達式)

{

循環體語句;

}

switch(表達式)

{

case 表達式常量1:語句序列1;

case 表達式常量2:語句序列2;

...

case 表達式常量i:語句序列i;

case 表達式常量n:語句序列n;

default:語句序列n+1;

}

while(條件表達式)

{

循環語句;

循環變數表達式;

}

do

{

循環體語句;

}while(條件表達式);

break;

continue;

return x;

goto 語句標號;



2. 數據類型:


3. 常量

HIGH | LOW 表示數字IO口的高低電平。HIGH 表示高電(1),LOW 表示低電平(0)。

INPUT | OUTPUT 表示數字IO口的方向,INPUT 表示輸入(高阻態),OUTPUT 表示輸出(AVR單片機能提供5V電壓 40mA電流)。

true | false true 表示真(1),false表示假(0)。

4. 程序結構

聲明變數及介面名稱(例如:int i;int ledPin=13;)。

void setup() 函數在程序開始時使用,初始化變數,管腳模式,調用庫函數等(例如:pinMode(ledPin,OUTUPT);)。

void loop() 在void setup()函數之後,即初始化之後,loop() 讓你的程序循環地被執行。使用它來運轉Arino。

5. 數字 I/O

以下型號為UNO

pinMode(pin, mode);

數字IO口輸入輸出模式定義函數,pin表示為0~13, mode表示INPUT或OUTPUT。

digitalWrite(pin, value) ;

數字IO口輸出電平定義函數,pin表示為0~13,value表示為HIGH或LOW。

必須先定義為輸入或輸出模式digitalWrite才能生效。

int digitalRead(pin);

數字IO口讀輸入電平函數,pin表示為0~13,value表示為HIGH或LOW。比如可以讀數

字感測器。

6. 模擬IO

int analogRead(pin);

模擬IO口讀函數,pin表示為0~5(ArinoDiecimila為0~5,Arino nano為0~7)。比如可以讀模擬感測器(10位AD,0~5V表示為0~1023)。

analogWrite(pin, value) - PWM

數字IO口PWM輸出函數,Arino數字IO口標注了PWM的IO口可使用該函數通常在引腳的旁邊標注~,pin表示3, 5, 6, 9,10, 11,value表示為0~255。比如可用於電機PWM調速或音樂播放。

7. 擴展 I/O

shiftOut(dataPin, clockPin, bitOrder,value);

SPI外部IO擴展函數,通常使用帶SPI介面的74HC595做8個IO擴展,dataPin為數據口,clockPin為時鍾口,bitOrder為數據傳輸方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要傳送的數據(0~255),另外還需要一個IO口做74HC595的使能控制。

unsigned long pulseIn(pin, value);脈沖長度記錄函數,返回時間參數(us),pin表示為0~13,value為HIGH或LOW。比如value為HIGH,那麼當pin輸入為高電平時,開始計時,當pin輸入為低電平時,停止計時,然後返回該時間。

8. 時間函數

unsigned long millis();返回時間函數(單位ms),該函數是指,當程序運行就開始計時並返回記錄的參數,該參數溢出大概需要50天時間。

delay(ms);延時函數(單位ms)。

delayMicroseconds(us);延時函數(單位us)。

9. 數學函數

min(x, y) ;求最小值。

max(x, y) ;求最大值。

abs(x) ; 計算絕對值。

constrain(x, a, b) ; 約束函數,下限a,上限b,x必須在ab之間才能返回。

map(value, fromLow, fromHigh, toLow,toHigh);約束函數,value必須在fromLow與toLow之間和fromHigh與toHigh之間。

pow(base, exponent);開方函數,base的exponent次方。

sq(x); 平方。

sqrt(x);開根號。

三角函數:

sin(rad);

cos(rad);

tan(rad);

10. 隨機數函數

randomSeed(seed);隨機數埠定義函數,seed表示讀模擬口analogRead(pin)函數 。

long random(max);隨機數函數,返回數據大於等於0,小於max。

long random(min, max);隨機數函數,返回數據大於等於min,小於max。

11. 外部中斷函數

attachInterrupt(interrupt, , mode;外部中斷只能用到數字IO口2和3,interrupt表示中斷口初始0或1,表示一個功能函數,mode:LOW低電平中斷,CHANGE有變化就中斷,RISING上升沿中斷,FALLING 下降沿中斷。

detachInterrupt(interrupt);中斷開關,interrupt=1 開,interrupt=0 關。

interrupts();中斷使能函數,用於使能中斷。

noInterrupts();中斷禁止函數,禁止中斷。

12. 串口收發函數

Serial.begin(speed);串口定義波特率函數,speed表示波特率(串列每秒傳輸數據位數的速率),如9600,19200等。

int Serial.available() 判斷緩沖器狀態。

int Serial.read();讀串口並返回收到參數。

Serial.flush();清空緩沖器。

Serial.print(data);串口輸出數據。Serial.print(數據,數據的進制) 默認為十進制(DEC)

Serial.println(data);串口輸出數據並帶回車符。

13. 重要

以上列舉了一些較常用的函數,事實上,在Arino的安裝目錄下的libraries還有眾多函數可以根據需要進行調用和學習。

也可以自己編寫函數然後按照libraries目錄下其他函數的格式打包好。放置在libraries目錄下,然後自己就可以在IDE環境下調用自己編寫的函數了。

通過以上介紹,其實大家可以看到arino編程語言入門並不難,以上內容分享出來給大家作為參考,想要了解更多更專業的arino編程語言教程可以去DF創客社區Arino教程專欄學習。

『貳』 用單片機控制風扇的轉速希望提供具體電路,我是新手希望大家多多幫助!!!

直流電機調速的技術是很常見的。。

不過當然不是用電阻,那樣會有巨大的損耗。

一般直流電機調速都採用PWM(即脈寬調制)技術。
即,首先在電源和電機之間串聯一個開關電子器件(比如mosfet管、達林頓管),這種器件可以以極高的速度控制電路通斷。然後,我利用模擬電路或者數字電路(現在多用單片機)來控制這個開關管就能控制電機的電功率。比如,我想讓電機工作電壓只有電源電壓的一半,我可以以1毫秒為周期,讓開關管通0.5毫秒,斷0.5毫秒,這樣快速的電壓波動在經過電機轉子電樞這一有慣性的元件後就被「抹平」了,而且平均下來電壓正好是電源的1/2,這就達到了控制電機輸出功率的目的。[1]

開關元件可以在淘寶上買到現成的模塊。其中最常用的是L298N做的電機控制板(樓上圖中上方的那個就是),有兩路雙向調速(用H橋實現)的輸出,單路最大電流2A,工作電壓是12V以下(記不清是12還是24,你查一下。。)。如果需要更大功率,可以找BTS7960做的模塊,容量是40A。。。

至於單片機,如果你有51可以用,學學定時器中斷和IO操作,然後網上51 PWM的資料很多。。當然arino更不錯(樓上圖中下方的那個就是,不過是山寨的,正版是藍色的,淘寶搜),除了AVR性能更好之外,IDE自帶的驅動函數也挺方便。我記得51是沒有硬體PWM埠的,而AVR有,在Arino IDE中直接調現成函數就能用。。。

參考資料:[1]來自我以前的原創回答

閱讀全文

與arduino搖頭風扇編程相關的資料

熱點內容
結對程序員 瀏覽:760
使用過的蘋果手機怎麼同步app 瀏覽:344
phpcookie無效 瀏覽:954
python可以搜數學答案 瀏覽:706
均線衍生指標源碼設置 瀏覽:496
做精一張圖pdf 瀏覽:851
編程培訓小朋友 瀏覽:787
巴克球製作解壓 瀏覽:851
測量參數時接單片機的 瀏覽:116
手機音樂添加文件夾 瀏覽:546
百度智能雲b18怎麼刪除app 瀏覽:968
單片機中為什麼顯示找不到頭文件 瀏覽:151
iisweb伺服器如何重啟 瀏覽:838
微信沒有適配方舟編譯器 瀏覽:81
箍筋加密區梁的凈高 瀏覽:889
samp如何加入外國伺服器 瀏覽:895
保鮮膜解壓教學視頻 瀏覽:983
台達plc編程通訊管理軟體 瀏覽:407
優優pdf 瀏覽:801
程序員職業穿搭 瀏覽:257