步進電機(Stepper motor; Step motor)是直流無刷電機的一種,為具有如齒輪狀突起(小齒)相鍥合的定子和轉子,可藉由切換流向定子線圈中的電流,以一定角度逐步轉動的電機。
步進電機的特徵是採用開迴路控制(Open-loop control)處理,不需要運轉量檢知器(sensor)或編碼器,且切換電流觸發器的是脈沖信號,不需要位置檢出和速度檢出的回授裝置,所以步進電機可正確地依比例追隨脈沖信號而轉動,因此就能達成精確的位置和速度控制,且穩定性佳。
缺點:轉矩較小。
步進馬達的規格:
紅外線遙控接收器
一般紅外線遙控接收器(Infrared Receiver),38kHz,接收波長為940nm
七段顯示器與ESP32接線
七段顯示器 與 程式 {簡單程式 直述方式}
// 七段顯示器製作倒數功能 (v2)
// define the LED digit patterns, from 0 - 9
// 1 = LED on, 0 = LED off, in this order:
// Esp32s pin:25,26,27,12,13,33,32,27 (Mapping a,b,c,d,e,f,g,dp of Seven-Segment LED)
// p, g, f, e, d, c, b, a
char segpin[]={27,32,33,13,12,14,26,25};
// p,g,f,e,d,c,b,a 共陽極
byte seven_seg_digits[][8] = { { 1,1,0,0,0,0,0,0 }, // = 0
{ 1,1,1,1,1,0,0,1 }, // = 1
{ 1,0,1,0,0,1,0,0 }, // = 2
{ 1,0,1,1,0,0,0,0 }, // = 3
{ 1,0,0,1,1,0,0,1 }, // = 4
{ 1,0,0,1,0,0,1,0 }, // = 5
{ 1,0,0,0,0,0,1,1 }, // = 6
{ 1,1,1,1,1,0,0,0 }, // = 7
{ 1,0,0,0,0,0,0,0 }, // = 8
{ 1,0,0,1,1,0,0,0 } // = 9
};
// 在七段顯示器上顯示指定的一個數字
void sevenSegWrite(byte digit) {
for (byte seg = 0; seg <8; ++seg)
digitalWrite(segpin[seg], seven_seg_digits[digit][seg]);// 共陽極 // digitalWrite(segpin[seg], !seven_seg_digits[digit][seg]);// 共陰極
}
void setup() {
for(int i=0;i<8;i++){
pinMode(segpin[i], OUTPUT);
digitalWrite(segpin[i], 0);
}
delay(2000);
for(int i=0;i<3;i++){
for(int j=0;j<8;j++)
digitalWrite(segpin[j], 0);
delay(500);
for(int j=0;j<8;j++)
digitalWrite(segpin[j], 1);
delay(500);
}
}
void loop() {
for (byte digit = 10; digit > 0; --digit) {
delay(1000);
sevenSegWrite(digit - 1);
}
delay(4000);// 暫停 4 秒鐘
}
使用陣列與迴圈的目的
建立顯示陣列值>>直接透過迴圈建立七段顯示器查表法>>顯示對應的結果,如有需修正顯示狀態直接修正內容即可。
建立 七段顯示器使用的函數>>未來使用時只需要呼叫 "sevenSegWrite(顯示);"
數位訊號分析(電位分析的方法)