1 軟體 : Arduino ( v1.8.12 ) 會隨版本更新

2 元件及材料 :

ESP 32 、 超音波 、蜂鳴器 、 杜邦線x6、

Micro USB線x1

Arduino

教學 : https://zanrobot.com/uncategorized/3699

下載 : tps://www.arduino.cc/zh/main/software?setlang =cn

超音波蜂鳴器接線圖接

BZ(+) 接P12,
BZ ( – ) 接GND
trigPin 接 5 (GPIO5)
echoPin 接 4 (GPIO4)
Vcc 接 3.3 V

ESP 32 前置

教學 : https://zanrobot.com/uncategorized/3699

程式編碼

const int trigPin = 5;

const int echoPin = 4;

const int ledPin = 12;

const int freq = 2000;

const int ledChannel = 0;

const int resolution = 8;

long duration; int distance;

int safetyDistance;

void setup() { pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

Serial.begin(115200);

ledcSetup(ledChannel, freq, resolution);

ledcAttachPin(ledPin, ledChannel);

ledcWriteTone(ledChannel, 0);

}

void loop()

{ digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

{ distance= duration*0.034/2;

safetyDistance = distance; if (safetyDistance <= 30){ ledcWriteTone(ledChannel,0);

delay(100);

}

if (safetyDistance < 5){ ledcWriteTone(ledChannel,1730);

delay(100);

}

if (safetyDistance < 20){ ledcWriteTone(ledChannel,1046);

delay(100); }

}

Serial.print(“Distance: “);

Serial.println(distance);

}

影片

1 軟體 : Arduino ( v1.8.12 ) 會隨版本更新

2 元件及材料 :

ESP 32 板子
麵包板x1
杜邦線x4

電線x2
ledx1
220Ω 電阻x1
10k Ω 電阻x1

光敏電阻x1

Arduino

教學 : https://zanrobot.com/uncategorized/3699

下載 : tps://www.arduino.cc/zh/main/software?setlang =cn

接線圖

5V —-> +
GND —-> –
SVP —–> 光敏的端+10k
P13 —-> LED+端(腳長)

ESP 32 前置

教學 : https://zanrobot.com/uncategorized/3699

程式編碼

#include <BluetoothSerial.h>
BluetoothSerial SerialBT;//宣告藍芽物件=SerialBT

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);//序列視窗
SerialBT.begin(“ESP32”);//<<藍芽名稱,請自己記得
pinMode(A0, INPUT);
pinMode(13,OUTPUT);//電燈relay
}
int pr_min = 400;
void loop() {
char analogRea=SerialBT.read();
int pr = analogRead(A0);{
Serial.println(pr);
SerialBT.println(pr);
delay(1000);
}
while(SerialBT.available())
{
char btdata=SerialBT.read();
Serial.print(btdata);//查看藍芽輸入的值
if (btdata==’3′){digitalWrite(13,HIGH);}//開電燈
if (btdata==’4′){digitalWrite(13,LOW);}//關電燈
}
delay(100);
}

手機app

先到play商店下載arduino bluetooth controller

開啟並開啟藍芽選到裝置

點擊裝置會出現此列表

按下

當程式執行成功時將出現光敏阻值
且輸入 3 Led 亮 4 Led關

執行

1 軟體 : Arduino ( v1.8.12 ) 會隨版本更新

2 元件及材料 :

ESP 32 、 伺服馬達 、 杜邦線x3、Micro USB線x1

Arduino

教學 : https://zanrobot.com/uncategorized/3699

下載 : tps://www.arduino.cc/zh/main/software?setlang =cn

伺服馬達接線圖

黃線 P16紅線5V 黑線 GND

ESP 32 前置

教學 : https://zanrobot.com/uncategorized/3699

程式編碼

#include <Servo.h>//宣告
Servo servo;//命名

int pos = 0;

void setup() {
Serial.begin(115200);//序列阜監控視窗
servo.attach(16); //橘色的線接主要是訊號線,接到 p16
}

