- UID
- 373967
- 帖子
- 8812
- 主題
- 2609
- 精華
- 0
- 積分
- 993
- 楓幣
- 4446
- 威望
- 970
- 存款
- 30000
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 50
- 在線時間
- 452 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-11-10
|
你可以使用attiny85搭配NE555多諧振盪電路來產生方波信號
下面是attiny85和NE555的零件規格和連結腳位:
attiny85 零件規格:
工作電壓:2.7V - 5.5V
數位I/O腳位數量:5
ADC輸入通道數量:4
FLASH記憶體:8KB
SRAM記憶體:512B
工作溫度:-40°C ~ 85°C
attiny85 連結腳位:
PB5 (RESET)
PB3 (PWM/OC2A)
PB4 (PWM/OC1B)
GND
PB0 (PWM/OC0A)
PB1 (PWM/OC1A)
PB2 (USCK/SCL/ADC1)
VCC
NE555 零件規格:
工作電壓:4.5V - 15V
最大輸出電流:200mA
工作溫度:-40°C ~ 85°C
NE555 連結腳位:
GND
TRIGGER
OUTPUT
RESET
CONTROL VOLTAGE
THRESHOLD
DISCHARGE
VCC
以下是attiny85和NE555多諧振盪電路的程式碼:
#define LED_PIN PB1 // LED接腳
void setup() {
pinMode(LED_PIN, OUTPUT);
TCCR1 = _BV(CS10) | _BV(CS11); // 設置預分頻器,頻率為1/16384秒
OCR1C = 127; // 設置計數器閥值,產生50%佔空比的方波
TIMSK = _BV(TOIE1); // 設置計數器溢出中斷
sei(); // 啟用中斷
}
void loop() {
// 什麼都不做
}
ISR(TIM1_OVF_vect) {
digitalWrite(LED_PIN, !digitalRead(LED_PIN)); // 反轉LED狀態
}
上述程式碼中,使用了attiny85的16位定時器來產生方波信號。
利用定時器的溢出中斷,反轉LED的狀態,以達到閃爍效果。
注意,定時器的預分頻器和閥值的設置,需要計算出符合頻率和佔空比要求的數值。
在上述程式碼中,設置的頻率為約61Hz,佔空比為50%。 |
|