กระทู้เมื่อเร็วๆ นี้

หน้า: 1 ... 5 6 [7] 8 9 10
61
ออกแบบวงจรอิเล็กทรอนิกส์ด้วยคอมฯ / Re: งานครั้งที่ xxxxxxxx
« กระทู้ล่าสุด โดย admin เมื่อ กรกฎาคม 30, 2019, 08:27:03 PM »
xxxxxx
62
ออกแบบวงจรอิเล็กทรอนิกส์ด้วยคอมฯ / Re: งานครั้งที่ xxx
« กระทู้ล่าสุด โดย admin เมื่อ กรกฎาคม 30, 2019, 08:24:49 PM »
xxxx
63

กระบวนการเรียนรู้

บทบาทครู บทบาทนักศึกษา
อธิบายข้อปฏิบัติ และหลักการออกแบบ ฟังและจดบันทึกความเข้าใจ
ให้คำปรึกษาและคำแนะนำการออกแบบ (งานครั้งนี้ครูไม่ทำเป็นตัวอย่างโดยให้นักศึกษาออกแบบด้วยตนเอง) ดำเนินการออกแบบตามโจทย์ที่กำหนด หากมีข้อสงสัยให้ถามครูทันที
64
IOT : Internet of Thing (ESP32) / Re: การเรียนรู้ครั้งที่ 8 [Basic ESP32] การใช้งานสวิตช์สัมผัส
« กระทู้ล่าสุด โดย admin เมื่อ มิถุนายน 05, 2019, 01:35:32 PM »
วงจรที่ใช้ทดลอง

ตัวอย่างโปรแกรม [1] อ่านค่าจากขาสวิตช์สัมผัสแล้วแสดงผลทันที
เขียนโปรแกรมอ่านค่าจากขาสวิตช์สัมผัสแล้วแสดงผลค่าที่อ่านได้ผ่านทางพอร์ตอนุกรมแสดงผลบน Serial monitor ทันที
โค๊ด: [Select]
void setup()
{
  Serial.begin(115200);
  delay(1000);
}
void loop()
{
  Serial.println(touchRead(T0));
  delay(100);
}
สังเกตค่าที่อ่านได้

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

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

ทดลองสัมผัสที่ตัวโลหะที่ขาสวิตช์สัมผัส ผลที่ได้เป็นดังรูป

เมื่อทดลองใช้ตัวเก็บประจุค่า 22pF ทำการกรองสัญญาณ ผลที่ได้ค่าจะลดลงแต่การแกว่งยังมีเหมือนเดิม


ตัวอย่างโปรแกรม [2] อ่านค่าจากขาสวิตช์สัมผัสจำนวนมากแล้วทำการเฉลี่ยก่อนใช้งาน
เขียนโปรแกรมอ่านค่าจากขาสวิตช์สัมผัส โดยอ่านค่าจำนวนมากแล้วทำการเฉลี่ยค่าที่อ่านได้ก่อนนำค่าที่ได้ไปแสดงผล ในตัวอย่างนี้ใช้วิธีการอ่าน 100 ครั้งโดยแต่ละครั้งของการอ่านจะห่างกัน 10 ไมโครวินาที
โค๊ด: [Select]
int touchValue = 0;
void setup()
{
  Serial.begin(115200);
}
void loop()
{
  for (byte i = 0; i < 100; i++)
  {
    touchValue += touchRead(T0);
    delayMicroseconds(10);
  }
  touchValue/=100;
  Serial.println(touchValue);
  delay(50);
}
ผลที่ได้เป็นดังรูป


