ATMEGA328P-PU







ARDUINO UNO



svg




svg





注意: USB Uploader 不能與充電電源模組 同時供電


void setup() {
  pinMode(8,OUTPUT);
  digitalWrite(8,HIGH);
}
void loop() {
}



PDF   SVG




PDF      SVG





PDF       SVG






PDF       SVG








PDF      SVG






先於 D: 建立myProg資料夾











基本架構

void setup(){

}
void loop(){

}

pdf
開 始:上電
     或 RST 接腳 接地2.5us以上 再移離開地








pdf   svg






void setup()
 {    
    pinMode(11,OUTPUT);
    digitalWrite(11,HIGH);
 }
void loop()
 {
 }

pdf




OUTPUT : 輸出
  
OUTPUT
HIGH
均需大寫
接 上 USB程式上傳板












        







        


LED 亮了!
使用三用電錶量測D11電壓


更 改程式碼如下:

void setup()
 {
    pinMode(11,OUTPUT);
    digitalWrite(11,LOW);
 }
void loop()
 {
 }

重新編譯再上傳
LED 熄掉了!


使用三用電錶量測D11電壓





pdf    svg


更 改程式碼如下:

void  setup( ) {
     pinMode(11, OUTPUT);
}
void  loop( ) {
  digitalWrite(11, HIGH);
  delay(1000);
  digitalWrite(11, LOW);
  delay(1000);
}


delay(1000);   
延遲(等待)1000 ms(毫秒)
1秒等於1000毫秒

pdf

使用1.USB 電源     2.乾電池提供電源


使用前置處理器


#define  led  11   //前置處理  #define 置換
void  setup( ) {
     pinMode(led, OUTPUT);
}
void  loop( ) {
  digitalWrite(led, HIGH);
  delay(1000);
  digitalWrite(led, LOW);
  delay(1000);
}







pdf    svg

如何寫程式讓LED亮?





#define  ledL  11
#define  ledS  9
void  setup( ) {
     pinMode(ledL, OUTPUT);
     pinMode(ledS, OUTPUT);
     digitalWrite(ledL,HIGH);
     digitalWrite(ledS,LOW);
}


如何讓LED 閃?









#define  ledL  11
#define  ledS  9
void setup() {
pinMode(ledL,OUTPUT);
pinMode(ledS,OUTPUT);
}

void loop() {
  digitalWrite(ledL,HIGH);
  digitalWrite(ledS,LOW);
  delay(1000);
  digitalWrite(ledL,LOW);
  digitalWrite(ledS,HIGH);
  delay(1000);
}





改用 無極性雙色LED



閃紅綠燈
閃紅燈
閃綠燈



閃紅燈


#define  ledL  11
#define  ledS  9
void setup() {
pinMode(ledL,OUTPUT);
pinMode(ledS,OUTPUT);
digitalWrite(ledS,LOW);
}

void loop() {
  digitalWrite(ledL,HIGH);
  delay(1000);
  digitalWrite(ledL,LOW);
  delay(1000);
}



閃綠燈
#define  ledL  11
#define  ledS  9
void setup() {
pinMode(ledL,OUTPUT);
pinMode(ledS,OUTPUT);
digitalWrite(ledL,LOW);
}

void loop() {
  digitalWrite(ledS,HIGH);
  delay(1000);
  digitalWrite(ledS,LOW);
  delay(1000);
}



閃紅綠燈


#define  ledL  11
#define  ledS  9
void setup() {
pinMode(ledL,OUTPUT);
pinMode(ledS,OUTPUT);
}

void loop() {
  digitalWrite(ledL,HIGH);
  digitalWrite(ledS,LOW);
  delay(1000);
  digitalWrite(ledL,LOW);
  digitalWrite(ledS,HIGH);
  delay(1000);
}









#define led 11  
void  setup( ) {
     pinMode(led, OUTPUT);
     digitalWrite(led, HIGH);
     delay(1000);
     digitalWrite(led, LOW);
     delay(1000);
}
void  loop( ) {
 
}

pdf

閃一次(使用1.USB 開關  2.乾電池提供電源+RST)


請 練習撰寫 閃 兩次 之程式碼


進階篇

ATmega328P_IO.pdf

void setup() {
  pinMode(8,OUTPUT);
  digitalWrite(8,HIGH);
}
void loop() {
}
草稿碼使用了 710 bytes (2%) 的程式儲存空間。上限為 32256 bytes。
全域變數使用了 9 bytes (0%) 的動態記憶體,剩餘 2039 bytes 給區域變數。上限為 2048 bytes 。


DDRB
PORTB
PINB
DDRC
PORTC
PINC
DDRD
PORTD
PIND


void setup() {
  DDRB=0b00000001; //設定PB0 為輸出  pinMode(8,OUTPUT);
  PORTB=0b0000001; //設定PB0 輸出高電位  digitalWrite(8,HIGH);
}
void loop() {
}
草稿碼使用了 450 bytes (1%) 的程式儲存空間。上限為 32256 bytes。
全域變數使用了 9 bytes (0%) 的動態記憶體,剩餘 2039 bytes 給區域變數。上限為 2048 bytes 。



pinMode,digitalWrite,digitalRead 函式之原始碼請參考:
Arduino\hardware\arduino\avr\cores\arduino\wiring_digital.c

wiring_digital.c include 以下兩個檔案
#include "wiring_private.h"
#include "pins_arduino.h"

wiring_private.h 檔案位於:
Arduino\hardware\arduino\avr\cores\arduino

pins_arduino.h 檔案位於:
Arduino\hardware\arduino\avr\variants\standard