สารบัญ:

Light Sensor (Photoresistor) พร้อม Arduino ใน Tinkercad: 5 ขั้นตอน (พร้อมรูปภาพ)
Light Sensor (Photoresistor) พร้อม Arduino ใน Tinkercad: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Light Sensor (Photoresistor) พร้อม Arduino ใน Tinkercad: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Light Sensor (Photoresistor) พร้อม Arduino ใน Tinkercad: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: #4 Code Blocks in Tinkercad | Light Sensor (Photoresistor) With Arduino in Tinkercad 2024, กรกฎาคม
Anonim
เซนเซอร์ตรวจจับแสง (Photoresistor) พร้อม Arduino ใน Tinkercad
เซนเซอร์ตรวจจับแสง (Photoresistor) พร้อม Arduino ใน Tinkercad

โครงการทิงเกอร์แคด »

มาเรียนรู้วิธีอ่านโฟโตรีซีสเตอร์ ซึ่งเป็นตัวต้านทานปรับค่าชนิดไวต่อแสง โดยใช้ Analog Input ของ Arduino เรียกอีกอย่างว่า LDR (ตัวต้านทานที่ขึ้นกับแสง)

จนถึงตอนนี้ คุณได้เรียนรู้ที่จะควบคุม LED ด้วยเอาท์พุตแอนะล็อกของ Arduino และการอ่านโพเทนชิออมิเตอร์ ซึ่งเป็นตัวต้านทานปรับค่าได้อีกประเภทหนึ่ง ดังนั้น เราจะสร้างทักษะเหล่านั้นในบทเรียนนี้ โปรดจำไว้ว่าอินพุตอะนาล็อกของ Arduino (หมุดที่มีเครื่องหมาย A0-A6) สามารถตรวจจับสัญญาณไฟฟ้าที่ค่อยๆ เปลี่ยนแปลง และแปลงสัญญาณนั้นเป็นตัวเลขระหว่าง 0 ถึง 1023

ภาพ
ภาพ

สำรวจวงจรตัวอย่างที่ฝังอยู่ที่นี่ในเวิร์กเพลนโดยคลิก เริ่มการจำลอง และคลิกที่โฟโตรีซีสเตอร์ (วงรีสีน้ำตาลที่มีเส้นหยักตรงกลาง) จากนั้นลากตัวเลื่อนความสว่างเพื่อปรับอินพุตของแสงจำลอง

ในบทเรียนนี้ คุณจะต้องสร้างวงจรจำลองนี้ด้วยตัวเองพร้อมกับตัวอย่าง หากต้องการสร้างวงจรทางกายภาพ ให้รวบรวมบอร์ด Arduino Uno, สายเคเบิล USB, เขียงหั่นขนมแบบไม่มีบัดกรี, LED, ตัวต้านทาน (220 โอห์มและ 4.7k โอห์ม), โฟโตรีซีสเตอร์ และสายเบรดบอร์ด

คุณสามารถติดตามได้โดยใช้ Tinkercad Circuits คุณสามารถดูบทเรียนนี้ได้จากภายใน Tinkercad (ต้องเข้าสู่ระบบฟรี)! สำรวจวงจรตัวอย่างและสร้างวงจรของคุณเองถัดจากนั้น Tinkercad Circuits เป็นโปรแกรมฟรีบนเบราว์เซอร์ที่ให้คุณสร้างและจำลองวงจรได้ เหมาะอย่างยิ่งสำหรับการเรียนรู้ การสอน และการสร้างต้นแบบ

ขั้นตอนที่ 1: สร้างวงจร

สร้างวงจร
สร้างวงจร
สร้างวงจร
สร้างวงจร

ลองดูที่วงจรเขียงหั่นขนมในภาพ อาจเป็นประโยชน์ในการดูวงจรตัวอย่างรุ่นนี้แบบใช้สายฟรีเพื่อเปรียบเทียบตามภาพ ในขั้นตอนนี้ คุณจะต้องสร้างเวอร์ชันของคุณเองของวงจรนี้ควบคู่ไปกับตัวอย่างในเวิร์กเพลน

ในการติดตาม ให้โหลดหน้าต่าง Tinkercad Circuits ใหม่ และสร้างวงจรเวอร์ชันของคุณเองพร้อมกับตัวอย่าง

ระบุโฟโตรีซีสเตอร์, LED, ตัวต้านทาน และสายไฟที่เชื่อมต่อกับ Arduino ในเวิร์กเพลน Tinkercad Circuits

ลาก Arduino Uno และเขียงหั่นขนมจากแผงส่วนประกอบไปยังเวิร์กเพลน ถัดจากวงจรที่มีอยู่

เชื่อมต่อรางพลังงาน (+) และกราวด์ (-) กับ Arduino 5V และกราวด์ (GND) ตามลำดับโดยคลิกเพื่อสร้างสายไฟ

ขยายรางจ่ายไฟและกราวด์ไปยังบัสตามลำดับบนขอบด้านตรงข้ามของเขียงหั่นขนม (เป็นทางเลือกสำหรับวงจรนี้แต่เป็นแนวทางปฏิบัติที่ดี)

เสียบ LED ลงในเขียงหั่นขนมสองแถวที่แตกต่างกันเพื่อให้แคโทด (ขาลบและสั้นกว่า) เชื่อมต่อกับขาข้างหนึ่งของตัวต้านทาน (ที่ใดก็ได้ตั้งแต่ 100-1K โอห์มก็ใช้ได้) ตัวต้านทานสามารถไปในทิศทางใดก็ได้เนื่องจากตัวต้านทานไม่มีโพลาไรซ์ ซึ่งแตกต่างจาก LED ซึ่งต้องเชื่อมต่อในลักษณะบางอย่างจึงจะใช้งานได้

ต่อขาตัวต้านทานอื่นๆ เข้ากับกราวด์

ต่อ LED แอโนด (ขาบวก ขายาว) เข้ากับขา Arduino 9

ลากโฟโตรีซีสเตอร์จากแผงส่วนประกอบไปยังเขียงหั่นขนมของคุณ เพื่อให้ขาเสียบเป็นสองแถวที่แตกต่างกัน

คลิกเพื่อสร้างสายไฟที่ต่อขาโฟโตรีซีสเตอร์หนึ่งขาเข้ากับแหล่งจ่ายไฟ

เชื่อมต่อขาอีกข้างหนึ่งเข้ากับขาอะนาล็อก Arduino A0

ลากตัวต้านทานจากแผงส่วนประกอบเพื่อเชื่อมต่อขาโฟโตรีซีสเตอร์ที่เชื่อมต่อกับ A0 กับกราวด์ และปรับค่าเป็น 4.7k โอห์ม

ขั้นตอนที่ 2: เขียนโค้ดด้วย Blocks

รหัสพร้อมบล็อก
รหัสพร้อมบล็อก

ลองใช้ตัวแก้ไขโค้ดบล็อกเพื่อฟังสถานะของโฟโตรีซีสเตอร์ จากนั้นตั้งค่า LED เป็นความสว่างสัมพัทธ์โดยพิจารณาจากปริมาณแสงที่เซ็นเซอร์มองเห็น คุณอาจต้องการรีเฟรชหน่วยความจำของเอาต์พุตอนาล็อก LED ในบทเรียน Fading LED

คลิกปุ่ม "รหัส" เพื่อเปิดตัวแก้ไขโค้ด บล็อกสัญลักษณ์สีเทาคือความคิดเห็นสำหรับจดสิ่งที่คุณตั้งใจให้โค้ดของคุณทำ แต่ข้อความนี้ไม่ได้ดำเนินการเป็นส่วนหนึ่งของโปรแกรม

คลิกหมวดหมู่ตัวแปรในตัวแก้ไขโค้ด

ในการจัดเก็บค่าความต้านทานของโฟโตรีซีสเตอร์ ให้สร้างตัวแปรชื่อ "sensorValue"

ลากบล็อก "ชุด" ออกมา เราจะเก็บสถานะของโฟโตรีซีสเตอร์ของเราไว้ในตัวแปร

ค่าเซ็นเซอร์

คลิกที่หมวด Input และลากบล็อค "analog read pin" ออกมา และวางลงในบล็อค "set" หลังคำว่า "to"

เนื่องจากโพเทนชิออมิเตอร์ของเราเชื่อมต่อกับ Arduino บนพิน A0 ให้เปลี่ยนรายการแบบเลื่อนลงเป็น A0

คลิกหมวดหมู่ผลลัพธ์และลากบล็อก "พิมพ์ไปยังจอภาพแบบอนุกรม"

ไปที่หมวดตัวแปรและลาก sensorValue ตัวแปรของคุณไปที่บล็อก "print to serial monitor" และตรวจสอบให้แน่ใจว่าดรอปดาวน์ตั้งค่าให้พิมพ์ด้วยบรรทัดใหม่ เลือกเริ่มการจำลองและเปิดจอภาพอนุกรมเพื่อตรวจสอบว่ามีการอ่านค่าเข้ามาและเปลี่ยนแปลงเมื่อคุณปรับเซ็นเซอร์ ค่าอินพุตแบบอะนาล็อกมีตั้งแต่ 0-1023

เนื่องจากเราต้องการเขียนถึง LED ด้วยตัวเลขระหว่าง 0 (ปิด) ถึง 255 (ความสว่างเต็มที่) เราจะใช้บล็อก "map" เพื่อทำการคูณไขว้ให้เรา ไปที่หมวดคณิตศาสตร์และลากบล็อก "แผนที่"

ในช่องแรก ให้ลากบล็อกตัวแปร sensorValue จากนั้นตั้งค่าช่วงตั้งแต่ 0 ถึง 255

กลับไปที่หมวดหมู่เอาต์พุต ลากบล็อก "set pin" แบบอะนาล็อกออกมา ซึ่งโดยค่าเริ่มต้นจะระบุว่า "set pin 3 เป็น 0" ปรับให้เป็นขา 9

ลากบล็อกแผนที่ที่คุณทำไว้ก่อนหน้านี้ลงในฟิลด์ "to" ของบล็อก "set pin" เพื่อเขียนตัวเลขที่ปรับแล้วไปยังพิน LED โดยใช้ PWM

คลิกประเภทการควบคุมแล้วลากบล็อกรอออก แล้วปรับให้หน่วงเวลาโปรแกรมเป็นเวลา.1 วินาที

ขั้นตอนที่ 3: อธิบายรหัส Photoresistor Arduino

เมื่อเปิดโปรแกรมแก้ไขโค้ด คุณสามารถคลิกเมนูแบบเลื่อนลงทางด้านซ้ายและเลือก "บล็อก + ข้อความ" เพื่อแสดงโค้ด Arduino ที่สร้างโดยบล็อกโค้ด ปฏิบัติตามในขณะที่เราสำรวจรหัสในรายละเอียดเพิ่มเติม

int sensorValue = 0;

ก่อน

ติดตั้ง()

เราสร้างตัวแปรเพื่อเก็บค่าปัจจุบันที่อ่านจากโพเทนชิออมิเตอร์ ก็เรียกว่า

int

เพราะเป็นจำนวนเต็มหรือจำนวนเต็มใดๆ

การตั้งค่าเป็นโมฆะ ()

{ โหมดพิน (A0, อินพุต); โหมดพิน (9, เอาต์พุต); Serial.begin(9600); }

ภายในการตั้งค่า พินได้รับการกำหนดค่าโดยใช้

โหมดพิน ()

การทำงาน. Pin A0 ได้รับการกำหนดค่าเป็นอินพุต ดังนั้นเราจึงสามารถ "ฟัง" สถานะทางไฟฟ้าของโพเทนชิออมิเตอร์ได้ Pin 9 ได้รับการกำหนดค่าเป็นเอาต์พุตเพื่อควบคุม LED เพื่อให้สามารถส่งข้อความ Arduino ได้เปิดช่องทางการสื่อสารแบบอนุกรมใหม่ด้วย

Serial.begin()

ซึ่งรับอาร์กิวเมนต์อัตรารับส่งข้อมูล (ความเร็วในการสื่อสารเท่าใด) ในกรณีนี้คือ 9600 บิตต่อวินาที

วงเป็นโมฆะ ()

