Hầu hết các vi xử lý nhúng ngày nay sử dụng kiến trúc bộ nhớ Havard hoặc kiến trúc Havard mở rộng (tức là bộ nhớ chương trình và dữ liệu tách biệt nhưng vẫn cho phép khả năng hạn chế để lấy dữ liệu ra từ vùng mã chương trình). Trong kiến trúc bộ nhớ Havard mở rộng thường sử dụng một số lượng nhỏ các con trỏ để lấy dữ liệu từ vùng mã chương trình theo cách nhúng vào trong các lệnh tức thời. Một số Chip vi điều khiển nhúng tiêu biểu hiện nay sử dụng cấu trúc Havard là PIC, Atmel AVR.
Ưu điểm nổi bật của cấu trúc bộ nhớ Harvard là có hai kênh tách biệt để truy nhập vào vùng bộ nhớ mã chương trình và dữ liệu nhờ vậy mà mã chương trình và dữ liệu có thể được truy nhập đồng thời và làm tăng tốc độ luồng trao đổi với bộ xử lý, có thể thực hiện ngay lệnh tiếp theo khi vừa kết thúc lệnh trước đó.
26 b. Ngơn ngữ lập trình
Ngơn ngữ lập trình thường dùng là C. Ngôn ngữ C là một ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng và nó giống với ngơn ngữ Assembler hơn hầu hết các ngôn ngữ bậc cao. Hơn thế, cho thấy sự khác nhau quan trọng giữa nó với ngơn ngữ bậc thấp như là Assembler, đó là việc mã C có thể được dịch và thi hành trong hầu hết các máy tính, hơn hẳn các ngơn ngữ hiện tại trong khi đó thì Assembler chỉ có thể chạy trong một số máy tính đặc biệt. Vì lý do này C được xem là ngôn ngữ bậc trung. C đã được tạo ra với một mục tiêu là làm cho nó thuận tiện để viết các chương trình lớn với số lỗi ít hơn trong mẫu hình lập trình thủ tục mà lại khơng đặt gánh nặng lên vai người viết ra trình dịch C.
Do vi điều khiển có hạn chế bộ nhớ trong, nên cần chương trình dùng bộ nhớ tối ưu nhất có thể. Ngồi Assembler ra, ngơn ngữ C là ngơn ngữ có thể tối ưu hóa số lượng bộ nhớ của một chương trình khi biên dịch ra.
c. Phần mềm Arduino IDE
Arduino IDE là phần mềm lập trình mã nguồn mở, nghĩa là phần mềm này miễn phí cả về phần tải về lẫn phần bản quyền: Người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung được nhà phát hành cho phép mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng.
Tuy là phần mềm mã nguồn mở nhưng khả năng bảo mật thông tin của Arduino IDE là vô cùng tuyệt vời, khi phát hiện lỗi nhà phát hành sẽ vá nó và cập nhật rất nhanh khiến thơng tin của người dùng khơng bị mất hoặc rị rỉ ra bên ngồi.
Arduino IDE thích hợp cho mọi người bắt đầu tiếp cận với lập trình. Bản thân arduino ide đã được tích hợp một thư viện phầm mềm thường gọi là "wiring", từ các chương trìn "wiring" gốc sẽ giúp bạn thực hiện thao tác code dễ dàng hơn. Một chương trình chạy trong arduino được gọi là một sketch, chương trình được định dạng dưới dạng file có đi mở rộng .ino.
27