找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8131|回復: 38
打印 上一主題 下一主題
收起左側

素人學習Aduino編程的簡單辦法

[復制鏈接]
跳轉到指定樓層
樓主
ID:513258 發(fā)表于 2019-5-6 17:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 eagler8 于 2019-5-7 13:37 編輯

在開源硬件領域,偶只是素人一枚,完全的新手。為促進自己學習Arduino技術,一個笨辦法就是記錄各項實驗的情況。這當中肯定會有許多不懂的地方或是自以為是,還請各位老師多多賜教為盼。


學習Arduino有不同的方法,使用擴展板相對會比較簡便一些。利用我手頭的一塊“Aduino UNO 9in1 擴展板(Eagler8)”(見上圖),它上面集成了九種不同的開源模塊和五個擴展的外接端口,發(fā)現(xiàn)挺便利的就能進行18種的Arduino示例實驗。




評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:513258 發(fā)表于 2019-5-6 19:30 | 只看該作者
Arduino官網(wǎng)Arduino1.8.9中文版下載頁面 https://www.arduino.cc/en/Main/Software





回復

使用道具 舉報

板凳
ID:513258 發(fā)表于 2019-5-6 19:31
Arduino中文社區(qū)官網(wǎng)Arduino1.8.9中文版下載頁面 https://www.arduino.cn/thread-5838-1-1.html



地板
ID:513258 發(fā)表于 2019-5-6 19:32 | 只看該作者
實驗硬件準備
1、SG90 9G舵機一只,兼容紅外遙控器一只








回復

使用道具 舉報

5#
ID:513258 發(fā)表于 2019-5-6 19:35 | 只看該作者
2、Aduino UNO 9in1 實驗擴展板(Eagler8)一塊




回復

使用道具 舉報

6#
ID:513258 發(fā)表于 2019-5-6 19:36 | 只看該作者
3、Arduino UNO原裝板及UNO R3黃金板(國產(chǎn)兼容板)各一塊
為了實驗各種不同情況









回復

使用道具 舉報

7#
ID:513258 發(fā)表于 2019-5-6 21:32 | 只看該作者
實驗硬件都齊了


回復

使用道具 舉報

8#
ID:513258 發(fā)表于 2019-5-6 21:33
Aduino UNO 9in1 實驗擴展板(Eagler8)資料1、Eagler8參數(shù):
尺寸--70*53mm
平臺--Arduino
硬件--Arduino UNO及UNO R3兼容板


9#
ID:513258 發(fā)表于 2019-5-6 21:34 | 只看該作者
電原理圖


回復

使用道具 舉報

10#
ID:513258 發(fā)表于 2019-5-6 21:35 | 只看該作者
Eagler8模塊與板載端口:
復位按鍵(REST)
10K旋轉電位器模塊(A0)
2路SW按鍵模塊(D2、D3)
Light亮度傳感器模塊(A1)
LM35D溫度傳感器模塊(A2)
Buzzer無源蜂鳴器模塊(D5)
DHT11溫濕度傳感器模塊(D4)
ER Receiver紅外接收模塊(D6)
1路Analog Port模擬量端口(A3)
RGB全彩LED模塊(D9、D10、D11)
2路Digital Port數(shù)字量端口(D7、D8)
1個TTL串口(可接入藍牙或WIFI模塊等)
2路3mm LED模塊(紅色D12、藍色D13)
1個雙向同步串行總線I2C接口(A4 SDA及A5 SCL,可接顯示屏等)


回復

使用道具 舉報

11#
ID:513258 發(fā)表于 2019-5-7 13:38 | 只看該作者
有了這塊超棒的9in1擴展板,為了提高學習Arduino的效率,今天開始嘗試Arduino 1.8.9與Mind+ V1.53相結合的方式,就是把原來的代碼編程(會讓新人害怕的東西)和直觀的圖形編程,二者配合起來學習及做實驗,都不偏頗。




回復

使用道具 舉報

12#
ID:513258 發(fā)表于 2019-5-7 13:39 | 只看該作者
在網(wǎng)上搜索了各種圖形編程軟件,比如Ardublock、S4A、Mixly米思齊、樂幻WeMake、小喵KittenBlock和慧編程mBlock5等,經(jīng)過簡單比較,最后還是選擇了DF創(chuàng)客社區(qū)的Mind+,主要是與Arduino UNO兼容的比較好,可以自動生成代碼,最新版本是V1.5.3。




回復

使用道具 舉報

13#
ID:513258 發(fā)表于 2019-5-7 13:40 | 只看該作者
Mind+ 程序下載地址:
鏈接:https://pan.baidu.com/s/1Y4EVVvid7vCqEE00LnqO8A      提取碼:wn48