void loop() {
if(Serial.available()){                 //
int num = Serial.parseInt();     // case 前置 num(數字鍵)

switch(num) {                            //   

case 1 :   //1~9
for(pos = 0; pos < 180; pos += 1) // 一度一度由 0 度旋轉到 180 度

servo.write(pos);
delay(15);
break;

case 2 : // 1~9
for(pos = 180; pos>=1; pos-=1) // 一度一度由 180 度旋轉到 0 度

servo.write(pos);
delay(15);
break;
}
}
}

注意!

上傳時如果出現了下方狀況

伺服ESP32網址:
https://github.com/RoboticsBrno/ServoESP32

解決過程

先到打開伺服esp32網址(上方網址)

將檔案下載

壓縮檔案

找到arduino 並打開資料夾

進入後找到libraries 並打開

將剛剛的壓縮檔放入即可

3 執行

開啟監控視窗

輸入設定的數值( 如 : 我是 case 1 就是輸入 1 )

影片

1 軟體 : Arduino ( v1.8.12 ) 會隨版本更新

2 元件與材料

ESP 32 板子
麵包板x1
杜邦線x6
ULN2003 步進馬達驅動模組
步進馬達x1

3 接上元件

線路圖

In 1p14 In 2p12 In 3p13

In 4p15 VDD5V 、 GND 接 GND

程式碼

#define A 14 //A 相線圈接到 Arduino Pin 14
#define B 12 //B 相線圈接到 Arduino Pin 12
#define A_BAR 13 // A_BAR 相線圈接到 Arduino Pin 13
#define B_BAR 15 // B_BAR 相線圈接到 Arduino Pin 15
#define rr 50 //轉速設定
#include <Stepper.h> //引入 Stepper.h 檔

Stepper stepper(200, A, A_BAR, B, B_BAR);

void setup(){
stepper.setSpeed(rr); //將馬達的速度設定成 50 RPM
}

void loop(){
stepper.step(2048); //順時針 1 圈
delay(2000);
stepper.step(-2048); //逆時針 1 圈
delay(2000);
}

 

 

 

4 執行

 

1 軟體 :

Arduino ( v1.8.12 ) 會隨版本更新

2 元件及材料 :

ESP 32 、 超音波感測器杜邦線x3

Micro USB線x1

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Arduino ( v1.8.12) 會隨版本更新

下載 :

tps://www.arduino.cc/zh/main/software?setlang =cn

紅色框起來的部分,點擊作業系統下載

This image has an empty alt attribute; its file name is Screenshot-2020_3_13-上午-03_10_33-1024x576.png

安裝

點擊 I Agree

This image has an empty alt attribute; its file name is 螢幕擷取畫面-10.png

選擇物件(建議全選),在按 Next >

This image has an empty alt attribute; its file name is 螢幕擷取畫面-11.png

選擇檔案位置,在按 Install

This image has an empty alt attribute; its file name is 螢幕擷取畫面-12.png

跑完後就會出現在桌面

This image has an empty alt attribute; its file name is 螢幕擷取畫面-13.png

圖示

This image has an empty alt attribute; its file name is 螢幕擷取畫面-14.png

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

3 超音波感測器

超音波感測器 (圖) ↓ ↓ ↓ ↓ ↓

電路接線圖

VCC5Vtrig p12、echop14 GND GND

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

4 ESP 32 前置

首先

複製 :

https://dl.espressif.com/dl/package_esp32_index.json

開啟 arduino (軟體)

檔案 >> 偏好設定 >> 貼上 ( 額外的開發板管理員網址 )

在選 工具 >> 開發板 ” ??? ” >> 開發板管理員….

在從開發板找 ” nodeMCU-32S “

程式編碼

int trigPin = 12;
int echoPin = 14;
long duration, disCM;

void setup() { Serial.begin (115200);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);
} void loop() {

digitalWrite(trigPin, LOW);

delayMicroseconds(5);
digitalWrite(trigPin, HIGH);

delayMicroseconds(10);
digitalWrite(trigPin, LOW);

pinMode(echoPin, INPUT);

duration = pulseIn(echoPin, HIGH); disCM = (duration/2) * 0.0343; Serial.print(disCM);

Serial.print(“cm”);

Serial.println(); delay(100); }