ตัวอย่างโปรแกรม [3] อ่านค่าจากขาสวิตช์สัมผัสแล้วไปควบคุมการทำงานของ LED
เขียนโปรแกรมอ่านค่าจากขาสวิตช์สัมผัสเพิ่มเติมจากตัวอย่างที่ 2 โดยให้ควบคุมการติดดับของ LED ใช้การตรวจสอบค่าเฉลี่ยของค่าที่อ่านจากสวิตช์สัมผัสหากต่ำกว่า 60 แสดงว่ามีการสัมผัสสวิตช์ (ดูจากกราฟผลการทดลองข้างต้น)
โค๊ด: [Select]
#define LED 27
int touchValue = 0;
void setup()
{
  Serial.begin(115200);
  pinMode(LED, OUTPUT);
}
void loop()
{
  for (byte i = 0; i < 100; i++)
  {
    touchValue += touchRead(T0);
    delayMicroseconds(10);
  }
  touchValue /= 100;
  digitalWrite(LED, touchValue < 60 ? 1 : 0);
  Serial.println(touchValue);
  delay(50);
}
ผลการรันจากโค้ดตัวอย่าง [3]
<a href="https://www.youtube.com/v/fWiqIRqg2O0" target="_blank" class="new_win">https://www.youtube.com/v/fWiqIRqg2O0</a>
65
IOT : Internet of Thing (ESP32) / Re: การเรียนรู้ครั้งที่ 8 [Basic ESP32] การใช้งานสวิตช์สัมผัส
« กระทู้ล่าสุด โดย admin เมื่อ มิถุนายน 05, 2019, 01:18:43 PM »

ฟังก์ชั่นที่ใช้งานในการทดลองนี้

รูปแบบ คำอธิบาย
touchRead(Touch pin); ฟังก์ชั่นอ่านค่าจากเซนเซอร์สัมผัส
Touch pin: หมายเลขขาพอร์ตของเซอร์เซอร์สัมผัสที่ต้องการอ่านค่า
เช่น x=touchRead(T0); หมายถึงอ่านค่าจากขา TOUCH0 เก็บไว้ในตัวแปร x
delayMicroseconds(us); ฟังก์ชั่นหน่วงเวลาเป็นไมโครวินาที
us:ค่าตัวเลขไมโครวินาทีที่ต้องการหน่วง
66
IOT : Internet of Thing (ESP32) / การเรียนรู้ครั้งที่ 8 [Basic ESP32] การใช้งานสวิตช์สัมผัส
« กระทู้ล่าสุด โดย admin เมื่อ มิถุนายน 05, 2019, 01:09:48 PM »
การเรียนรู้ครั้งที่ 8 [Basic ESP32] การใช้งานสวิตช์สัมผัส
 สวิตช์สัมผัสหรือเซ็นเซอร์สัมผัสภายในตัว ESP32 มีมาให้ใช้งานได้ทั้งหมด 10 ช่องสำหรับ ESP32 ในโมดูลที่มีขา GPIO0 ต่อมาให้ใช้งานเช่น ESP32 DevKitC เป็นโมดูลที่มีจำนวนขาทั้งหมด 34 ขา แต่สำหรับ ESP32 ในโมดูลที่ไม่ได้เชื่อมขา GPIO0 ออกมาให้ใช้งาน (เนื่องจากเป็นขาที่ใช้สำหรับบังคับเข้าโหมดการโปรแกรมตัวเองจึงไม่ควรเอาไปใช้งานอื่น) เช่น ESP32 DOIT ขาใช้งานสวิตช์สัมผัสหรือเซ็นเซอร์สัมผัสจะมีให้ใช้งานเพียง 9 ขาเท่านั้นโดยขา TOUCH1 ซึ่งเป็นขาเดียวกับ GPIO0 ไม่ได้ต่อมาให้ใช้งานดังรูป

