Những ví dụ cơ bản dùng Arduino

Từ ChipFC Wiki
Phiên bản vào lúc 16:06, ngày 19 tháng 11 năm 2014 của Thophi (Thảo luận | đóng góp) (Wire Library)
(khác) ← Phiên bản cũ | xem phiên bản hiện hành (khác) | Phiên bản mới → (khác)
Bước tới: chuyển hướng, tìm kiếm
  • Bài này giới thiệu những hàm có trong examples (ví dụ mẫu) có sẵn trong Arduino, giúp người dùng dễ tiếp cận Arduino nhanh hơn. Để mở những ví dụ này bạn phải mở chương trình Arduino lên, vào File->Examples và vào mục tương ứng.
  • Xem trang thành lập để có mô tả sâu về nhân phần cứng cũng như phần mềm của Arduino.
  • Xem trang độ hàng để có thêm thông tin để mở rộng cũng như tùy biến phần cứng và phần mềm.
  • Xem trang liên kết để có thêm những tài liệu khác.''

chú ý: những ví dụ này được viết cho arduino 1.0 và sau đó, vài hàm có thể không hoạt động với những phiên bản trước, cho nên, bạn nên tải về phiên bản mới nhất.

Hình thu nhỏ có lỗi: Không có tập tin
Mở ví dụ mẫu

Những hàm cốt lõi

Những chương trình để biểu diễn những lệnh Arduino cơ bản. Chúng được kèm với gói Arduino khi bạn tải về, để mở lên, bạn cần click nút Open trên thanh công cụ và tìm trong thư mục examples.

Basics

  • BareMinimum: chương trình khung cơ bản nhất để có thể bắt đầu một chương trình Arduino (Arduino sketch).
  • Blink: chớp tắt LED trên bo.
  • DigitalReadSerial: đọc trạng thái của nút nhấn và in ra màn hình giao tiếp (Serial Monitor).
  • AnalogReadSerial: đọc trang thái của biến trở và in trạng thái đó ra màn hình giao tiếp.
  • Fade: biểu diễn cách dùng ngõ xuất tương tự (điều xung – analog output) để điều khiển đèn LED sáng tắt có hiệu ứng.
  • ReadAnalogVoltage: đọc giá trị ngõ nhập tương tự và in giá trị dạng vôn ra màn hình giao tiếp.

Digital

  • Blink Without Delay: nháy LED mà không dùng hàm delay().
  • Button: sử dụng nút nhấn để điều khiển LED.
  • Debounce: đọc nút nhấn, có lọc nhiễu.
  • Button State Change: đếm số lần nhấn nút nhấn
  • Input Pullup Serial: biểu diễn cách dùng INPUT_PULLUP (ngõ nhập với điện trở nội kéo lên) với hàm pinMode().
  • Tone: chơi một giai điệu nhạc với loa Piezo hay loa bíp.
  • Pitch follower: đọc giá trị ngõ vào tương tự và chơi nốt nhạc theo giá trị đó.
  • Simple Keyboard: làm một đàn organ đơn giản 3 nút.
  • Tone4: chơi nhiều nốt nhạc trên nhiều loa khác nhau sử dụng hàm tone().

Analog

  • AnalogInOutSerial: đọc giá trị tương tự, chuyển đổi kết quả và sử dụng nó để chỉnh độ sáng của LED
  • Analog Input: sử dụng biến trở để điều khiển nháy LED
  • AnalogWriteMega: Dùng bo mega để nháy led
  • Calibration: thiết lập giá trị lớn nhất và nhỏ nhất của sensor
  • Fading: dùng ngõ xuất tương tự (chân PWM) để làm mờ LED
  • Smoothing: làm mượt nhiều lần đọc của ngõ vào tương tự

Communication

