lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

การวัดระยะทางด้วย Ultrasonic แสดงผลผ่านหลอด LED For NOD MCU ESP8266 (ลง library ก่อนนะครับ)

เจ้าของร้าน

#include <Adafruit_NeoPixel.h>  //  เรียกใช้ library  Adafruit_NeoPixel.h สำหรับการใช้งาน หลอด LED_RGB

 

#define PIN            10  // กำหนด หมายเลข ขาสำหรับ ส่งข้อมูล

 

#define NUMPIXELS      5 // กำหนด จำนวนหลอด LED_RGB ในที่นี่ มี 5 หลอด

 

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // เรียกใช้ฟังค์ชั่นเริ่มต้น สำหรับการใช้งาน library

 

#define Trig    2   // กำหนดให้ Trig  = 2 เพื่อใช่ในการกำหนดขา อินพุตเอาท์พุต

#define Echo    0   // กำหนดให้ Echo  = 0 เพื่อใช่ในการกำหนดขา อินพุตเอาท์พุต

 

long duration;  // กำหนดตัวแปร duration  เพื่อใช้ในการเก็บค่าเสียงสะท้อน ของอัลต้าโซนิค

int distance;   // กำหนดตัวแปร distance เพื่อใช้ในการเก็บ ค่าระยะทาง

 

const int ledCount = 5;  // กำหนดตัวแปร ledCount มีค่าเท่ากับ 8

 

void setup()

{

   pixels.begin(); // เริ่มต้นใช้งาน library ของ Adafruit_NeoPixel.h หลังจากที่ กำหนดค่าเรียบร้อยแล้ว

   pinMode(Trig, OUTPUT); // กำหนดให้ Trig เป็น เอาท์พุต

   pinMode(Echo, INPUT);  // กำหนดให้ Echo เป็น อินพุต

}

 

void loop()

{

  displayLed(7); //  เรียกการใช้งาน ฟังค์ชั่น  displayLed โดยกำหนดค่า ลิมิต ที่ 7 cm

}

void getdistance()

{

  digitalWrite(Trig, LOW);  // กำหนดให้ Trig เป็น เอาท์พุต LOW เพื่อ เคลียร์สถานะต่างๆ หรือก็คือ กำหนดให้ไม่ทำงาน

  delayMicroseconds(2); // หน่วงเวลา 2 ไมโครวินาที

 

  digitalWrite(Trig, HIGH); // ส่งคลื่นเสียงออกไป โดย กำหนดให้ Trig เป็น เอาท์พุต HIGH 

  delayMicroseconds(10);  // หน่วงเวลา 10 ไมโครวินาที

  digitalWrite(Trig, LOW); // หลังจากส่งคลื่นเสียงออกไป 10 ไมโครวินาที แล้วจึงหยุด

 

  duration = pulseIn(Echo, HIGH); // กำหนดให้ ตัวแปร duration เก็บค่า ที่อ่านคลื่นเสียงกลับมาที่ได้ โดยใช้ ฟังค์ชั่น pulseIn โดยที่กำหนดให้ Echo เป็น HIGH เพื่อทำการอ่านคลื่นที่สะท้อนกลับมา

 

  distance = duration / 58; // กำหนดให้ ตัวแปร distance เก็บค่า ของ duration / 58 ** หาร 58 เพื่อแปลงหน่วยเป็น เซนติเมตร

}

 

void displayLed(int LimiteMax) //  ฟังค์ชั่นนี่เป็นการรับค่าที่แปลงมาเรียบร้อยแล้วจาก ฟังค์ชั่น getdistance() เพื่อนำมาแสดงผม ผ่าน หลอด RGB ทั้ง 5 หลอด โดยมีตัวแปร LimiteMax กำหนดลิมิตค่าที่อ่าน

