pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH)
Serial.begin(9600)
傳輸速度每秒 9600 bps,一般通訊兩端裝置都要設為相同的鮑率
Arduino並不是真正的Serial Port 傳輸:
arduino 的COM port是透過板子上的 晶片模擬的
其實 Arduino 上有一顆晶片就是 USB to Serail converter
比如 Duemilanove 的 FT232r,或是 UNO 的 atmega16u2
所以真正 PC 的 COM Port 速度限制還要查 USB to Serial 晶片的 datasheet
analogWrite(11,val)
Writes an analog value (PWM wave) to a pin
BOARD | PWM PINS | PWM FREQUENCY |
---|---|---|
Mega | 2 - 13, 44 - 46 | 490 Hz (pins 4 and 13: 980 Hz) |
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16x2 display void setup() { lcd.init(); // initialize lcd.backlight(); lcd.setCursor(3,0); lcd.print("Hello, HAAA"); lcd.setCursor(2,1); lcd.print("bot Arduino!"); }
const int BUTTON_PIN = 10; // 按鍵的接腳 int buttonState = 0; // 按鈕的狀態 void setup() { pinMode(BUTTON_PIN, INPUT); //設定按鈕的接腳為輸入,因為我們要讀取它的狀態 } void loop() { buttonState = digitalRead(BUTTON_PIN); //讀取按鍵的狀態 }
ADC偵測電壓,將訊號用10bit 模擬
pinMode(腳位, INPUT); // Arduino UNO: A0~A5 int val = analogRead(腳位); // Arduino UNO: A0~A5, val=0-1023
const uint8_t Tiny3x3a2pt7bBitmaps[] PROGMEM = { 0xC0, 0xB4, 0xBF, 0x80, 0x6B, 0x00, 0xDD, 0x80, 0x59, 0x80, 0x80, 0x64, 0x98, 0xF0, 0x5D, 0x00, 0xC0, 0xE0, 0x80, 0x2A, 0x00, 0x55, 0x00, 0x94, 0xC9, 0x80, 0xEF, 0x80, 0xBC, 0x80, 0x6B, 0x00, 0x9F, 0x80, 0xE4, 0x80, 0x7F, 0x00, 0xFC, 0x80, 0xA0, 0x58, 0x64, 0xE3, 0x80, 0x98, 0xD8, 0xD8, 0x80, 0x5E, 0x80, 0xDF, 0x80, 0x71, 0x80, 0xD7, 0x00, 0xFB, 0x80, 0xFA, 0x00, 0xD7, 0x80, 0xBE, 0x80, 0xE0, 0x27, 0x00, 0xBA, 0x80, 0x93, 0x80, 0xFE, 0x80, 0xF6, 0x80, 0xF7, 0x80, 0xFE, 0x00, 0xF7, 0x00, 0xDE, 0x80, 0x6B, 0x00, 0xE9, 0x00, 0xB7, 0x80, 0xB5, 0x00, 0xBF, 0x80, 0xAA, 0x80, 0xA9, 0x00, 0xEB, 0x80, 0xEC, 0x88, 0x80, 0xDC, 0x54, 0xE0, 0x90, 0x70, 0xBC, 0xF0, 0x7C, 0xB0, 0x68, 0xFC, 0xBC, 0xC0, 0x58, 0x9A, 0x80, 0xA4, 0xDC, 0xD4, 0xF0, 0xF8, 0xF4, 0xE0, 0x60, 0x59, 0x80, 0xBC, 0xA8, 0xEC, 0xF0, 0xAC, 0x80, 0x90, 0x79, 0x80, 0xF0, 0xCF, 0x00, 0x78}; const GFXglyph Tiny3x3a2pt7bGlyphs[] PROGMEM = { {0, 0, 0, 4, 0, 1}, // 0x20 ' ' {0, 1, 2, 3, 1, -2}, // 0x21 '!' {1, 3, 2, 4, 0, -2}, // 0x22 '"' {2, 3, 3, 4, 0, -2}, // 0x23 '#' {4, 3, 3, 4, 0, -2}, // 0x24 '$' {6, 3, 3, 4, 0, -2}, // 0x25 '%' {8, 3, 3, 4, 0, -2}, // 0x26 '&' {10, 1, 1, 3, 1, -2}, // 0x27 ''' {11, 2, 3, 3, 0, -2}, // 0x28 '(' {12, 2, 3, 4, 1, -2}, // 0x29 ')' {13, 2, 2, 4, 1, -2}, // 0x2A '*' //.... {141, 3, 2, 4, 0, -2}}; // 0x7E '~' const GFXfont Tiny3x3a2pt7b PROGMEM = {(uint8_t *)Tiny3x3a2pt7bBitmaps, (GFXglyph *)Tiny3x3a2pt7bGlyphs, 0x20, 0x7E, 4};
typedef struct { uint16_t bitmapOffset; ///起點 uint8_t width; uint8_t height; uint8_t xAdvance; /// Distance to advance cursor (x axis) int8_t xOffset; /// X dist from cursor pos to UL corner int8_t yOffset; /// Y dist from cursor pos to UL corner } GFXglyph;
起點開始到下一個字起點前展開成二進制填入W*H格子裡