Những ví dụ sau có gồm những đoạn code cho phép Arduino nói chuyện với chương trình của Processing (chương trình chạy trên máy tính). Cần biết thêm về Processing xin xem thêm tại processing.org. Ngoài ra Arduino cũng có thể giao tiếp với Max/MSP, bạn có thể xem thêm tại Cycling 74. dành cho những chương trình Pd mà có thể giao tiếp với những chương trình này, xem ví dụ của Scott Fitzgerald

  • ReadASCIIString: đọc chuỗi số nguyên ngăn cách nhau bởi dấu phẩy để làm mờ LED
  • ASCII Table: Biểu diễn in bảng mã ASCII qua cổng nối tiếp
  • Dimmer: di chuyển chuột để thay đổi độ sáng của LED
  • Graph: dùng Processing hiển thị thành đồ thị các giá trị gửi lên từ Arduino
  • Physical Pixel: dùng Processing hoặc Max/MSP gửi dữ liệu xuống bo Arduino để bật tắt LED
  • Virtual Color Mixer: Dùng Processing hoặc Max/MSP để nhận nhiều giá trị từ Arduino
  • Serial Call Respone: gửi nhiều dữ liệu sử dụng phương thức gọi – trả lời (handshaking)
  • Serial Call Respone ASCII: như chương trình trên nhưng giá trị được mã hóa ASCII trước khi gửi đi.
  • SerialEvent: biểu diễn cách dùng hàm SerialEvent().
  • Serial input (dùng cấu trúc Switch ... case): biểu diễn cách xử lí khi nhận nhiều lệnh khác nhau từ cổng nối tiếp.
  • MIDI: gửi nối tiếp các thông điệp MIDI
  • MultiSerialMega: sử dụng 2 cổng giao tiếp nối tiếp trên bo Mega

Control structures

  • If Statement Conditional: cách sử dụng cấu trúc điều kiện if để thay đổi giá trị ngõ ra dựa vào sự thay đổi của ngõ vào.
  • For Loop:Điều khiển nhiều LED với vòng lặp for.
  • Array: Dùng với vòng lặp for để biểu diễn cách sử dụng mảng array
  • While Loop: cách sử dụng vòng lặp while để tinh chỉnh cảm biến khi đọc trạng thái nút nhấn
  • Switch Case: Ví dụ này biểu diễn cách đọc giá trị sensor và chuyển đổi thành 4 mức và xử lí khác nhau. Cấu trúc Switch case giống nhiều cấu trúc if lồng nhau

Sensors

  • ADXL3xx: đọc giá trị của accelerometer ADXL3xx
  • Knock: phát hiện tiếng gõ bằng loa thạch anh
  • Memsic2125: đọc cảm biến gia tốc 2 trục
  • Ping: phát hiện vật bằng cảm biến siêu âm

Display

Vài ví dụ điều khiển hiển thị Led cơ bản

  • LED Bar Graph: cách làm thanh led
  • Row Column Scanning: Cách điều khiểm ma trận LED 8x8

Strings

  • StringAdditionOperator: thêm chuỗi lại với nhau theo nhiều cách
  • String AppendOperator: thêm dữ liệu vào chuỗi
  • StringCaseChanges: chuyển các kí tự trong chuỗi in hoa hoặc thường
  • StringCharacters: lấy hoặc đặt giá trị của một kí tự nào đó trong chuỗi
  • StringComparisonOperators: so sánh 2 chuỗi
  • StringConstructors: cách thiết lập đối tượng chuỗi
  • StringIndexOf: tìm kiếm kí tự trong chuỗi
  • StringLength & StringLengthTrim: Lấy và cắt theo chiều dài của một chuỗi
  • StringReplace: thay thế kí tự trong chuỗi
  • StringstartsWithEndsWith: kiểm tra kí tự hoặc đoạn văn bản có bắt đầu hoặc kết thúc trong chuỗi
  • StringSubString: tìm kiếm câu có trong chuỗi

USB(chỉ cho ChipiLeo và Due)

Những ví dụ sau gồm keyboard và mouse chỉ dùng cho ChipiLeo (Arduino Leo) hoặc Arduino Due, những bo này có cấu tạo phần cứng khác và có thư viện dành riêng

  • KeyboardAndMouseControl: biểu diễn cách dùng lệnh của chuột và bàn phím

Keyboard

  • KeyboardMessage: gửi một chuỗi văn bản khi nút nhấn được nhấn
  • KeyboardLogout: đăng xuất khỏi người dùng hiện tại
  • Keyboardserial: đọc một byte từ cổng giao tiếp và gửi lại tín hiệu phím
  • KeyboardReprogram: mỡ một cửa sổ lập trình Arduino mới và nạp lại bo ChipiLeo với chương trình Blink LED đơn giản.