回復

使用道具 舉報

14#
ID:513258 發(fā)表于 2019-5-7 13:41 | 只看該作者
開始實驗之前,先下載擴展板配套的示例程序,將解壓縮的 Eagler8 文件夾拷貝到 Arduino IED 安裝目錄下的 libraries 文件夾內(nèi)。啟動 Arduino IDE,打開文件‐-示例‐-Eagler8,即可調(diào)用18個示例實驗程序。Eagler8擴展板示例18種編程程序下載地址:
鏈接:https://pan.baidu.com/s/1ih2UlZmwTP17IvBPI4ToHQ        提取碼:bnm7



回復

使用道具 舉報

15#
ID:513258 發(fā)表于 2019-5-7 13:42 | 只看該作者
把Eagler8擴展板插在Aduino UNO上






回復

使用道具 舉報

16#
ID:513258 發(fā)表于 2019-5-7 13:42 | 只看該作者
LED 的實驗有四項
01 Blink:D13藍色 LED 閃爍 ,載入示例程序




回復

使用道具 舉報

17#
ID:513258 發(fā)表于 2019-5-7 13:43 | 只看該作者
代碼
/*
  Eagler8實驗程序列表
  01 Blink:D13藍色 LED 閃爍
*/
int led = 13;
void setup() {
  pinMode(led, OUTPUT);
}
void loop() {
  digitalWrite(led, HIGH);
  delay(1000);            
  digitalWrite(led, LOW);
  delay(1000);            
}

回復

使用道具 舉報

18#
ID:513258 發(fā)表于 2019-5-7 13:44 | 只看該作者
Mind+ 圖形編程如下




回復

使用道具 舉報

19#
ID:513258 發(fā)表于 2019-5-7 13:45 | 只看該作者
分別上傳,都通過了,見視頻




回復

使用道具 舉報

20#
ID:513258 發(fā)表于 2019-5-7 18:01 | 只看該作者
聽了臺灣佑來老師的視頻課,才明白要點亮一只LED燈,對于學習Arduino編程,邁出這一步真的挺不容易。和用普通電子電路開關燈不同,開源硬件需要解決軟件、硬件和驅(qū)動等不少問題,才能用程序點亮LED。
實驗的第二個程序,是控制二只LED燈交替閃爍,D12端口接紅色LED,D13端口接到藍色LED,間隔延時1000毫秒(1秒)。
啟動 Arduino IDE,打開文件‐-示例‐-Eagler8,即可調(diào)用18個示例實驗程序中的第2個---Blink2。



回復

使用道具 舉報

21#
ID:513258 發(fā)表于 2019-5-7 18:01 | 只看該作者
點工具,選擇主板和端口后,上傳成功見下圖




回復

使用道具 舉報

22#
ID:513258 發(fā)表于 2019-5-7 18:02 | 只看該作者
代碼如下:
/*
Eagler8實驗程序列表
02 Blink2:D12、D13紅藍色 LED 交替閃爍
*/
int led1 = 12;
int led2 = 13;
void setup() {               
  pinMode(led1, OUTPUT);   
  pinMode(led2, OUTPUT);
}
void loop() {
  digitalWrite(led1, HIGH);
  delay(1000);            
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);
  delay(1000);
  digitalWrite(led2, LOW);
}

回復

使用道具 舉報

23#
ID:513258 發(fā)表于 2019-5-7 18:03 | 只看該作者
打開圖形編程Mind+,先連接設備,我這里是COM3(可在電腦設備端口中查詢)。




回復

使用道具 舉報

24#
ID:513258 發(fā)表于 2019-5-7 18:03 | 只看該作者
而后在擴展模塊中,打開主控板項,選擇Arduino UNO。




回復

使用道具 舉報

25#
ID:513258 發(fā)表于 2019-5-7 18:04 | 只看該作者
使用Arduino UNO的初始頁面是這樣的(選擇了上傳模式)。




回復

使用道具 舉報

26#
ID:513258 發(fā)表于 2019-5-7 18:05 | 只看該作者
第一步,設置D12腳輸出高電平,D13腳輸出低電平,意思是紅燈(12)亮,藍燈(13)滅;




回復

使用道具 舉報

27#
ID:513258 發(fā)表于 2019-5-7 18:05 | 只看該作者
第二步,延時1秒;
第三步,反過來設置D12腳輸出低電平,D13腳輸出高電平;
第四步,再延時1秒,并循環(huán)執(zhí)行,實現(xiàn)紅藍燈間隔1秒交替閃爍。圖形編程的右邊是自動生成的代碼。



回復

使用道具 舉報

28#
ID:513258 發(fā)表于 2019-5-7 18:06 | 只看該作者
點右上方上傳按鈕,上傳成功。








回復

使用道具 舉報

29#
ID:513258 發(fā)表于 2019-5-7 18:07 | 只看該作者
本實驗02 Blink2:
D12、D13紅藍色 LED 交替閃爍的效果視頻



回復

使用道具 舉報

30#
ID:513258 發(fā)表于 2019-5-9 14:47 | 只看該作者
第三個LED 實驗是模擬爆閃警燈,啟動 Arduino IDE,打開文件‐-示例‐-Eagler8,調(diào)用18個示例實驗程序中的第3項---Blink3,源程序如下:/*
Eagler8實驗程序列表
03 Blink3:模擬爆閃警燈
*/

int led1 = 12;
int led2 = 13;
int i,j;
void setup() {               
  pinMode(led1, OUTPUT);     
  pinMode(led2, OUTPUT);
}
void loop() {
  for(i=0;i<10;i++){
  digitalWrite(led1, HIGH);  
  delay(30);              
  digitalWrite(led1, LOW);
  delay(40);
  }  
  for(i=0;i<10;i++){
  digitalWrite(led2, HIGH);  
  delay(30);
  digitalWrite(led2, LOW);  
  delay(40);
  }
}


回復

使用道具 舉報

31#
ID:513258 發(fā)表于 2019-5-9 14:49 | 只看該作者
回復

使用道具 舉報

32#
ID:513258 發(fā)表于 2019-5-9 14:50 | 只看該作者
借助自動生成功能,最終還是在Mind+上通過了,見下圖












回復

使用道具 舉報

33#
ID:101726 發(fā)表于 2019-5-9 16:16 | 只看該作者
淘寶上沒找到
回復

使用道具 舉報

34#
ID:513258 發(fā)表于 2019-5-9 18:21 | 只看該作者
第三個LED 實驗是模擬爆閃警燈,啟動 Arduino IDE,打開文件‐-示例‐-Eagler8,調(diào)用18個示例實驗程序中的第3項---Blink3,源程序如下:

/*
Eagler8實驗程序列表
03 Blink3:模擬爆閃警燈
*/


int led1 = 12;
int led2 = 13;
int i,j;
void setup() {               
  pinMode(led1, OUTPUT);     
  pinMode(led2, OUTPUT);
}
void loop() {
  for(i=0;i<10;i++){
  digitalWrite(led1, HIGH);  
  delay(30);              
  digitalWrite(led1, LOW);
  delay(40);
  }  
  for(i=0;i<10;i++){
  digitalWrite(led2, HIGH);  
  delay(30);
  digitalWrite(led2, LOW);  
  delay(40);
  }
}

回復

使用道具 舉報

35#
ID:513258 發(fā)表于 2019-5-9 21:51 | 只看該作者

搜9合一多功能擴展板就行
回復

使用道具 舉報

36#
ID:513258 發(fā)表于 2019-5-9 21:55 | 只看該作者
04 Breath_LED:
D9 全彩 LED 模擬紅色呼吸燈源程序:

/*
Eagler8實驗程序列表
04 Breath_LED:D9 全彩 LED 模擬紅色呼吸燈
*/

#define LED 9
int i = 0;

void setup()
{
  pinMode(LED,OUTPUT);
}
void loop()
{
for(i=0;i<255;i++)
  {
    analogWrite(LED,i);
    delay(15);
  }
  for(i=255;i>0;i--)
  {
    analogWrite(LED,i);
    delay(15);
  }
  analogWrite(LED,0);
  delay(1000);
}




回復

使用道具 舉報

37#
ID:513258 發(fā)表于 2019-5-9 21:56 | 只看該作者
在手冊上查到 analogWrite( )




回復

使用道具 舉報

38#
ID:513258 發(fā)表于 2019-5-9 21:57 | 只看該作者
使用 for 循環(huán)使LED 產(chǎn)生漸亮漸滅的效果,i++和i--大概是遞增與遞減的意思,先用隨機數(shù)來試試......








回復

使用道具 舉報

39#
ID:513258 發(fā)表于 2019-5-9 21:58 | 只看該作者
找到了變量的模塊,第一步,實現(xiàn)了遞增逐漸亮......








回復

使用道具 舉報

40#
ID:513258 發(fā)表于 2019-5-9 21:58 | 只看該作者
最后實驗效果基本一致,只是生成的代碼有點不一樣





回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表