1. Trang chủ
  2. » Tất cả

Y3S1_Microcontroller Notes

60 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 2,68 MB

Nội dung

VI ĐIỀU KHIỂN Microcontroller Giáo viên giảng dạy: BTTT Biên soạn: NVAT I Thông số kỹ thuật Arduino Uno R3​: - ATmega328P based Microcontroller Volt vận hành 5V Volt input 7V - 12V Digital pins: 14 Digital (PWM) pins: (pin có dấu ~) (3, 5, 6, 9, 10, 11) (8-bit: -> 255) Analog pins: (10-bit: -> 1023) DC current cho I/O pin: 20mA DC current sử dụng cho 3.3V pin: 50mA - Flash memory ~32KB, 0.5KB sử dụng boot loader SRAM 2KB EEPROM 1KB Clock pin (CLK) có tốc độ 16MHz Mỗi chu kỳ clock pin đẩy bit DATA pin… (​không dạy) LED mạch dùng chung chân 13 II Arduino IDE​: void setup(){} // hàm khởi tạo, chạy Arduino khởi động  void loop(){} // lặp lặp lại sau hàm khởi tạo chạy  Hàm I/O bản: Digital pin - pinMode(pin, mode)  Thiết lập pin​vận hành theo chế độ mode​(​INPUT​hoặc OUTPUT​ ) - digitalWrite(pin, value)  Viết pin​giá trị value​(​HIGH​hoặc LOW​ ) - digitalRead(pin)  Đọc giá trị pin​ Trả HIGH​hoặc LOW​ Analog pin - analogReference(type)​(cơ nói học cho biết, khơng ra)  "Map" vùng giá trị volt từ analog input​ vào vùng giá trị volt internal​     _     3.0v  -> 1023    _ -> ~300  1.2V  0.0V Analog 0.0v  _ Volt Internal -> 0  | Vùng giá trị Vd​: Giả sử vùng giá trị volt từ analog input 1.2V​, vùng giá trị DEFAULT​ 3.3 volt Vì chế Analog sử dụng việc viết Volt từ thấp tới cao để mô tả giá trị từ 0->1023, ta khơng viết tới 3.3V ta không đạt max 1023 Bằng cách chỉnh vùng giá trị internal 3.3V xuống thấp hơn, cao hơn, ta tận dụng tối ưu miền 1024 giá trị, thu giá trị đọc xác Mặc định type ​là ​DEFAULT​ - analogRead(pin)  -C ​ hỉ đọc pin Analog - Đọc giá trị trả số nguyên từ -> 1023 (2^10) - Sử dụng thiết bị A/D Converter, thiết bị có 10 bit, để đọc (thơng tin thêm) - analogWrite(pin, value)  -C ​ hỉ viết pin digital PWM (chân digital có dấu ~ trước) - Viết analog, viết đc từ 0->255 (2^8) - Sử dụng thiết bị PWM timer, thiết bị có bit, để viết (thơng tin thêm) Hàm I/O nâng cao: - shiftOut(dataPin, clockPin, bitOrder, value)​(cơ nói hàm khó, bỏ qua được)  shiftOut()​có nhiệm vụ chuyển ​byte (gồm bit) bit Bit chuyển bit nằm bên trái (​leftmost​) từ bit nằm bên phải (​rightmost​) Các bit xuất chân ​dataPin sau chân ​clockPin pulsed​ (có mức điện HIGH​, sau bị đẩy xuống LOW​)​ Tham số: - dataPin: pin xuất tín hiệu (int)​ clockPin: pin dùng để xác nhận việc gửi bit dataPin​ (​int)​ bitOrder: hai giá trị MSBFIRST​ LSBFIRST​ (Bắt đầu từ bit bên phải Bắt đầu từ bit bên trái nhất) value: liệu cần shiftOut (byte)​ shiftOut() xuất liệu kiểu byte Nếu bạn muốn xuất kiểu liệu lớn bạn phải shiftOut lần (hoặc nhiều hơn), lần bit Code nguồn hàm: void ​ shiftOut(​ uint8_t​dataPin, ​ uint8_t c ​lockPin, u ​int8_t b ​itOrder, ​ uint8_t v ​al)   {   uint8_t ​ i;  for ( ​i = 0; i < 8; i++) {  if ( ​bitOrder == ​ LSBFIRST​ ) d ​igitalWrite​ (dataPin, !!(val & (1 Include Library >   // > *Add ZIP Library > Chọn file ZIP vừa tải  // Lưu ý: Nếu khác Thư viện, code bên không chạy.  #​ include​    int D ​HT_IN = 7; // chan Digital input cua sensor  dht dht_sensor;    void s ​etup() {  Serial.begin(​ 9600​ );  }  void l ​oop() {  ​ int c ​heck = dht_sensor.read11(DHT_IN); // DHT11  ​ float h ​ = dht_sensor.humidity; // % am  ​ float t ​ = dht_sensor.temperature; // nhiet C  ​ Serial​ p ​rint​ ("Do am: "); S ​erial​ p ​rint​ (h); ​ Serial​ ​ println​ (" %");  ​ Serial​ p ​rint​ ("Nhiet do: "); S ​erial​ p ​rint​ (t); S ​erial​ ​ println​ (" C");  ​ delay​ (500);  } 

Ngày đăng: 16/03/2021, 16:39