Mouse

  • ButtonMouseControl: điều khiển trỏ chuột với 5 nút nhấn
  • JoystickMouseControl: điều khiển con trỏ chuột di chuyển với joystick khi một nút nhấn được nhấn

Thư viện đi kèm

Những ví dụ từ những thư viện đi kèm với phần mềm Arduino

Bridge Library (dành cho Arduino Yún)

  • Bridge:
  • Console ASCII Table:
  • Console Pixel:
  • Console Read:
  • Datalogger:
  • File Write Script:
  • HTTP Client
  • Process:
  • Shell Commands:
  • Temperature Web Panel:
  • TimeCheck:
  • WifiStatus:
  • Yun Serial Terminal:
  • MailboxReadMessage:
  • Temboo examples:
  • Spacebrew examples:
  • Linux tip&tricks:

EEPROM Library

  • EEPROM Clear: xóa vài byte trong EEPROM
  • EEPROM Read: đọc giá trị EEPROM và gửi nó lên máy tính
  • EEPROM Write: chứa giá trị ngõ vào tương tự vào trong EEPROM

Esplora Library

Những ví dụ cho người mới bắt đầu với Explora

  • Esplora Blink:
  • EsploraAccelerometer:
  • EsploraJoystickMouse:
  • EsploraLedShow:
  • EsploraLedShow2:
  • EsploraLightCalibrator
  • EsploraMusic
  • EsploraSoundSensor
  • Esplora TemperatureSensor

Những ví dụ cho người rành Esplora

  • EsploraKart
  • EsploraTable
  • EsploraRemote
  • EsploraPong

Ethernet Library

  • ChatServer: thiết lập một máy chủ chat đơn giản
  • WebClient: tạo một yêu cầu HTTP
  • WebClientRepeating: tạo một yêu cầu HTTP liên tục
  • Webserver: làm chủ một trang HTTP đơn giản, trang này hiện giá trị của cảm biến
  • BarometricPressureWebServer:xuất giá trị của cảm biến áp suất lên một trang web
  • UDPSendReceiveString: gửi và nhận một chuỗi chữ thông qua UDP
  • UdpNtpClient: xếp hàng một máy chủ "giao thức thời gian mạng" (Network Time Protocol – NTP) sử dụng UDP
  • DnsWebClient: làm một máy khách dùng DNS và DHCP
  • DhcpAddressPrinter: lấy một địa chỉ IP thông qua DHCP và in nó ra
  • TelnetClient: một máy khách Telnet đơn giản

Firmata Libraries

Hướng dẫn dùng thư viện chuẩn của Firmata

GSM Library

Những ví dụ về GSM

  • Make Voice Call: gọi điện từ màn hình giao tiếp nối tiếp
  • Receive Voi Call: kiểm tra trạng thái của modem khi nhận cuộc gọi
  • Send SMS: sử dụng màn hình giao tiếp để gửi tin nhắn văn bản tới các số điện thoại khác nhau
  • ReceiveSMS: đọc tin nhắn và in lên màn hình giao tiếp
  • Web Client: tải nội dung một trang web xuống bo Arduino qua GPRS

Những công cụ GSM

  • Test Modem: đọc giá trị IMEI của modem
  • Test GPRS: kiểm tra những hàm dùng cho mạng GPRS sử dụng thẻ SIM của bạn
  • GSM Scan Network: kiểm tra có mạng không
  • Pin Management: quản lý mã PIN của thẻ SIM của bạn
  • Band Management: quản lý dải sóng màn shield GSM kết nối tới
  • test Web Server: tạo một webserver với shield GSM của bạn

LiquidCrystal Library

  • Hello World: hiện dòng chữ "hello world!" và số giây từ khi reset
  • Blink: con trỏ nháy dạng khối hay không
  • Cursor: kiểm soát con trỏ tại dấu nháy dưới
  • Display: Hiện hay xóa mà hình, không xóa dữ liệu
  • TextDirection: kiểm soát hướng chạy của chữ
  • Scroll: cuộn chữ sang trái hoặc phải
  • Serial Input: nhận giá trị qua cổng nối tiếp và hiện lên
  • SetCursor: đặt vị trí của con trỏ
  • Autoscroll: dịch chữ trái hay phải