{

  getdistance();  // ทำการอ่านค่าจาก ฟังค์ชั่น getdistance()

 

  int j = distance; // กำหนดตัวแปร j เพื่อเก็บค่า ของ distance

  int ledLevel = map(j, 3 , LimiteMax, 0, ledCount);  // กำหนด ตัวแปร ledLevel เพื่อเก็บค่าหลังจากใช้ฟังค์ชั่น map ในการเปลี่ยนค่าช่วง โดยที่รูปแบบจะเป็น map(ค่าช่วงที่ได้มา, ค่าต่ำสุดของค่าช่วงเดิม , ค่าสูงสุดของค่าช่วงเดิม, ค่าต่ำสุดของค่าช่วงใหม่, ค่าสูงสุดของค่าช่วงใหม่)

  delay(20); // หน่วงเวลา 20 วินาที

 

  for (int thisLed = 0; thisLed < ledCount; thisLed++) // ฟังค์ชั้น loop สำหรับ การวนวูปการทำงาน โดยกำหนดตัวแปร thisLed มีค่าเริ่มต้นมีค่าเท่ากับศูนย์ ถ้า thisLed มีค่าน้อยกว่าจำนวนหลอด LED_RGB 7 ดวง หรือก็คือ ledCount = 7 ให้เพิ่มค่า i ทีละ 1 นั้นก็คือเพิ่มค่าขึ้นมาทีละหนึ่งจนกว่าจะเท่ากับ จำนวนหลอด LED_RGB

  {

 

    if (thisLed < ledLevel) // ประโยคเงื่อนไข โดยมีเงื่อนไขว่าถ้า ตัวแปร thisLed มีค่าน้อยกว่า ledLevel ที่ผ่านการเปลี่ยนช่วงค่ามาแล้ว

    {

      pixels.setPixelColor(thisLed, pixels.Color(128, 0, 128)); // ให้หลอด RGB ติดโดยเริ่มจาก หลอดที่ 1 ไปจนถึงหลอดที่ 7 ซึ่งจะผันแปรค่าตามตัวแปร ledLevel ที่ได้รับมา

      pixels.show(); // ให้แสดงการติด

    }

    else // ถ้าไม่ใช่ตามเงื่อนไขข้างบนให้ทำตามคำสั่งที่อยู่ในลูปนี้

    {

      pixels.setPixelColor(thisLed, pixels.Color(0, 0, 0)); // เริ่มดับโดย เริ่มจาก หลอดที่ 1 ไปจนถึงหลอดที่ 8 ซึ่งจะผันปรค่าตามตัวแปร ledLevel ที่ได้รับมา

      pixels.show(); // ให้แสดงการดับ

    }

  }

}

1
แสดงความคิดเห็นที่ 0-0 จากทั้งหมด 0 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

<



    ติดต่อเรา สะดวก    รวดเร็ว ไว้ใจได้

 091-109-7711


  ติดต่อเราผ่านช่องทาง LINE

  ID : king5k

MEMBER

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

STATISTICS

หน้าที่เข้าชม6,406 ครั้ง
ผู้ชมทั้งหมด3,204 ครั้ง
เปิดร้าน21 ก.ย. 2559
ร้านค้าอัพเดท5 ก.ค. 2561
ตะกร้าของฉัน (0)
มีสินค้าทั้งหมด 0 ชนิด 0 ชิ้น
0 บาทราคาสินค้าทั้งหมด
(ยังไม่รวมค่าจัดส่ง)
สั่งซื้อสินค้า
ตะกร้า
( 0 )
รายการสั่งซื้อของฉัน
เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)
รายการสั่งซื้อของฉัน
ข้อมูลร้านค้านี้
ร้านPiapples
Piapples
วิสัยทัศน์ของเราคือ สร้างชุดฝึกสำหรับการโปรแกรมคอมพิวเตอร์ มอบให้ระบบการศึกษาทั่วประเทศ ยินดีให้คำปรึกษา R&D งานระบบไมโครคอนโทรลเลอร์ งานโปรเจค งานออกแบบดีไซด์
เบอร์โทร : 0911097711
อีเมล : kittisak.krua@gmail.com
ส่งข้อความติดต่อร้าน
เกี่ยวกับร้านค้านี้
สินค้าที่ดูล่าสุด
ดูสินค้าทั้งหมดในร้าน
สินค้าที่ดูล่าสุด
บันทึกเป็นร้านโปรด
Join (สมัครสมาชิกร้าน)
แชร์หน้านี้
แชร์หน้านี้

TOP เลื่อนขึ้นบนสุด
Go to Top
พูดคุย-สอบถาม คลิก