目前分類:Arduino (21)

瀏覽方式: 標題列表 簡短摘要

imageimage

取得的ST7789少了一個CS Pin非Adafruit版本,使用Adafruit的Library無法正常操作。

 

線路連接

image

門外漢 發表在 痞客邦 留言(0) 人氣()

點對點傳輸是將雙方設定在同一個PAN底下,透過彼此之間的UART地址進行收發。

1. 設定共同的Pen

2.設定共同的DH

3.設定對方的DL

點1

門外漢 發表在 痞客邦 留言(0) 人氣()

image

當安裝玩新的範例程式, 在執行編譯後, 會出現錯誤訊息 XXX.h: No such file or directory, 這可能是arduino安裝路徑下缺少檔案, 也有可能是新安裝範例的Library造成錯誤.

目前最有效的解決方法

將C:\Users\********\Arduino\libraries下新增的Library移至Arduino主程式安裝的libraries目錄下, 然後將C:\Users\********\Arduino\libraries新增的移除.

image

門外漢 發表在 痞客邦 留言(0) 人氣()

1.硬體連接:ESP32-CAM

手邊這片是不帶有USB轉UART的板子, 所以需要再另外接一塊USB轉UART TTL, 另外這塊沒有支援一鍵燒錄, 因此程式上傳較麻煩.

image

 

2.Arduino開發板工具安裝 

門外漢 發表在 痞客邦 留言(0) 人氣()

超音波距離感測器是利用聲波量測距離,其工作原理跟海底聲納、車輛倒車感測等相同。

感測器依結構又分會收發一體式與收發分體式,而在智能小車大多採用收發分體式,操作上較簡單。

收發分體式由發射端發射脈衝訊號,經由碰撞物體反射至接收端,因此從發射到接收到訊號的傳遞時間就以可計算出距離。

另外因收發分體式會受角度。

  

門外漢 發表在 痞客邦 留言(0) 人氣()

光柵型速度感測器是搭配智能小車使用,由槽型光耦合感測器組成,屬於一種脈衝計數感測器。

槽型光耦合感測器由一發射LED與接收LED組成,當發生光遮斷時,就會改變輸出狀態,若搭配20格光柵型轉盤,每旋轉一圈就會產生20個脈衝,即所謂的編碼器。

因此我們可以利用中斷計數器計數脈衝數量後換算成RPM(Revolution Per Minute),達到速度量測結果。

在小車可以對每一個馬達進行速度控制,確保馬達轉速一致達到所謂的同動效果。

門外漢 發表在 痞客邦 留言(0) 人氣()

PCA9685是採用I2C通訊介面的16路PWM產生器,解析度為12bit,開關頻率為24 Hz到1526 Hz。

雖然具備16路的PWM,但16路的頻率無法單獨設置,只能調整各路的duty cycle,

所以比較適合應用在固定頻率但需調整PWM占空比的LED亮度調整或採用多軸小型伺服馬達的機器人。

門外漢 發表在 痞客邦 留言(0) 人氣()

Arduino Libary: SD

範例程式: ReadWrite

說明

The library supports FAT16 and FAT32 file systems on standard SD cards and SDHC cards.

門外漢 發表在 痞客邦 留言(1) 人氣()

將一組數字遞升排序

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;

門外漢 發表在 痞客邦 留言(0) 人氣()

R、G或B三種顏色的LED晶片在相同電流驅動下,會有不一樣的亮度結果,因此使用GY-30(BH1750FVI)進行光強度測量。

 

1.硬體操作

控制板:Arduino UNO

門外漢 發表在 痞客邦 留言(0) 人氣()

 BH1750FVI是一個帶有16bit ADC的數位式光強度感測器, 採用I2C傳輸通訊, 可以感測1 - 65535 lx的光強度.

規格

門外漢 發表在 痞客邦 留言(0) 人氣()

WS2812 RGB LED是具有內建驅動晶片功能的LED, 亦是使用5050 LED封裝加入驅動晶片, 驅動方式採串列進出, 因此可獨立控制串接LEDs的每一顆LED.

每個一R/G/B顏色可獨立控制,且每一個顏色可調整0~255階調,因此每一個顏色需用到8bit控制,每一顆LED需用到24bit控制.

 圖片來源

門外漢 發表在 痞客邦 留言(1) 人氣()

 

1.硬體操作

動作說明: 將遙控器對準IR LED(Receiver),按下遙控器上的按鈕,藉由程式的串列通訊顯示接收的數值。

控制板:Arduino UNO

材料: IR LED(Reciver)、遙控器

門外漢 發表在 痞客邦 留言(0) 人氣()

 

  擺放位置  
名稱 宣告 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

門外漢 發表在 痞客邦 留言(0) 人氣()

 

1.硬體操作

動作說明:使用兩個SG90伺服馬達做為X軸與Y軸方向的轉向馬達,搭配一個搖桿作為轉向控制。當操作控制桿時,伺服馬達會隨搖桿控制幅度轉向至對應的位置。

控制板:Arduino UNO

門外漢 發表在 痞客邦 留言(0) 人氣()

Arduino內建的函式myservo.write與myservo.writeMicroseconds都有最小正導通週期的限制,且限制最小值在550us,因此像SG90這種操作在500us~2000us之間並不適用。

而Arduino編輯程式不僅內建許多函式,也可以直接採用AVR的C Code。

門外漢 發表在 痞客邦 留言(0) 人氣()

伺服馬達(servo motor)其組成包含直流馬達、減速齒輪、電位器及控制電路,減速齒輪可以減緩馬達轉速同時提高轉矩,而電位器是用來回饋目前位置。當我們輸入一脈衝訊號後,控制電會路判斷目標角度與電位器之間有差異而轉動馬達,此時馬達轉動會同時帶動電位器變動,當控制電路判斷電位器回饋的電壓與目標角度位置相同時,即停止轉動,如此即能達到角度控制。

00  

Type:SG90
Weight: 9g
Dimension: 23*12.2*29mm

門外漢 發表在 痞客邦 留言(0) 人氣()

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。

文章標籤

門外漢 發表在 痞客邦 留言(0) 人氣()

Arduino經過調校生成的Uno board

市面上有不同UNO Board,但配置大致相同,目前常見的版本為UNO R3。

(引用此處原圖)

 

門外漢 發表在 痞客邦 留言(0) 人氣()

Arduino範例程式: AnaloginOutSerial

程式目的:將類比電壓轉換成數位訊號(ADC),並由Output輸出PWM,及透過串列通訊輸出數值。

 

001.png

003.png

文章標籤

門外漢 發表在 痞客邦 留言(0) 人氣()

1 2