Robot Library

  • Logo: kêu robot chạy bằng bàn phím trên bo
  • Line following: robot chạy dò line
  • Disco Bot: robot nhảy theo nhạc
  • Compass: lên kế hoạch tìm kho báu với la bàn số
  • Inputs: học cách điều khiển núm vặn và bàn phím
  • Wheel Calibration: làm quay bánh xe mượt hơn
  • Runaway Robot: robot tránh vật cản
  • Remote control: dùng remote tv cũ để điều khiển robot
  • Picture browser: sử dụng hình ảnh
  • Rescue: dạy robot cách tìm kiếm những viên ngọc trong mê cung
  • Hello User: robot chào bạn
  • Calibrate Compass: điều chỉnh mô đun la bàn cho nó xoay chẵn hơn

SPI Library

  • BarometricPressureSensor: đọc áp suất và nhiệt độ khí quyển từ sensor dùng giao thức SPI
  • SPIDigitalPot: điều khiển biến trở số AD5206 sử dụng giao thức SPI

Servo Library

  • Knob: dùng biến trở điều khiển góc quay của servo
  • Sweep: điều khiển servo quay qua lại cho hết chu trình

Software Serial Library

  • Software Serial Example: cách dùng thư viện Software Serial, vì đôi khi một cổng giao tiếp nối tiếp là không đủ.
  • Two Port Receive: các dùng nhiều cổng giao tiếp nối tiếp phần mềm

Stepper Library

  • Motor Knob: điều khiển mô tơ step bằng biến trở một cách chính xác

TFT Library

Esplora

  • Esplora TFT Bitmap Logo:
  • Esplora TFT Color Picker:
  • Esplora TFT Etch a Sketch:
  • Esplora TFT Graph:
  • Esplora TFT Horizon:
  • Esplora TFT Pong:
  • Esplora TFT Temperature:

Arduino

  • TFT Bitmap Logo: đọc file hình từ thẻ nhớ micro-SD và vẽ nó tại điểm ngẫu nhiên trên màn hình
  • TFT Display Text: đọc giá trị cảm biến và in lên màn hình
  • TFT Pong: hiện thực trò chơi pong cổ điển
  • Etch a sketch: ohie6n bản Arrduino của trò chơi Etch-a-Sketch, trò vẽ hình bằng 2 núm xoay điều khiển 2 trục x và y
  • Color Picker: thay đổi mà của màn hình bằng giá trị của 3 cảm biến
  • Graph: vẽ đồ thị lên màn hình bằng giá trị của biến trở

Wire Library

  • SFRRanger_reader: đọc giá trị của cảm biến siêu âm Devantech SRFxx sử dụng giao thức I2C
  • digital_potentiometer: điều khiển biến trở số AD5171 sử dụng thư viện Wire
  • master reader/slave sender: thiết lập nhiều bo Arduino chia sẻ thông tin thông qua cấu hình chủ đọc/ tớ gửi
  • master writer/slave reader: thiết lập nhiều bo Arduino chia sẻ thông tin thông qua cấu hình chủ viết/ tớ đọc

Wifi Library

  • ConnectNoEncryption:
  • ConnectWithWEP:
  • ConnectWithWPA
  • ScanNetworks
  • WifiChatServer
  • WifiWebClient
  • WifiWebClientRepeating
  • WifiWebServer

Android Accessory Library

Arduino làm mạch nạp ISP

ArduinoISP biến bo mạch Arduino của bạn thành một mạch nạp cho những chip Atmega trên mạch. Bạn có thể dùng nó để nạp cho những bo mạch dùng chip Atmega tự làm khác hoặc để nạp lại bootloader cho những bo Arduino khác.

Thêm

Xem thêm một danh sách dài các ví dụ từ cộng đồng arduino tại trang giao tiếp phần cứng trong trang wiki playground của Arduino hoặc tìm hiểu trên trang wiki của chipfc.

Viết Example

Xem hướng dẫn cách viết những ví dụ cho người mới bắt đầu viết thư viện.