目前分類:Arduino (21)
- Apr 06 Wed 2022 22:20
[Arduino] 021 | ST7789 1.3" LCD (cs pin without)
- Nov 22 Mon 2021 23:32
[Arduino] 020 | xbee點對點傳輸
- Oct 09 Sat 2021 18:00
[Arduino] 017 | No such file or directory
當安裝玩新的範例程式, 在執行編譯後, 會出現錯誤訊息 XXX.h: No such file or directory, 這可能是arduino安裝路徑下缺少檔案, 也有可能是新安裝範例的Library造成錯誤.
目前最有效的解決方法
將C:\Users\********\Arduino\libraries下新增的Library移至Arduino主程式安裝的libraries目錄下, 然後將C:\Users\********\Arduino\libraries新增的移除.
- Oct 09 Sat 2021 10:19
[Arduino] 016 | ESP32-CAM 硬體連接與程式寫入
1.硬體連接:ESP32-CAM
手邊這片是不帶有USB轉UART的板子, 所以需要再另外接一塊USB轉UART TTL, 另外這塊沒有支援一鍵燒錄, 因此程式上傳較麻煩.
2.Arduino開發板工具安裝
- Feb 18 Mon 2019 22:51
[Arduino 015] 超音波距離量測模組
超音波距離感測器是利用聲波量測距離,其工作原理跟海底聲納、車輛倒車感測等相同。
感測器依結構又分會收發一體式與收發分體式,而在智能小車大多採用收發分體式,操作上較簡單。
收發分體式由發射端發射脈衝訊號,經由碰撞物體反射至接收端,因此從發射到接收到訊號的傳遞時間就以可計算出距離。
另外因收發分體式會受角度。
- Feb 17 Sun 2019 13:36
[Arduino 014] 應用於智能小車速度量測的光柵型脈衝計數感測器
光柵型速度感測器是搭配智能小車使用,由槽型光耦合感測器組成,屬於一種脈衝計數感測器。
槽型光耦合感測器由一發射LED與接收LED組成,當發生光遮斷時,就會改變輸出狀態,若搭配20格光柵型轉盤,每旋轉一圈就會產生20個脈衝,即所謂的編碼器。
因此我們可以利用中斷計數器計數脈衝數量後換算成RPM(Revolution Per Minute),達到速度量測結果。
在小車可以對每一個馬達進行速度控制,確保馬達轉速一致達到所謂的同動效果。
- Feb 16 Sat 2019 17:14
[Arduino 013] 16路12bit PWM控制器PCA9685
PCA9685是採用I2C通訊介面的16路PWM產生器,解析度為12bit,開關頻率為24 Hz到1526 Hz。
雖然具備16路的PWM,但16路的頻率無法單獨設置,只能調整各路的duty cycle,
所以比較適合應用在固定頻率但需調整PWM占空比的LED亮度調整或採用多軸小型伺服馬達的機器人。
- Aug 26 Sun 2018 22:15
[Arduino]012 SD卡讀取操作
- Aug 24 Fri 2018 21:49
[Arduino]011 數字排序
將一組數字遞升排序
uint16_t a[]={9,8,7,6,5,4,3,2,1};
rankUp(a,9); //呼叫副程式,陣列大小
void rankUp(uint16_t *arr, byte aSize){ //宣告arr為uint16型態的指標
uint16_t tempData;
- Jul 29 Sun 2018 23:42
[Arduino]010 使用GY-30測量WS2812 LED光強度
- Jul 29 Sun 2018 20:20
[Arduino]009 BH1750FVI (GY-30) 數位式光強度感測器
- Jul 29 Sun 2018 14:24
[Arduino]008 WS2812 LED串列控制
- Dec 06 Wed 2017 00:03
[Arduino]007 IRremote 遙控器的紅外線接收
1.硬體操作
動作說明: 將遙控器對準IR LED(Receiver),按下遙控器上的按鈕,藉由程式的串列通訊顯示接收的數值。
控制板:Arduino UNO
材料: IR LED(Reciver)、遙控器
- Nov 26 Sun 2017 16:38
[Arduino] 常用的幾種I/O控制函式
擺放位置 | ||||
名稱 | 宣告 | setup | loop | 說明 |
輸出控制 | int led = 3; | pinMode(led, OUTPUT); | digitalWrite(led, HIGH); digitalWrite(led, LOW); |
輸出0或1 |
輸出PWM (亮度調整) |
int led = 3; int brightness = 0; |
pinMode(led, OUTPUT); | brightness=100; //0~255 |
- Feb 23 Thu 2017 22:18
[Arduino]006 利用兩個SG90伺服馬達控制XY軸轉向(AVR C Code)
1.硬體操作
動作說明:使用兩個SG90伺服馬達做為X軸與Y軸方向的轉向馬達,搭配一個搖桿作為轉向控制。當操作控制桿時,伺服馬達會隨搖桿控制幅度轉向至對應的位置。
控制板:Arduino UNO
- Feb 18 Sat 2017 22:43
[Arduino]005 Arduino 伺服馬達控制SG90(改用AVR C Code PWM控制)
Arduino內建的函式myservo.write與myservo.writeMicroseconds都有最小正導通週期的限制,且限制最小值在550us,因此像SG90這種操作在500us~2000us之間並不適用。
而Arduino編輯程式不僅內建許多函式,也可以直接採用AVR的C Code。
- Feb 11 Sat 2017 11:29
拆解小型伺服馬達SG90
伺服馬達(servo motor)其組成包含直流馬達、減速齒輪、電位器及控制電路,減速齒輪可以減緩馬達轉速同時提高轉矩,而電位器是用來回饋目前位置。當我們輸入一脈衝訊號後,控制電會路判斷目標角度與電位器之間有差異而轉動馬達,此時馬達轉動會同時帶動電位器變動,當控制電路判斷電位器回饋的電壓與目標角度位置相同時,即停止轉動,如此即能達到角度控制。
Type:SG90
Weight: 9g
Dimension: 23*12.2*29mm
- Feb 06 Mon 2017 22:46
[Arduino]004 Arduino範例程式-伺服馬達控制Servomotor(SG90)
Arduino範例程式: Knob
程式目的:輸入一電壓以控制Servomotor的轉向角度(0~180),將此類比電壓轉換成數位訊號(ADC),透過myservo函式輸出可控制Servomotor的訊號。
#include #include <Servo.h> Servo myservo; // create servo object to control a servo int potpin = 0; // analog pin used to connect the potentiometer int val; // variable to read the value from the analog pin void setup() { 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, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180) myservo.write(val); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there }
從波形圖來看,控制頻率為50Hz,轉向180度的正週期為2.4ms,轉向為0度的正週期為0.55ms。
- Feb 06 Mon 2017 21:13
[Arduino]003 Arduino UNO(AVR ATmega328P)
- Feb 02 Thu 2017 23:54
[Arduino]002 Arduino範例程式-類比電壓轉數位訊號 (10-bit ADC)