冰楓論壇

標題: 使用ATtiny85和FDS6680 [打印本頁]

作者: 洪嵐峰    時間: 2023-4-11 05:35
標題: 使用ATtiny85和FDS6680
智能計時器的具體步驟:

所需零件:

ATtiny85微控制器
FDS6680 MOSFET
16MHz晶振
2個10kΩ電阻
1個1kΩ電阻
1個0.1μF電容
1個LED燈
杜邦線
電池或USB供電線
連接腳位:

連接ATtiny85和FDS6680:
ATtiny85的PB0引腳連接到FDS6680的Gate腳,需要使用1個10kΩ電阻將ATtiny85的PB0引腳和FDS6680的Gate腳連接,以限制電流。
FDS6680的Drain腳連接到LED的正極,LED的負極連接到ATtiny85的GND引腳。
FDS6680的Source腳連接到ATtiny85的GND引腳。
連接晶振:
將晶振的一個引腳連接到ATtiny85的PB6引腳。
將晶振的另一個引腳連接到ATtiny85的PB7引腳。
連接電阻和電容:
1個10kΩ電阻連接ATtiny85的Reset引腳和VCC引腳。
另外一個10kΩ電阻連接ATtiny85的PB1引腳和VCC引腳。
1個1kΩ電阻連接LED的正極和FDS6680的Drain腳之間。
1個0.1μF電容連接ATtiny85的VCC引腳和GND引腳之間。
供電:
將電池或USB供電線連接到ATtiny85的VCC引腳和GND引腳。
程式碼:
下面是使用ATtiny85和FDS6680構建智能計時器的Arduino程式碼:


void setup() {
  pinMode(0, OUTPUT); //設置PB0引腳為輸出模式
  TCCR1 |= (1<<CS12) | (1<<CS10); //設置計時器1分頻,使得計時器的時鐘頻率為16MHz/1024=15.625kHz
  TCNT1 = 0; //清零計數器
}

void loop() {
  if(TCNT1 > 15625) { //如果計數器計數超過1秒
    digitalWrite(0, HIGH); //點亮LED
    delay(1000); //等待1秒
    digitalWrite(0, LOW); //熄滅LED
    TCNT1 = 0; //計數器清零
  }
}
這個程序會在ATtiny85的PB0引腳連接的LED燈上定時地閃爍,每1秒鐘點亮一次,程序使用了ATtiny85內置的計時器。




歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