5 執行

工具 >> 序列阜監控視窗

看到數值代表成功了 !!

Arduino

Arduino 是除了使用傳統的編譯工具鏈之外,Arduino專案還提供了一個基於Processing語言專案的整合式開發環境,也提供新手和專業人員一種低成本且簡單的方法 ,及多個互動元件。(本人現在用的版本是UNO)

下載

Arduino下載網站:https://www.arduino.cc/zh/main/software?setlang =cn

紅色框起來的部分,點擊作業系統下載

安裝

點擊 I Agree

選擇物件(建議全選),在按 Next >

選擇檔案位置,在按 Install

跑完後就會出現在桌面

圖示


————————————————————————————————–

藍芽

藍芽是一種可應用在電腦、行動電話、及其他家電用品上的無線傳輸技術。是一種晶體,控制部分Arduino設備,也是上手Arduion的基本功

藍芽模塊

藍芽接線圖

注意 ! 紅線和黑線千萬不要接反 ! 否則藍芽會燒掉 !

黃線和綠線接反,則無法讀取。


「arduino藍芽」的圖片搜尋結果

 

 

 

 

上半部是藍芽的基本教學( Arduion 藍芽不需要程式驅動)

————————————————————————————————–

雙向通訊

是為了測試藍芽動作是否正常運行,雙向通訊測試是一個不錯的方法。

需先接上面藍芽!!!

下載手機app

google play 搜尋 Arduino bluetooth controller 下載

編碼

Arduino打開,將下方編碼輸入進去後

點擊紅框上傳 (注意 ! TX RX 的黃線和綠線要先拔除,再上傳編碼 !)

程式碼

int val;
void setup() {
Serial.begin(9600); // opensserial port, sets data rate to 9600 bps
while(Serial.read()>= 0){}//clear serialbuffer
}
void loop() {
if (Serial.available() > 0) {
delay(100); // 等待資料傳完
int numdata = Serial.available();
val=Serial.read();
Serial.println(val);
if(val==49)
{
Serial.println(“Test OK“); //回答的字串
Serial.println(val);
}
while(Serial.read()>=0){} //清空串列埠快取
}
// put your main code here, to run repeatedly:
}

   

上傳完後,手機 Arduino 藍芽後測試功能

打開app選取相對應的藍芽,比如我的是HC-06

點擊後再選取 Terminal mode

後在紅框輸入1就會跑出下圖

藍芽LED

利用藍芽來控制ˋLED燈

需先接上面藍芽!!!

下載手機app

一樣Google play搜尋Arduino藍牙控制器下載(有的略過)

編碼

程式碼

void setup() {

Serial.begin(9600);

pinMode(13, OUTPUT); // put your setup code here, to run once:

}

void loop() {

// put your main code here, to run repeatedly:

if(Serial.available()>0) {
char data= Serial.read();

module switch(data)

{

case ‘O’: digitalWrite(13, HIGH);break; // when a is pressed on the app on your smart phone

case ‘X’: digitalWrite(13, LOW);break; // when d is pressed on the app on your smart phone

default : break;

}

Serial.println(data);

}

delay(50);

}

(上傳雙向通訊有教學)

上傳完後,手機連 Arduino 藍芽後測試功能

與雙向通訊相同

點擊 Switch mode

點擊按鈕,控制LED

利用程式設成 “O” 開燈“X” 關燈

點開 Terminal mode

This image has an empty alt attribute; its file name is Screenshot_2020-03-13-20-49-50-571_com.giumig.apps_.bluetoothserialmonitor.jpg

輸入 “O” 亮 ,輸入 “X” 暗

參考資料

https://www.itread01.com/content/1549002977.html

https://roy051023.github.io/2017/07/04/App-Control-Led-On-Off/

https://zh.wikipedia.org/wiki/Arduino