นวัตกรรม สิ่งประดิษฐ์ และเทคโนโลยี

กรุณา เข้าสู่ระบบ หรือ สมัครสมาชิก.

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
การค้นหาขั้นสูง  

ผู้เขียน หัวข้อ: อ่านสัญญาณ PWM ด้วย Arduino ( อ่านค่าเซ็นเซอร์ PM2.5 รุ่น SDS011จากขา um)  (อ่าน 93 ครั้ง)

NAWATTAKAM

  • Administrator
  • Sr. Member
  • *****
  • กระทู้: 385

ในกรณีต้องการอ่านค่า PWM เช่นการอ่านค่าเซ็นเซอร์ PM2.5 รุ่น SDS011 จากขา um โดยตรง




โค๊ด

volatile int pwm_value = 0;
volatile int prev_time = 0;
 
void setup()
 {
  Serial.begin(115200);
  // when pin D2 goes high, call the rising function

  attachInterrupt(0, rising, RISING);
}
 
void loop() { }
 
void rising()
{
  attachInterrupt(0, falling, FALLING);
  prev_time = micros();
}
 
void falling()
{
  attachInterrupt(0, rising, RISING);
  pwm_value = micros()-prev_time;
  Serial.println(pwm_value);
}

* กรณี UNO ให้ใช้ ขา 2 (int0) หรือ 3 (int1)
**  กรณีคาบเวลามากเกินไป ให้เปลี่ยนฟังชั่น  micros() เป็น millis()


จาก
http://www.benripley.com/diy/arduino/three-ways-to-read-a-pwm-signal-with-arduino/


บันทึกการเข้า