B10 – Đọc và chuyển đổi giá trị từ cảm biến (Map function)

Đọc giá trị từ cảm biến, chuyển đổi sang vùng giá trị từ 0 đến 255 để phù hợp với bộ chỉnh độ rộng xung (PWM). Sau đó tăng giảm độ sáng tối của đèn LED bằng giá trị vừa nhận, đồng thời gửi giá trị về máy tính để hiển thị thông qua Arduino IDE.

Khi đọc từ cảm biến vào, ta có giải giá trị 0 đến 1023 nhưng lối ra chỉ có giải từ 0 đến 255. Do vậy, ta phải chuyển đổi giải giá trị để phù hợp.

hoặc có thể đọc từ quang trở (chú ý gắn thêm LED vào chân 9)

Chương trình

/*
  Đọc cảm biến, điều chỉnh lối ra tương ứng và gửi về máy tính

 This example code is in the public domain.

 */

// hằng số
const int analogInPin = A0;  // chân lối vào từ cảm biến
const int analogOutPin = 9; // chân lối ra gắn LED

//biến số
int sensorValue = 0;        // giá trị đọc được
int outputValue = 0;        // giá trị chuyển sang PWM 

void setup() {
  // khởi tạo tốc độ truyền về máy tính 9600 bps:
  Serial.begin(9600);
}

void loop() {
  // đọc giá trị cảm biến:
  sensorValue = analogRead(analogInPin);
  // chuyển sang dạng phù hợp
  outputValue = map(sensorValue, 0, 1023, 0, 255);
  // thay đổi lối ra tương ứng
  analogWrite(analogOutPin, outputValue);

  // truyền về mấy tính
  Serial.print("sensor = ");
  Serial.print(sensorValue);
  Serial.print("\t output = ");
  Serial.println(outputValue);

  // chờ 2 ms để bộ đọc cảm biến ổn định
  delay(2);
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *