การเขียนโปรแกรมรับข้อมูลแบบอนาล็อก

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Advertisements

โปรแกรมควบคุมหุ่นยนต์
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
Department of Computer Engineering, Khon Kaen University
Lecture 13: ฟังก์ชันเรียกตัวเอง
Arrays and Pointers.
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
Data Transmission Encoding Techniques and Transmission mode
Modulation เป็น เทคนิคที่ใช้ในการปรับ/เปลี่ยนรูปแบบของสัญญานไฟฟ้าของ คลื่นนำ เพื่อให้สัญญานนั้นสามารถนำพา ข้อมูลไปยังปลายทางได้
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
ฟังก์ชั่น digital ทำหน้าที่อ่านค่าลอจิกจากเซนเซอร์
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
C language W.lilakiatsakun.
เครื่องมือวัดทางไฟฟ้าและอิเล็กทรอนิกส์
Introduction to Analog to Digital Converters
CONTROLLER 1 Physics for Game Development (951302) College of Arts Media and Technology.
บทที่ 3 การรับ และส่งข้อมูลจากภายนอก และการเขียนโปรแกรม
Int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body.
Electronics for Analytical Instrument
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
หน่วยที่ 2 โครงสร้างโปรแกรมเมเบิลคอนโทรลเลอร์
Superior COmmunications Research and Prototyping for commercialization นายสัณห์ อุทยารัตน์ ส่วนประมวลผลสัญญาณดิจิตอล เบสแบนด์ด้วยชิป DSP SCORPion Research.
Arduino.
ฟังก์ชันในภาษา C. ฟังก์ชัน (Functions) 2 การออกแบบโปรแกรมในภาษาซี จะอยู่บนพื้นฐานของการออกแบบ โมดูล (Module Design) โดยการแบ่ง โปรแกรมออกเป็นงานย่อย ๆ.
ตอนที่ 2 โครงสร้างภาษา C Arduino เบื้องต้น
Image Acquisition and Digitization
1 2 3 เทคโนโลยีระบบกล้องวงจรปิด Content MHD Camera
แหล่งน้ำธรรมชาติของโลก แหล่งน้ำในบรรยากาศ (Atmospheric Water) ได้แก่ สถานะไอน้ำ เช่น เมฆ หมอก สถานะของเหลว ได้แก่ ฝน และน้ำค้าง และสถานะของแข็ง ได้แก่
แนะนำไมโครคอนโทรเลอร์ ATMEGA 16
15 กันยายน 2559.
เครื่องมือวัดดิจิตอล
Object and classes.
Lab# Digital Modulation
วงจรรวมหรือไอซี (Integrated Circuit, IC) และไอซีออปแอมบ์(OP-AMP )
คู่มือการใช้มัลติมิเตอร์ (Multimeters)
Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ครั้งที่ 1 ระบบตัวเลข & ลอจิกเกต (Number Systems & Logic Gates)
เซ็นเซอร์ และ ทรานสดิวเซอร์ Sensor and Transducers
บทที่ 6 การเขียนโปรแกรมแบบมีเงื่อนไข
ระบบเครือข่ายคอมพิวเตอร์ (COMPUTER NETWORK)
เครื่องมือวัดดิจิตอล
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : การนำเสนอมัลติมีเดียในรูปแบบดิจิตอล(Digital Representation) สธ212 ระบบสื่อประสมสำหรับธุรกิจ อาจารย์อภิพงศ์
Introduction to Arduino UNO
Chapter5:Sound (เสียง)
บทที่ 7 การรับส่งข้อมูลบนเครือข่าย
3.2 อุปกรณ์เครือข่ายคอมพิวเตอร์
การแปลงสัญญาณ ดิจิตอล เป็น อนาล็อก Digital to Analogue Conversion
ตัวอย่างการต่ออุปกรณ์ต่อพ่วงเข้ากับ PIC16F877A
โครงสร้างภาษา C Arduino
การบัดกรีชิ้นงานอิเล็คทรอนิคส์
องค์ประกอบของระบบคอมพิวเตอร์
Introduction to Analog to Digital Converters
Queue [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
หลักการเขียนโปรแกรมภาษาซี
แบบฟอร์มการรายงานข้อมูลพื้นที่แปลงบำรุงป่า ประจำปีงบประมาณ พ.ศ. 2558
สำนักงานคณะกรรมการอ้อยและน้ำตาลทราย
Chapter 2 ตัวดำเนินการ และนิพจน์.
โปรแกรมย่อย (Sub Program)
บทที่ 3 โครงสร้างภาษาซีเบื้องต้น
เครื่องตรวจคุณภาพของแตงโม
ความสัมพันธ์ระหว่างรูปเรขาคณิต
โครงการพัฒนาระบบสื่อสารด้วยเสียงผ่านเครือข่ายอินเตอร์เน็ต ระยะที่ 2
เก็บตกวันวาน “สานพลังสร้างมาตรการองค์กร เพื่อความปลอดภัยทางถนน”
Pulse Width Modulation (PWM)
Analog vs. Digital Analog Digital
เสียง.
Lecture 7: ทางเลือกแบบมีโครงสร้างซ้อนใน
การจำลองวงจรอิเล็กทรอนิกส์
Computer Game Programming
ใบสำเนางานนำเสนอ:

การเขียนโปรแกรมรับข้อมูลแบบอนาล็อก สัญญาณ Analog เป็นสัญญาณที่มีความต่อเนื่องขนาดของสัญญาณเปลี่ยนแปลงตามเวลา ต่างจากสัญญาณแบบ digital ที่มีแค่  0 กับ 1 เท่านั้น ใน Arduino Uno ของเรานั้นมี PIN สำหรับอ่านค่าสัญญาณ Analog อยู่ทั้งหมด 6 pin ครับ โดยการอ่านค่า analog ของ Arduino จะแปลงค่าที่อ่านได้เป็นค่า digital แบบ 10 บิต หรือมีค่าเป็นจำนวนเต็มคือ 0 ถึง 1023 https://www.gravitechthai.com/guru2.php?p=276

วงจรแบ่งแรงดัน (Voltage Divider) ในการเรียนรู้เรื่อง Analog เพื่อความเข้าใจและเพื่อทำให้สามารถนำไปประยุกต์ใมช้ได้หลากหลาย เราจำเป็นต้องรู้ในเรื่องของวงจรแบ่งแรงดัน   ถ้าเรานำตัวต้านทานสองตัวมาต่ออนุกรมกัน แล้วป้อนแรงดัน (Vin) ให้กับตัวต้านทานสองตัวนั้น  ค่าแรงดันที่ออกมาจากวงจรนี้ (Vout) จะมีค่าเป็นตามสมการ Vout = (R2/(R1+R2))xVin

อธิบายง่ายๆคือ วงจรแบ่งแรงดัน สามารถแบ่งแรงดันให้ลดน้อยลงได้ โดยแรงดันที่ลดลงจะเป็นสัดส่วนเท่ากับค่าความต้านทานของตัวต้านทาน R2 ต่อค่าความต้านทานรวมทั้งหมด

 จากตัวอย่างเมื่อเรานำตัวต้านทานที่เท่ากันมาต่ออนุกรมกัน แล้วป้อนแรงดันขนาด 5V ให้กับมัน สัดส่วนของ R2 ที่อยู่ด้านล่างกับ R1+R2 จะเป็น 1 ต่อ 2 พอดี ดังนั้นแรงดันที่ป้อนเข้ามา 5V จะถูกแบ่งให้ลดลงเหลือ 2.5V ตามที่เห็นในภาพด้านบน

คำสั่งที่ใช้อ่านค่า Analog analogRead(PIN);      โดยในส่วนของ PIN นั้นคือหมายเลขขาของ Arduino ที่เราต้องการให้มันอ่านค่า Analog ยกตัวอย่างเช่นถ้าเราต้องให้ ขา A0 ของ Arduino Uno อ่านสัญญาณ Analog เราต้องใช้ คำสั่งว่า analogRead(0);

คำสั่งที่ใช้อ่านค่า Analog(ต่อ) Arduino จะทำการอ่านค่า Analog มาให้เรา โดยค่าที่ Return กลับมาจะเป็นจำนวนเต็มตั้งแต่ 0 ไปจนถึง 1023 ดังนั้งการใช้คำสั่ง analogRead จำเป็นต้องมีตัวแปรมาเก็บค่าที่อ่านได้จากฟังก์ชั้นนี้ โดยต้องประกาศตัวแปรเป็นจำนวนเต็ม (Integer) ตามตัวอย่าง int value; value = analogRead(0); เป็นการสั่งให้ Arduino อ่านค่า analog จากขา A0 แล้วนำค่าที่ได้มาเก็บไว้ตัวแปรชนิดจำนวนเต็มที่ชื่อว่า value

การเขียนโปรแกรมอ่านค่า Analog (ต่อ) กำหนดตัวแปรเก็บข้อมูลแบบจำนวนเต็ม กำหนดอัตราเร็วการอ่านพอร์ตอนุกรม อ่าน Analog (pin0) เก็บในตัวแปร value ส่ง value ออกพอร์ตอนุกรม

การเขียนโปรแกรมส่งข้อมูล PWM PWM(Pulse Width Modulation) คือเทคนิดการส่งสัญญาณแบบสวิตซ์ หรือ ส่งค่าดิจิตอล 0-1 โดยให้สัญญาณความถี่คงที่  การควบคุมระยะเวลาสัญญาณสูงและสัญญาณต่ำ ที่ต่างกัน ก็จะทำให้ค่าแรงดันเฉลี่ยของสัญญาณสวิต ต่างกันด้วย http://www.myarduino.net/article/25/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A1%E0%B9%80%E0%B8%9A%E0%B8%B7%E0%B9%89%E0%B8%AD%E0%B8%87%E0%B8%95%E0%B9%89%E0%B8%99%E0%B8%81%E0%B8%B1%E0%B8%9A-arduino-c-%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B9%88%E0%B8%87%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B8%AA%E0%B8%B1%E0%B8%8D%E0%B8%8D%E0%B8%B2%E0%B8%93-pwm

สำหรับโมดุล PWM ของ Arduino มีความละเอียด 8 bit หรือ ปรับได้ 255 ระดับ          

การเขียนโปรแกรมส่งสัญญาณ PWM กำหนดขาควบคุม กำหนดตัวแปรเก็บข้อมูล กำหนดโหมด ของ Pin ตัวแปรValue = อ่านค่า(A0) ปรับ Value ให้อยู่ใน ช่วง 0-255 ส่งข้อมูลออก LED

กิจกรรมที่ทำ 1. เขียนโฟลว์ชาร์ต 2. แนวคิดการออกแบบโปรแกรม 3. .............. 4. .............