วิธีการอ่านค่าจากขาพอร์ตสวิตช์สัมผัส
ESP32 มีฟังก์ชั่นที่ใช้สำหรับอ่านค่าจากขาพอร์ตที่ทำหน้าที่เป็นสวิตช์สัมผัสโดยเฉพาะ เพียงแต่การกำหนดขาใช้งานจะไม่ได้ใช้คำเป็นเช่นใช้ T0 สำหรับขาสวิตช์สัมผัส TOUCH0 เป็นต้น ดังนั้นขาพอร์ตตัวอื่น ๆ จะใช้ตัวย่อเช่นกันได้แก่
T0 แทนขาสวิตช์สัมผัส TOUCH0
T1 แทนขาสวิตช์สัมผัส TOUCH1 (ESP32 DOIT ไม่มีขานี้)
T2 แทนขาสวิตช์สัมผัส TOUCH2
T3 แทนขาสวิตช์สัมผัส TOUCH3
T4 แทนขาสวิตช์สัมผัส TOUCH4
T5 แทนขาสวิตช์สัมผัส TOUCH5
T6 แทนขาสวิตช์สัมผัส TOUCH6
T7 แทนขาสวิตช์สัมผัส TOUCH7
T8 แทนขาสวิตช์สัมผัส TOUCH8
T9 แทนขาสวิตช์สัมผัส TOUCH9
รูปแบบของฟังก์ชั่นการใช้งานเป็นดังนี้
x=touchRead(T0);  //อ่านค่าจากขาสวิตช์สัมผัส TOUCH0 มาเก็บไว้ในตัวแปร x
68
รายการอุปกรณ์
web www.es.co.th
ลำดับที่รายการ   จำนวนตัว
10.1uF1
21N58171
3LED 3 mm1
4LTC-47271
5MINI-USB Connector1
6Female Header 1x141
7STEPPING-MOTOR-CON1
8I.C. SOCKET DIP 16 PINS1
9I.C. SOCKET DIP 18 PINS1
10Terminal Box2
11Switch Tact8
web www.arduinoall.com
ลำดับที่รายการ   จำนวนตัว
1Breadbroad 170hole1
2Buzzer1
3DHT111
4Female Header 1x101
5Female Header 1x152
6Female Header 1x161
7Female Header 1x212
8Female Header 1x35
9Female Header 1x44
10Female Header 1x4-902
11Female Header 1x51
12Female Header 1x82
13IC: DS18B201
14IC: L293D1
15IC: ULN28031
16LDR1
17LED-BAR 10  digit1
18NTC Thermistor 10k1
19Pin Header Connector 1x40 Black1
20Pin Header Connector 1x40 Red1
21POT-3386P 10k1
22POT-LCD 10k1
23Resistor 10k2
24Resistor 1k7
25Resistor 22022
26Resistor 4k72
27Resistor 6801
28TR: BC5475
29น็อตสกรู M34
30เสาน็อตไนลอน4
โมดูลเพิ่มเติมตามใบงาน
1Arduino Nano1
27 segment 4 digit i2c1
37 segment 4 digit TM16371
47 segment 8 digit MAX72191
5DC motor1
6LCD 16char 2 Line1
7LCD 16char 2 Line i2c1
8OLED i2c1
9Stepper Motor 5V1
10Wire jumper แบบแยกเส้น1
11Wire jumper แบบแพ1
ตัวต้านทานที่ไม่สามารถสั่งผ่านเวปได้
1Resistor 820 1/4w1
2Resistor 22 2w1
3Resistor 2k7 1/4w1
รายการอุปกรณ์ร้าน arduinoall บางรายการมีจำนวนมากกว่า 1 ชิ้นต่อการซื้อ 1 ครั้งให้สังเกตุก่อนการกดซื้อ
69
ลายปริ้นวงจรบอร์ดทดลองไมโครคอนโทรลเลอร์เวอร์ชั่น 2019
ลายปริ้นที่ใช้ศึกษาในวิชาไมโครคอนโทรลเลอร์ (Arduino) เวอร์ชั่น 2019 นี้ได้ปรับปรุงจากเวอร์ชั่น 2016 โดยตัดภาคจ่ายไฟออกแล้วใช้การจ่ายผ่านคอนเน็คเตอร์ USB แทนโดยให้ใช้แหล่งจ่ายไฟข้างนอกแทนซึ่งอาจใช้วอลชาร์จโทรศัพท์แทนได้ การจัดทำปริ้นนักศึกษาสามารถทำด้วยตนเองได้(หรือจะสั่งทำก็ได้) ครูได้ออกแบบลายปริ้นโดยปรับขนาดให้เป็น 6x4 นิ้ว รูปแบบของแผงวงจรเป็นดังรูป



ลายปริ้นมีจุดจั๊มสาย 4 จุดดังรูป (จั้มเฉพาะการทำปริ้นหน้าเดียวเท่านั้น หากสั่งโรงงานผลิตไม่ต้องจั้ม)


ต้นแบบลายปริ้นสำหรับวิธีการรีดผ่านกระดาษโฟโต้สำหรับทำเองหรือส่งร้านรับจ้างทำ
https://drive.google.com/file/d/1YwCVZyMvQza0RQ3BVKPQnYETOOeVxQNg

ไฟล์ต้นแบบลายปริ้น (Gerber) สำหรับส่งโรงงานผลิต //ขนาดสั่งทำ 102mm x 153mm
https://drive.google.com/file/d/1dmeRCmlMlf6_wNgpvqigY9NK6k-3ogY6

ไฟล์แบบตัดพลาสติกด้วยเลเซอร์สำหรับฐานรองกันชอร์ตพื้น (CorelDraw)
https://drive.google.com/file/d/1ZPX9yCYlgKB0mjpS4YQPlyRMbM_iK6V2

ลายปริ้นขนาด 6 นิ้ว x 4 นิ้ว (วัดขนาดก่อนทำปริ้น)

การตั้งค่าเครื่องพิมพ์เพื่อให้ได้ขนาด PCB ที่ถูกต้อง
-ตั้งค่าหน้ากระดาษเป็นขนาด A4
-ตั้งค่าการพิมพ์ดังรูป



ในกรณีที่ทำปริ้นด้วยตนเอง..
ให้นักศึกษาใช้เทคนิคโทนเนอร์ทรานเฟอร์ซึ่งรายละเอียดการทำดูได้จากเวปไซต์ของครู


กรณีใช้กระดาษโฟโต้
http://www.praphas.com/index.php/2008-11-03-14-25-25/36-2008-11-04-15-15-34/77-2010-09-13-05-43-56

กรณีใช้กระดาษโบว์ชัวด์
http://www.praphas.com/index.php/2008-11-03-14-25-25/36-2008-11-04-15-15-34/78-toner-transfer

หมายเหตุการทดลองในโหลดที่กินกระแสต่างกัน
   -ไฟเลี้ยงของวงจรขณะเสียบสาย USB จะใช้ไฟเลี้ยงจอกคอมพิวเตอร์ผ่านมาทางสาย USB ที่เข้ามายังบอร์ด Arduino Nano 3.0 สามารถทดลองกับโหลดที่ใช้กระแสน้อยได้เลย (หากกระแสสูงไดโอดบนโมดูล Arduino จะไหม้เสียหาย)
   -หากทดลองกับโหลดที่ใช้กระแสสูง หลังจากอัพโหลดโค้ดเสร็จแล้วให้ย้ายสาย USB จากบอร์ด Arduino มาเสียบเข้า USB บนบอร์ดทดลองแทน ดังรูป
70
รายการอุปกรณ์
web www.es.co.th
ลำดับที่รายการ   จำนวนตัว
10.1uF1
21N58171
3LED 3 mm1
4LTC-47271
5MINI-USB Connector1
6Female Header 1x141
7STEPPING-MOTOR-CON1
8I.C. SOCKET DIP 16 PINS1
9I.C. SOCKET DIP 18 PINS1
10Terminal Box2
11Switch Tact8
web www.arduinoall.com
ลำดับที่รายการ   จำนวนตัว
1Breadbroad 170hole1
2Buzzer1
3DHT111
4Female Header 1x101
5Female Header 1x152
6Female Header 1x161
7Female Header 1x212
8Female Header 1x35
9Female Header 1x44
10Female Header 1x4-902
11Female Header 1x51
12Female Header 1x82
13IC: DS18B201
14IC: L293D1
15IC: ULN28031
16LDR1
17LED-BAR 10  digit1
18NTC Thermistor 10k1
19Pin Header Connector 1x40 Black1
20Pin Header Connector 1x40 Red1
21POT-3386P 10k1
22POT-LCD 10k1
23Resistor 10k2
24Resistor 1k7
25Resistor 22022
26Resistor 4k72
27Resistor 6801
28TR: BC5475
โมดูลเพิ่มเติมตามใบงาน
1Arduino Nano1
27 segment 4 digit i2c1
37 segment 4 digit TM16371
47 segment 8 digit MAX72191
5DC motor1
6LCD 16char 2 Line1
7LCD 16char 2 Line i2c1
8OLED i2c1
9Stepper Motor 5V1
10Wire jumper แบบแยกเส้น1
11Wire jumper แบบแพ1
ตัวต้านทานที่ไม่สามารถสั่งผ่านเวปได้
1Resistor 820 1/4w1
2Resistor 22 2w1
3Resistor 2k7 1/4w1
รายการอุปกรณ์ร้าน arduinoall บางรายการมีจำนวนมากกว่า 1 ชิ้นต่อการซื้อ 1 ครั้งให้สังเกตุก่อนการกดซื้อ
หน้า: 1 ... 5 6 [7] 8 9 10