{ // อ่านค่าจากเซ็นเซอร์ sensorValue = analogRead (A0); // พิมพ์การอ่านเซ็นเซอร์เพื่อให้คุณทราบช่วง Serial.println(sensorValue);

อะไรก็ได้หลังจากฟันชุดหนึ่ง

//

เป็นความคิดเห็น ซึ่งช่วยให้ผู้คนเข้าใจในภาษาธรรมดาๆ ว่าโปรแกรมมีจุดประสงค์ทำอะไร แต่ไม่รวมอยู่ในโปรแกรมที่ Arduino ของคุณทำงาน ในลูปหลัก ฟังก์ชันที่เรียกว่า

อนาล็อกอ่าน ();

ตรวจสอบสถานะของพิน A0 (ซึ่งจะเป็นจำนวนเต็มตั้งแต่ 0-1023) และเก็บค่านั้นไว้ในตัวแปร

ค่าเซ็นเซอร์

// แมปการอ่านเซ็นเซอร์กับช่วงสำหรับ LED

analogWrite (9, แผนที่ (ค่าเซ็นเซอร์, 0, 1023, 0, 255)); ล่าช้า (100); // รอ 100 มิลลิวินาที }

บรรทัดต่อจากความคิดเห็นถัดไปทำหลายอย่างพร้อมกัน จดจำ

analogWrite()

รับสองอาร์กิวเมนต์ หมายเลขพิน (9 ในกรณีของเรา) และค่าที่จะเขียน ซึ่งควรอยู่ระหว่าง 0 ถึง 255 ฟังก์ชันอินไลน์

แผนที่()

รับอาร์กิวเมนต์ห้าข้อ: ตัวเลขที่จะประเมิน (ตัวแปรเซ็นเซอร์ที่เปลี่ยนแปลงตลอดเวลา) ค่าต่ำสุดและค่าสูงสุดที่คาดไว้ และค่าต่ำสุดและสูงสุดที่ต้องการ ดังนั้น

แผนที่()

ฟังก์ชันในกรณีของเรากำลังประเมินค่าเซ็นเซอร์ที่เข้ามา และทำการคูณไขว้เพื่อย่อขนาดเอาต์พุตจาก 0-1023 เป็น 0-255 ผลลัพธ์จะถูกส่งกลับเป็นอาร์กิวเมนต์ที่สองของ

analogWrite ();

การตั้งค่าความสว่างของ LED ที่เชื่อมต่อกับพิน 9

ขั้นตอนที่ 4: สร้างวงจร Arduino จริง (ตัวเลือก)

สร้างวงจร Arduino ทางกายภาพ (ไม่จำเป็น)
สร้างวงจร Arduino ทางกายภาพ (ไม่จำเป็น)

ในการตั้งโปรแกรม Arduino Uno จริงของคุณ คุณจะต้องติดตั้งซอฟต์แวร์ฟรี (หรือปลั๊กอินสำหรับโปรแกรมแก้ไขเว็บ) จากนั้นเปิดขึ้น โฟโตเซลล์ต่างๆ มีค่าต่างกัน ดังนั้นหากวงจรทางกายภาพของคุณไม่ทำงาน คุณอาจต้องเปลี่ยนตัวต้านทานที่จับคู่กับมัน เรียนรู้เพิ่มเติมเกี่ยวกับตัวแบ่งแรงดันไฟฟ้าในบทเรียน Instructables Electronics Class เกี่ยวกับตัวต้านทาน

ต่อวงจร Arduino Uno โดยเสียบส่วนประกอบและสายไฟเพื่อให้ตรงกับการเชื่อมต่อที่แสดงในวงจร Tinkercad สำหรับคำแนะนำโดยละเอียดเกี่ยวกับการทำงานกับบอร์ด Arduino Uno จริงของคุณ โปรดดูคลาส Instructables Arduino ฟรี

คัดลอกโค้ดจากหน้าต่างโค้ด Tinkercad Circuits แล้ววางลงในภาพร่างเปล่าในซอฟต์แวร์ Arduino ของคุณ หรือคลิกปุ่มดาวน์โหลด (ลูกศรชี้ลง) แล้วเปิด

ไฟล์ผลลัพธ์โดยใช้ Arduino คุณยังสามารถค้นหาตัวอย่างนี้ในซอฟต์แวร์ Arduino โดยไปที่ไฟล์ -> ตัวอย่าง -> 03. Analog -> AnalogInOutSerial

เสียบสาย USB และเลือกบอร์ดและพอร์ตของคุณในเมนูเครื่องมือของซอฟต์แวร์

อัปโหลดรหัสและใช้มือของคุณเพื่อปิดเซ็นเซอร์ไม่ให้รับแสง และ/หรือส่องแสงไปที่เซ็นเซอร์ของคุณ!

เปิดจอภาพอนุกรมเพื่อดูค่าเซ็นเซอร์ของคุณ มีแนวโน้มว่าค่าในโลกแห่งความเป็นจริงจะไม่ขยายไปถึง 0 หรือไปจนถึง 1023 ทั้งนี้ขึ้นอยู่กับสภาพแสงของคุณ รู้สึกอิสระที่จะปรับช่วง 0-1023 เป็นค่าต่ำสุดที่สังเกตและค่าสูงสุดที่สังเกตได้ เพื่อให้ได้ช่วงการแสดงออกของความสว่างสูงสุดบน LED

ขั้นตอนที่ 5: ต่อไป ลอง…

ตอนนี้ คุณได้เรียนรู้การอ่านโฟโตรีซีสเตอร์และแมปเอาต์พุตเพื่อควบคุมความสว่างของ LED แล้ว คุณก็พร้อมที่จะใช้ทักษะเหล่านั้นและทักษะอื่นๆ ที่คุณได้เรียนรู้ไปแล้ว

คุณสามารถสลับ LED สำหรับเอาต์พุตประเภทอื่น เช่น เซอร์โวมอเตอร์ และสร้างโค้ดบางส่วนเพื่อสะท้อนระดับแสงปัจจุบันของเซ็นเซอร์ตามตำแหน่งที่กำหนดตามมาตรวัดได้หรือไม่

ลองเปลี่ยนโฟโตรีซีสเตอร์ของคุณเป็นอินพุตอนาล็อกอื่นๆ เช่น เซ็นเซอร์ระยะอัลตราโซนิกหรือโพเทนชิออมิเตอร์

เรียนรู้เพิ่มเติมเกี่ยวกับวิธีการตรวจสอบอินพุตดิจิตอลและอนาล็อกของ Arduino ผ่านคอมพิวเตอร์โดยใช้ Serial Monitor

แนะนำ: