ใบงานท่ี 4.23 การประยกุ ตก์ ารแสดงผลท่ี LCD I2C กบั เซนเซอร์ตา่ ง ๆ 295 วงจรทใี่ ช้เซนเซอร์เป็ น DHT22 D1 VCC Peripheral circuit 1N5819 CPU circuit VCC VCC 1R01k SDA 7,20 ATMEGA328 SCL SW1 VCC GND 1 RST AVCC C1 0.1uF A4(SDA) 27 A5(SCL) 28 USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND 3V3 X1 VCC DHT22 16MHz 9 XTAL1 D8 14 4Rk47 10 XTAL2 DATA C2,C3 GND 22pF 8,22 รูปที่ 4.23-9 วงจรท่ีใชไ้ อซี AVR ในการทดลอง กรณีที่ใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป ARDUINO VCC VCC A4(SDA) GND A5(SCL) VCC SDA SCL VCC R1 DHT22 4k7 D8 DATA GND รูปท่ี 4.23-10 วงจรท่ีใชบ้ อร์ด Arduino ในการทดลอง การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ที่ใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง F GH I J 20 20 25 25GND 30 30 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J D12 1 VCC D11 SDA D10 SCL D9 D8 5 D7 D6 D5 D4 D3 10 D2 GND RST D0 D1 15 ABCDE ABCDE D13 3V3 REF A0 A1 A2 A3 A4 A5 A6 A7 5V RST GND VIN 1 5 10 15 รูปที่ 4.23-11 การตอ่ ลงบอร์ดทดลอง
296 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] การต่อวงจรเพื่อทดลองดว้ ยการจาลองการทางานดว้ ยโปรแกรม Proteus รูปที่ 4.23-12 การต่อวงจรทดลองในโปรแกรมจาลองการทางาน การทดลองที่ 3 เขียนโปรแกรมแสดงอุณภูมิและความช้ืนจาก DHT22 ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดค่าเริม่ ต้นต่าง ๆ อ่านค่าจากโมดลู DHT22 แสดงผล แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <Wire.h> 2 #include <LiquidCrystal_I2C.h> 3 #include <DHT.h> 4 #define DHTPIN 8 // pin to connect DHT22 5 #define DHTTYPE DHT22 // Type of use DHT11,DHT21,DHT22 6 DHT dht(DHTPIN, DHTTYPE); 7 LiquidCrystal_I2C lcd(0x3F,16,2); //0x27 for PCF8574 and 0x3F for PCF8574A 8 void setup() 9{ 10 lcd.init(); 11 lcd.backlight(); 12 lcd.begin(16, 2); // set LCD size 13 lcd.print(\"Humidity:\"); 14 lcd.setCursor(0,1); 15 lcd.print(\"Temp:\"); 16 dht.begin(); 17 } 18 void loop() 19 { 20 delay(2000); 21 float h = dht.readHumidity(); 22 float t = dht.readTemperature(); 23 if (isnan(h) || isnan(t))
ใบงานท่ี 4.23 การประยกุ ตก์ ารแสดงผลท่ี LCD I2C กบั เซนเซอร์ตา่ ง ๆ 297 24 { 25 lcd.clear(); 26 lcd.print(\"Failed read DHT\"); 27 return; 28 } 29 lcd.setCursor(10,0); 30 lcd.print(h); 31 lcd.setCursor(10,1); 32 lcd.print(t); 33 } ทดลองการทางาน 1. จาลองการทางานดว้ ยโปรแกรม Proteus 2. ทดลองดว้ ยวงจรจริง 3. ทดลองเพ่มิ /ลดอุณหภูมิและความช้ืน สังเกตผล วงจรทใี่ ช้เซนเซอร์เป็ น Ultasonic D1 VCC Peripheral circuit 1N5819 CPU circuit VCC VCC R1 SDA 10k 7,20 ATMEGA328 SCL VCC GND SW1 1 RST AVCC C1 0.1uF A4(SDA) 27 A5(SCL) 28 USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND 3V3 X1 9 XTAL1 D9 15 VCC HC-SR04 16MHz 10 XTAL2 D8 14 1 VCC 2 Trig GND 3 Echo 4 GND 8,22 C2,C3 22pF รูปท่ี 4.23-13 วงจรที่ใชไ้ อซี AVR ในการทดลอง กรณีที่ใช้ Arduino ในการทดลอง ตอ่ วงจรดงั รูป ARDUINO VCC VCC GND A4(SDA) VCC SDA SCL A5(SCL) D9 VCC HC-SR04 D8 1 VCC 2 Trig GND 3 Echo 4 GND รูปท่ี 4.23-14 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง
298 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร]F GH I J20 20 VCC 25 25 30 30 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J D12 1 Trig การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ที่ใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลองD11Echo D10 GND GNDD9 VCCD8 5 SDAD7 SCLD6 D5 รูปท่ี 4.23-15 การต่อลงบอร์ดทดลองD4 การตอ่ วงจรเพ่ือทดลองดว้ ยการจาลองการทางานดว้ ยโปรแกรม ProteusD3 10 D2 รูปท่ี 4.23-16 การตอ่ วงจรทดลองในโปรแกรมจาลองการทางาน การทดลองที่ 4 เขียนโปรแกรมวดั ระยะดว้ ย Ultrasonic แสดงผลดว้ ยจอ LCDGND ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี RST START D0 กา นดคา่ เริ่มต้นต่าง ๆD1 15 อ่านค่าจากโมดลู Ultrasonic ABCDE HC-SR04 ABCDE แสดงผลD13 3V3 แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม ArduinoREF A0 1 #include <Wire.h>A1 2 #include <LiquidCrystal_I2C.h>A2 3 #include <Ultrasonic.h> A3 4 Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)A4 5 LiquidCrystal_I2C lcd(0x3F,16,2); //0x27 for PCF8574 and 0x3F for PCF8574AA5 6 void setup() A6 7{ A7 5V RST GND VIN 1 5 10 15
ใบงานท่ี 4.23 การประยกุ ตก์ ารแสดงผลที่ LCD I2C กบั เซนเซอร์ตา่ ง ๆ 299 8 lcd.init(); 9 lcd.backlight(); 10 lcd.begin(16, 2); // set LCD size 11 lcd.print(\"Length is :\"); 12 lcd.setCursor(13,1); 13 lcd.print(\"cm\"); 14 } 15 void loop() 16 { 17 delay(500); 18 lcd.setCursor(7,1); 19 float L=ultrasonic.Ranging(CM); 20 lcd.print(L); 21 } ทดลองการทางาน 1. จาลองการทางานดว้ ยโปรแกรม Proteus 2. ทดลองดว้ ยวงจรจริง 3. ทดลองเปลี่ยนแปลงรูปแบบการแสดงผล วงจรทใ่ี ช้เซนเซอร์เป็ น DS18B20 D1 VCC Peripheral circuit 1N5819 CPU circuit R1 10k 7,20 ATMEGA328 VCC SW1 1 RST AVCC C1 VCC VCC 0.1uF SDA SCL A4(SDA) 27 GND A5(SCL) 28 USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND R4 R5 3V3 4.7k 4.7k VCC VCC 3 DS18B20 3 DS18B20 D8 14 2 VCC 2 VCC D9 15 DQ DQ X1 GND GND 16MHz 9 XTAL1 10 XTAL2 1 1 C2,C3 GND 22pF 8,22 รูปท่ี 4.23-17 วงจรที่ใชไ้ อซี AVR ในการทดลอง
300 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] กรณีที่ใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป ARDUINO VCC VCC A4(SDA) GND A5(SCL) VCC SDA SCL R1 VCC R2 VCC 4.7k 4.7k 3 DS18B20 3 DS18B20 D8 2 VCC 2 VCC D9 DQ DQ GND GND GND 1 1 รูปที่ 4.23-18 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ท่ีใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง F GH I J 20 20 25 25 30 30 GND 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J D12 1 VCC D11 SDA D10 SCL D9 D8 5 D7 D6 D5 D4 D3 10 D2 GND RST D0 D1 15 ABCDE D S1 8 D S1 8 ABCDE D13 B 20 B 20 3V3 REF A0 A1 A2 A3 A4 A5 A6 A7 5V RST GND VIN 1 5 10 15 รูปท่ี 4.23-19 การต่อลงบอร์ดทดลอง การต่อวงจรเพื่อทดลองดว้ ยการจาลองการทางานดว้ ยโปรแกรม Proteus รูปที่ 4.23-20 การต่อวงจรทดลองในโปรแกรมจาลองการทางาน
ใบงานที่ 4.23 การประยกุ ตก์ ารแสดงผลท่ี LCD I2C กบั เซนเซอร์ตา่ ง ๆ 301 การทดลองที่ 5 เขียนโปรแกรมแสดงค่าอุณหภูมิท่ีวดั จากไอซี DS18B20 จานวน 2 ตวั โดยแสดงผลท่ีจอ LCD ที่เชื่อมต่อผา่ นทางโมดูล I2C ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดค่าเริ่มต้นต่าง ๆ อ่านคา่ จากไอซี แสดงค่าท่อี ่านได้ แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <Wire.h> 2 #include <LiquidCrystal_I2C.h> 3 #include <OneWire.h> 4 #include <DallasTemperature.h> 5 OneWire ds_1(8); //sensor 1 on pin D8 6 OneWire ds_2(9); //sensor 2 on pin D9 7 DallasTemperature sensor_1(&ds_1); 8 DallasTemperature sensor_2(&ds_2); 9 float temp_1; //variable keep temp value 10 float temp_2; //variable keep temp value 11 void temp_read(); 12 LiquidCrystal_I2C lcd(0x3F,16,2); //0x27 for PCF8574 and 0x3F for PCF8574A 13 void setup() 14 { 15 lcd.begin(16, 2); // set LCD size 16 lcd.print(\"Sensor1: 'C\"); 17 lcd.setCursor(0,1); 18 lcd.print(\"Sensor2: 'C\"); 19 sensor_1.begin(); 20 sensor_2.begin(); 21 } 22 void loop() 23 { 24 temp_read(); 25 lcd.setCursor(10,0); 26 lcd.print(temp_1,1); 27 lcd.setCursor(10,1); 28 lcd.print(temp_2,1); 29 delay(500); 30 } 31 void temp_read() 32 { 33 sensor_1.requestTemperatures(); 34 sensor_2.requestTemperatures(); 35 //------------------------------------------ 36 temp_1 = sensor_1.getTempCByIndex(0); //read temp from sensor_1 37 temp_2 = sensor_2.getTempCByIndex(0); //read temp from sensor_2 38 } ทดลองการทางาน 1. จาลองการทางานดว้ ยโปรแกรม Proteus (ใช้ Arduino IDE v. 1.6.5 ในการคอมไพล)์ 2. ทดลองดว้ ยวงจรจริง 3. ทดลองใหอ้ ุณหภูมิท่ีตวั ไอซีเปลี่ยนแปลงแลว้ สังเกตผล
302 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] 7. สรุปผลการปฏบิ ัตงิ าน 8. งานทม่ี อบ มาย 1. ออกแบบโจทยป์ ระยุกตใ์ ชง้ านท่ีใชเ้ ซนเซอร์วดั อุณหภูมิและความช้ืน DHT22 แสดงผลการ ทางานท่ีจอ LCD I2C ARDUINO VCC VCC A4(SDA) GND A5(SCL) VCC SDA SCL R1-R4 220 LED1-LED4 VCC DHT22 D10 R5 DATA D11 4k7 D12 D13 D8 GND รูปที่ 4.23-21 วงจรท่ีใชท้ ดลอง 2. ออกแบบโจทยป์ ระยุกตใ์ ชง้ านท่ีใชเ้ ซนเซอร์วดั ระยะทาง Ultrasonic แสดงผลการทางานท่ี จอ LCD I2C ARDUINO VCC VCC GND A4(SDA) VCC SDA SCL A5(SCL) R1-R4 220 LED1-LED4 VCC D10 1 VCC D11 2 Trig HC-SR04 D12 3 Echo D13 4 GND D9 D8 GND รูปท่ี 4.23-22 วงจรที่ใชท้ ดลอง
ใบงานที่ 4.24 การประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ตา่ ง ๆ 303 ใบงานที่ 4.24 การประยุกต์การแสดงผลด้วยโมดูล MAX7219 กบั เซนเซอร์ต่าง ๆ 1. จุดประสงค์ทว่ั ไป เพ่ือใหส้ ามารถประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ต่าง ๆ ได้ 2. จุดประสงค์เชิงพฤตกิ รรม 1. บอกวธิ ีประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ตา่ ง ๆ ได้ 2. บอกข้นั ตอนการตอ่ วงจรเพื่อทดลองบนบอร์ดทดลองได้ 3. ทดสอบการทางานของบอร์ด Arduino ได้ 4. ปฏิบตั ิงานตามใบงานเสร็จทนั เวลาที่กาหนด 3. เคร่ืองมือและอปุ กรณ์ 1. บอร์ดทดลอง Breadboard 830 Point 1 แผน่ 2. อุปกรณ์อิเลก็ ทรอนิกส์ประกอบดว้ ย 4 ตวั 1 ตวั 2.1 Potentiometer 10k 1 ตวั 2.5 ตวั ทา้ นทาน 220 ohm 1 ตวั 2.6 ตวั ทา้ นทาน 4.7k 2.2 Thermistor NTC 10k 1 ตวั 2.7 ตวั ทา้ นทาน 10k 1 เส้น 1 ชุด 2.3 IC DS18B20 1 ตวั 3.5 สายเช่ือมต่อ USB (Mini) 1 เครื่อง 3.6 สายเชื่อมต่อวงจร 2.4 LED 3mm 4 ตวั 3.7 คอมพิวเตอร์ 3. อุปกรณ์ร่วมอ่ืน ๆ 3.1 บอร์ด Arduino Nano 3.0 1 ตวั 3.2 โมดูลตวั เลข MAX7219 1 ตวั 3.3 โมดูลวดั อุณหภูมิ DHT22 1 ตวั 3.4 โมดูลอลั ตร้าโซนิค HC-SR04 1 ตวั 4. ลาดับข้นั การปฏบิ ตั ิงาน 1. ศึกษาจุดประสงคท์ วั่ ไป จุดประสงคเ์ ชิงพฤติกรรมและทฤษฎีพ้ืนฐานท่ีเก่ียวขอ้ ง 2. ดาเนินการต่อวงจรลงบอร์ดทดลองตามวงจรท่ีกาหนด 3. เขียนโปรแกรมควบคุมและทดสอบการทางานของวงจร 4. สรุปผลการปฏิบตั ิงาน
304 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] 5. ทฤษฎพี ืน้ ฐาน การประยุกตใ์ ช้งานในใบงานน้ีเป็ นการเปล่ียนเป้าหมายการแสดงผลจากเดิมในใบงานที่ 4.6, 4.7, 4.8, 4.9 และ 4.10 ที่เป็ นการอ่านค่าจากเซนเซอร์แบบต่าง ๆ แลว้ นาผลมาคานวณ (หรือนามาใช้ได้ เลยในบางใบงาน) ไปแสดงผลผ่านทางจอคอมพิวเตอร์ผ่านทางการสื่อสารทางพอร์ตอนุกรมซ่ึงการ ดาเนินการดังกล่าวเป็ นการเขียนโค้ดโปรแกรมเพื่อใช้ทดสอบผลการทางานกบั เซนเซอร์ต่าง ๆ ใน เบ้ืองตน้ ซ่ึงไม่ตอ้ งต่อตวั แสดงผลอื่น ๆ สาหรับใบงานน้ีเป็ นการเปลี่ยนเป้าหมายจากการแสดงผลจาก จอคอมพิวเตอร์มาแสดงผลท่ีโมดูลตวั เลข MAX7219 6. วงจรทใี่ ช้ทดลอง วงจรเพื่อใช้ทดลองในใบงานเป็ นการทดลองจากเซนเซอร์ท้งั 5 แบบโดยแสดงผลท่ีโมดูล แสดงผลตวั เลข MAX7219 วงจรที่ใชท้ ดลองมีดงั น้ี 1. วงจรท่ีใชเ้ ซนเซอร์เป็นตวั ตา้ นทานปรับค่าได้ 2. วงจรที่ใชเ้ ซนเซอร์เป็นเทอร์มิสเตอร์วดั อุณหภูมิที่อา่ นค่ามาเป็นแรงดนั แอนนาลอก 3. วงจรที่ใชเ้ ซนเซอร์เป็น DHT22 4. วงจรท่ีใชเ้ ซนเซอร์เป็น Ultrasonic 5. วงจรท่ีใชเ้ ซนเซอร์เป็น DS18B20 วงจรทใี่ ช้เซนเซอร์เป็ นตัวต้านทานปรับค่าได้ D1N15819 VCC Peripheral circuit CPU circuit VCC MAX7219 7-Segment 4-Digit R1 7,20 ATMEGA328 VCC 10k VCC Din Load SW1 1 RST AVCC Clk GND C1 D11(MOSI) 17 0.1uF D10(SS) 16 VCC 19 D13(SCK) USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND 3V3 A5 28 10k X1 9 XTAL1 16MHz 10 XTAL2 C2,C3 GND 22pF 8,22 รูปท่ี 4.24-1 วงจรท่ีใชไ้ อซี AVR ในการทดลอง
รูปท่ี 4.24-3 การต่อลงบอร์ดทดลอง AB C DE F GH I J GND กรณีท่ีใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป การต่อวงจรเพ่อื ทดลองดว้ ยการจาลองการทางานดว้ ยโปรแกรม Proteus 1 D13 D12 1 รูปที่ 4.24-4 การต่อวงจรทดลองในโปรแกรมจาลองการทางาน D11 5 รูปท่ี 4.24-2 วงจรท่ีใชบ้ อร์ด Arduino ในการทดลอง 5V VCC ARDUINO ใบงานที่ 4.24 การประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ต่าง ๆ 305 3V3 D10 การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ที่ใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง REF D9 10 D11(MOSI) A0 D8 D10(SS) 5 A1 D7 15 A2 D6 D13(SCK) A3 D5 A4 D4 A5 D3 10 A6 D2 A7 5V GND RST RST GND 15 VIN D0 D1 20 20 A5 10k 25 25 30 30 VCC MAX7219 7-Segment 4-Digit VCC VCC GND VCC DIN Din CS Load CL K Clk GND 35 35 40 40 45 45 50 50 55 55 60 60 AB C DE F GH I J
306 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] การทดลองที่ 1 เขียนโปรแกรมแสดงค่าที่อา่ นไดจ้ ากโพเทนธิโอมิเตอร์ ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดคา่ เริม่ ต้นต่าง ๆ อ่านคา่ จาก POT แสดงค่าท่อี า่ นได้ แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <HCMAX7219.h> /* D10 -> CS pin */ 2 #include \"SPI.h\" 3 #define POT 5 /*Sets the intensity of the LED 0 to 15 */ 4 HCMAX7219 HCMAX7219(10); 5 void setup() /* Clear the output buffer */ 6{ /* Write value to the output buffer */ 7 HCMAX7219.Intensity(10, 0); /* Send the output buffer to the display */ 8} 9 void loop() 10 { 11 int adc=analogRead(POT); 12 HCMAX7219.Clear(); 13 HCMAX7219.print7Seg(adc,4); 14 HCMAX7219.Refresh(); 15 delay(100); 16 } ทดลองการทางาน 1. จาลองการทางานดว้ ยโปรแกรม Proteus 2. ทดลองดว้ ยวงจรจริง 3. ทดลองเปลี่ยนแปลงคา่ โพเทนธิโอมิเตอร์แลว้ สงั เกตผล วงจรทใี่ ช้เซนเซอร์เป็ นเทอร์มสิ เตอร์วดั อณุ ภูมิ D1 VCC Peripheral circuit 1N5819 CPU circuit VCC MAX7219 7-Segment 4-Digit R1 7,20 ATMEGA328 VCC 10k VCC Din Load SW1 1 RST AVCC Clk GND C1 D11(MOSI) 17 0.1uF D10(SS) 16 VCC 19 D13(SCK) R4 10k USB to UART (TTL Level) R2,R3 3 1k 2 NTC DTR T Thermistor RXD D1(TXD) TXD D0(RXD) 10k +5V GND 3V3 A5 28 X1 9 XTAL1 16MHz 10 XTAL2 C2,C3 GND 22pF 8,22 รูปท่ี 4.24-5 วงจรท่ีใชไ้ อซี AVR ในการทดลอง
รูปที่ 4.24-8 การต่อวงจรทดลองในโปรแกรมจาลองการทางาน รูปท่ี 4.24-7 การต่อลงบอร์ดทดลอง AB C DE F GH I J รูปท่ี 4.24-6 วงจรท่ีใชบ้ อร์ด Arduino ในการทดลอง GND 5V VCC ARDUINO กรณีที่ใช้ Arduino ในการทดลอง ตอ่ วงจรดงั รูป ใบงานท่ี 4.24 การประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ตา่ ง ๆ 307 การต่อวงจรเพ่ือทดลองดว้ ยการจาลองการทางานดว้ ยโปรแกรม Proteus 1 D13 D12 1 การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ที่ใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง D11 D11(MOSI) 3V3 D10 D10(SS) REF D9 A0 D8 5 D13(SCK) 5 A1 D7 A2 D6 A3 D5 A4 D4 A5 D3 10 10 A6 D2 A7 5V GND RST RST GND 15 VIN D0 D1 15 20 20 VCC 25 25 R1 10k 30 30 A5 VCC MAX7219 7-Segment 4-Digit VCC NTC GND T Thermistor VCC DIN Din CS 10k Load CL K Clk GND 35 35 40 40 45 45 50 50 55 55 60 60 AB C DE F GH I J
308 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] การทดลองท่ี 2 เขียนโปรแกรมแสดงผลที่อ่านค่าจากเทอร์มิสเตอร์แลว้ คานวนเป็นอุณหภูมิ ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดคา่ เริม่ ต้นต่าง ๆ อ่านคา่ จาก NTC คานวณ แสดงผล แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <HCMAX7219.h> 2 #include \"SPI.h\" 3 #define NTC A5 4 double Thermistor(int RawADC) ; 5 HCMAX7219 HCMAX7219(10); /* D10 -> CS pin */ 6 void setup() 7{ 8 HCMAX7219.Intensity(10, 0); /*Sets the intensity of the LED 0 to 15 */ 9} 10 void loop() 11 { 12 float Temp=Thermistor(analogRead(NTC)); 13 HCMAX7219.Clear(); /* Clear the output buffer */ 14 HCMAX7219.print7Seg(Temp*10,1,5); /* Write value to the output buffer */ 15 HCMAX7219.print7Seg(\"'C\",2); /* Write \"'C\" to the output buffer */ 16 HCMAX7219.Refresh(); /* Send the output buffer to the display */ 17 delay(100); 18 } 19 double Thermistor(int RawADC) 20 { 21 double Cal; 22 Cal = log(10000.0/((1024.0/RawADC-1))); 23 Cal = 1/(0.001129148+(0.000234125 + (0.0000000876741 * Cal * Cal))* Cal); 24 Cal = Cal - 273.15; // Convert Kelvin to Celcius 25 return Cal; 26 } ทดลองการทางาน 1. จาลองการทางานดว้ ยโปรแกรม Proteus 2. ทดลองดว้ ยวงจรจริง 3. ทดลองเพม่ิ /ลดอุณหภูมิที่เทอร์มิสเตอร์สงั เกตผล
ใบงานท่ี 4.24 การประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ต่าง ๆ 309 วงจรทใี่ ช้เซนเซอร์เป็ น DHT22 D1 VCC Peripheral circuit 1N5819 CPU circuit VCC MAX7219 7-Segment 4-Digit R1 7,20 ATMEGA328 VCC 10k VCC Din Load SW1 1 RST AVCC Clk GND C1 D11(MOSI) 17 0.1uF D10(SS) 16 VCC 19 D13(SCK) USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND R4 3V3 4k7 DATA DHT22 D8 14 X1 9 XTAL1 16MHz 10 XTAL2 C2,C3 GND 22pF 8,22 รูปที่ 4.24-9 วงจรที่ใชไ้ อซี AVR ในการทดลอง กรณีท่ีใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป VCC ARDUINO 5V VCC MAX7219 7-Segment 4-Digit D11(MOSI) D10(SS) VCC Din D13(SCK) Load Clk GND VCC R1 DHT22 4k7 D8 DATA GND รูปท่ี 4.24-10 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ที่ใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง F GH I J VCC20 2025 2530 3035 3540 40 45 45 50 50 55 55 60 60 F GH I J D12 1 GND D11 DIN D10 CS D9 CL K D8 5 D7 รูปที่ 4.24-11 การตอ่ ลงบอร์ดทดลอง D6 D5 D4 D3 10 D2 GND RST D0 D1 15 AB C DE AB C DE 1 D13 3V3 REF A0 5 A1 A2 A3 A4 A5 10 A6 A7 5V RST GND 15 VIN
310 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] การตอ่ วงจรเพ่อื ทดลองดว้ ยการจาลองการทางานดว้ ยโปรแกรม Proteus รูปท่ี 4.24-12 การตอ่ วงจรทดลองในโปรแกรมจาลองการทางาน การทดลองท่ี 3 เขียนโปรแกรมแสดงอุณภูมิและความช้ืนจาก DHT22 ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดค่าเริ่มต้นต่าง ๆ อ่านค่าจากโมดูล DHT22 แสดงผล แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <HCMAX7219.h> 2 #include \"SPI.h\" 3 #include <DHT.h> 4 #define DHTPIN 8 // pin to connect DHT22 5 #define DHTTYPE DHT22 // Type of use DHT11,DHT21,DHT22 6 HCMAX7219 HCMAX7219(10); /* D10 -> CS pin */ 7 DHT dht(DHTPIN, DHTTYPE); 8 void setup() 9{ 10 HCMAX7219.Intensity(10, 0); /*Sets the intensity of the LED 0 to 15 */ 11 dht.begin(); 12 } 13 void loop() 14 { 15 delay(2000); 16 float h = dht.readHumidity(); 17 float t = dht.readTemperature(); 18 HCMAX7219.Clear(); /* Clear the output buffer */ 19 if (isnan(h) || isnan(t)) 20 { 21 HCMAX7219.print7Seg(\"FALT\",8); /* Write \"FALT\" to the output buffer */ 22 return; 23 } 24 HCMAX7219.print7Seg(h*10,1,8); /* Write value to the output buffer */ 25 HCMAX7219.print7Seg(t*10,1,4); /* Write value to the output buffer */ 26 HCMAX7219.Refresh(); /* Send the output buffer to the display */ 27 }
ใบงานท่ี 4.24 การประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ต่าง ๆ 311 ทดลองการทางาน 1. จาลองการทางานดว้ ยโปรแกรม Proteus 2. ทดลองดว้ ยวงจรจริง 3. ทดลองเพิ่ม/ลดอุณหภูมิและความช้ืน สังเกตผล วงจรทใี่ ช้เซนเซอร์เป็ น Ultasonic D1 VCC Peripheral circuit 1N5819 CPU circuit VCC MAX7219 7-Segment 4-Digit R1 7,20 ATMEGA328 VCC 10k VCC Din Load SW1 1 RST AVCC Clk GND C1 D11(MOSI) 17 0.1uF D10(SS) 16 VCC 19 1 VCC D13(SCK) 2 Trig 3 Echo USB to UART (TTL Level) R2,R3 3 4 GND 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND 3V3 D9 15 HC-SR04 D8 14 X1 9 XTAL1 16MHz 10 XTAL2 C2,C3 GND 22pF 8,22 รูปที่ 4.24-13 วงจรที่ใชไ้ อซี AVR ในการทดลอง กรณีท่ีใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป VCC ARDUINO 5V VCC MAX7219 7-Segment 4-Digit D11(MOSI) D10(SS) VCC Din D13(SCK) Load Clk GND D9 VCC HC-SR04 D8 1 VCC 2 Trig GND 3 Echo 4 GND รูปท่ี 4.24-14 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง
312 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร]F GH I J20 20 25 25 30 30 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J D12 1 การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ท่ีใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลองD11 D10 VCCD9 GNDD8 5 DIND7 CSD6 CL KD5 D4 รูปที่ 4.24-15 การต่อลงบอร์ดทดลองD3 10 การต่อวงจรเพ่อื ทดลองดว้ ยการจาลองการทางานดว้ ยโปรแกรม ProteusD2 GND RST D0 D1 15 AB C DE VCC 1 D13 Trig Echo 3V3 GND REF A0 HC-SR04 AB C DE 5 A1 A2 A3 A4 A5 10 A6 A7 5V RST GND 15 VIN รูปที่ 4.24-16 การต่อวงจรทดลองในโปรแกรมจาลองการทางาน การทดลองที่ 4 เขียนโปรแกรมวดั ระยะดว้ ย Ultrasonic แสดงผลดว้ ยจอ LCD ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดค่าเริม่ ต้นต่าง ๆ อ่านค่าจากโมดลู Ultrasonic แสดงผล แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <HCMAX7219.h> 2 #include \"SPI.h\" 3 #include <Ultrasonic.h> 4 Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN) 5 HCMAX7219 HCMAX7219(10); /* D10 -> CS pin */ 6 void setup()
ใบงานท่ี 4.24 การประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ตา่ ง ๆ 313 7{ 8 HCMAX7219.Intensity(12, 0); /*Sets the intensity of the LED 0 to 15 */ 9} 10 void loop() 11 { 12 delay(500); 13 HCMAX7219.Clear(); /* Clear the output buffer */ 14 float L=ultrasonic.Ranging(CM); 15 HCMAX7219.print7Seg(L,8); /* Write value to the output buffer */ 16 HCMAX7219.print7Seg(\"CM\",5); /* Write value to the output buffer */ 17 HCMAX7219.Refresh(); /* Send the output buffer to the display */ 18 } ทดลองการทางาน 1. จาลองการทางานดว้ ยโปรแกรม Proteus 2. ทดลองดว้ ยวงจรจริง 3. ทดลองเปลี่ยนแปลงรูปแบบการแสดงผล วงจรทใ่ี ช้เซนเซอร์เป็ น DS18B20 D1 VCC Peripheral circuit 1N5819 CPU circuit VCC MAX7219 7-Segment 4-Digit R1 7,20 ATMEGA328 VCC 10k VCC Din Load SW1 1 RST AVCC Clk GND C1 D11(MOSI) 17 0.1uF D10(SS) 16 19 D13(SCK) USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND R4 VCC 4R.75k VCC 3V3 4.7k 3 DS18B20 X1 D8 14 3 DS18B20 2 DQ VCC 16MHz D9 15 2 DQ VCC GND 9 XTAL1 GND 1 10 XTAL2 1 C2,C3 GND 22pF 8,22 รูปที่ 4.24-16 วงจรท่ีใชไ้ อซี AVR ในการทดลอง กรณีที่ใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป VCC ARDUINO VCC 5V MAX7219 7-Segment 4-Digit D11(MOSI) D10(SS) VCC D13(SCK) Din Load D8 Clk D9 GND GND R1 VCC R2 VCC 4.7k 4.7k 3 DS18B20 3 DS18B20 2 VCC 2 VCC DQ DQ GND GND 1 1 รูปที่ 4.24-17 วงจรท่ีใชบ้ อร์ด Arduino ในการทดลอง
314 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ที่ใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง J 20 20 25 25 30 30 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J 1 5 10 15 F GH I VCC D12 GND D11 DIN D10 CS D9 CL K D8 D7 D6 D5 D4 D3 D2 GND RST D0 D1 AB C DE D S1 8 D S1 8 AB C DE 1 D13 B 20 B 20 3V3 REF A0 5 A1 A2 A3 A4 A5 10 A6 A7 5V RST GND 15 VIN รูปท่ี 4.24-18 การตอ่ ลงบอร์ดทดลอง การตอ่ วงจรเพือ่ ทดลองดว้ ยการจาลองการทางานดว้ ยโปรแกรม Proteus รูปที่ 4.24-19 การต่อวงจรทดลองในโปรแกรมจาลองการทางาน ปัญ าการจาลองการทางานของไลบราร่ี DallasTemperature.h ในใบงานท่ีผา่ นมาการจาลองการทางานสามารถจาลองไดป้ กติไม่มีขอ้ ผดิ พลาดใด ๆ แต่สาหรับ ใบงานน้ีหากใชไ้ ลบราร่ี DallasTemperature.h เพ่ืออ่านค่าอุณหภูมิจากไอซี DS18B20 จะไม่สามารถอ่าน คา่ ไดแ้ มว้ า่ โคด้ น้นั สามารถทดลองในวงจรจริงไดก้ ต็ าม ท้งั น้ีเกิดจากเวอร์ชนั่ ของโปรแกรม Arduino IDE ซ่ึงถา้ หากตอ้ งการท่ีจะจาลองการทางานเพอ่ื ดูผลการทางานจะตอ้ งไปใชเ้ วอร์ชนั่ 1.6.5 (a) เมื่อใช้ Arduino IDE V. 1.8.3 (b) เมื่อใช้ Arduino IDE V. 1.6.5 รูปท่ี 4.24-20 ผลการทดลองในโปรแกรมจาลองการทางานจาก Arduino IDE ต่างเวอร์ชน่ั
ใบงานท่ี 4.24 การประยกุ ตก์ ารแสดงผลดว้ ยโมดูล MAX7219 กบั เซนเซอร์ตา่ ง ๆ 315 การทดลองที่ 5 เขียนโปรแกรมแสดงค่าอุณหภูมิที่วดั จากไอซี DS18B20 จานวน 2 ตวั โดยแสดงผลท่ี โมดูลตวั เลข MAX7219 ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดคา่ เริม่ ต้นต่าง ๆ อ่านคา่ จากไอซี แสดงค่าท่ีอา่ นได้ แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <HCMAX7219.h> 2 #include <SPI.h> 3 #include <OneWire.h> 4 #include <DallasTemperature.h> 5 OneWire ds_1(8); //sensor 1 on pin D8 6 OneWire ds_2(9); //sensor 2 on pin D9 7 DallasTemperature sensor_1(&ds_1); 8 DallasTemperature sensor_2(&ds_2); 9 float temp_1; //variable keep temp value 10 float temp_2; //variable keep temp value 11 void temp_read(); 12 HCMAX7219 HCMAX7219(10); /* D10 -> CS pin */ 13 void setup() 14 { 15 HCMAX7219.Intensity(10, 0); /*Sets the intensity of the LED 0 to 15 */ 16 sensor_1.begin(); 17 sensor_2.begin(); 18 } 19 void loop() 20 { 21 temp_read(); 22 HCMAX7219.Clear(); /* Clear the output buffer */ 23 HCMAX7219.print7Seg(temp_1*10,1,8); /* Write value to the output buffer */ 24 HCMAX7219.print7Seg(temp_2*10,1,4); /* Write value to the output buffer */ 25 HCMAX7219.Refresh(); /* Send the output buffer to display */ 26 delay(100); 27 } 28 void temp_read() 29 { 30 sensor_1.requestTemperatures(); 31 sensor_2.requestTemperatures(); 32 //------------------------------------------ 33 temp_1 = sensor_1.getTempCByIndex(0); //read temp from sensor_1 34 temp_2 = sensor_2.getTempCByIndex(0); //read temp from sensor_2 35 } ทดลองการทางาน 1. จาลองการทางานดว้ ยโปรแกรม Proteus (ใช้ Arduino IDE v. 1.6.5 ในการคอมไพล)์ 2. ทดลองดว้ ยวงจรจริง 3. ทดลองใหอ้ ุณหภูมิท่ีตวั ไอซีเปล่ียนแปลงแลว้ สงั เกตผล
316 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] 7. สรุปผลการปฏบิ ตั งิ าน 8. งานทม่ี อบ มาย 1. ออกแบบโจทยป์ ระยกุ ตใ์ ชง้ านท่ีใชเ้ ซนเซอร์วดั อุณหภูมิและความช้ืน DHT22 แสดงผลการ ทางานท่ีโมดูลตวั เลข MAX7219 VCC ARDUINO VCC MAX7219 7-Segment 4-Digit 5V D11(MOSI) VCC D10(SS) Din D13(SCK) Load Clk GND R1-R4 220 LED1-LED4 VCC DHT22 D2 R5 DATA D3 4k7 D4 D5 D8 GND รูปท่ี 4.24-21 วงจรท่ีใชท้ ดลอง 2. ออกแบบโจทยป์ ระยุกตใ์ ชง้ านที่ใชเ้ ซนเซอร์วดั ระยะทาง Ultrasonic แสดงผลการทางานท่ี โมดูลตวั เลข MAX7219 VCC ARDUINO VCC MAX7219 7-Segment 4-Digit 5V D11(MOSI) VCC D10(SS) Din D13(SCK) Load Clk GND R1-R4 220 LED1-LED4 D2 D3 VCC HC-SR04 D4 1 VCC D5 2 Trig 3 Echo D9 4 GND D8 GND รูปที่ 4.24-22 วงจรท่ีใชท้ ดลอง
ใบงานที่ 4.25 การประยกุ ตก์ ารแสดงผลที่ OLED กบั เซนเซอร์ตา่ ง ๆ 317 ใบงานที่ 4.25 การประยุกต์การแสดงผลที่ OLED กบั เซนเซอร์ต่าง ๆ 1. จุดประสงค์ทวั่ ไป เพ่ือใหส้ ามารถประยกุ ตก์ ารแสดงผลท่ี OLED กบั เซนเซอร์ตา่ ง ๆ ได้ 2. จุดประสงค์เชิงพฤติกรรม 1. บอกวธิ ีประยกุ ตก์ ารแสดงผลท่ี OLED กบั เซนเซอร์ต่าง ๆ ได้ 2. บอกข้นั ตอนการต่อวงจรเพอ่ื ทดลองบนบอร์ดทดลองได้ 3. ทดสอบการทางานของบอร์ด Arduino ได้ 4. ปฏิบตั ิงานตามใบงานเสร็จทนั เวลาที่กาหนด 3. เคร่ืองมือและอปุ กรณ์ 1. บอร์ดทดลอง Breadboard 830 Point 1 แผน่ 2. อุปกรณ์อิเลก็ ทรอนิกส์ประกอบดว้ ย 4 ตวั 1 ตวั 2.1 Potentiometer 10k 1 ตวั 2.5 ตวั ทา้ นทาน 220 ohm 1 ตวั 2.6 ตวั ทา้ นทาน 4.7k 2.2 Thermistor NTC 10k 1 ตวั 2.7 ตวั ทา้ นทาน 10k 1 เส้น 1 ชุด 2.3 IC DS18B20 1 ตวั 3.5 สายเชื่อมตอ่ USB (Mini) 1 เครื่อง 3.6 สายเชื่อมต่อวงจร 2.4 LED 3mm 4 ตวั 3.7 คอมพิวเตอร์ 3. อุปกรณ์ร่วมอื่น ๆ 3.1 บอร์ด Arduino Nano 3.0 1 ตวั 3.2 โมดูลจอ OLED (SSD1306) 1 ตวั 3.3 โมดูลวดั อุณหภูมิ DHT22 1 ตวั 3.4 โมดูลอลั ตร้าโซนิค HC-SR04 1 ตวั 4. ลาดับข้นั การปฏบิ ตั ิงาน 1. ศึกษาจุดประสงคท์ วั่ ไป จุดประสงคเ์ ชิงพฤติกรรมและทฤษฎีพ้นื ฐานท่ีเก่ียวขอ้ ง 2. ดาเนินการต่อวงจรลงบอร์ดทดลองตามวงจรท่ีกาหนด 3. เขียนโปรแกรมควบคุมและทดสอบการทางานของวงจร 4. สรุปผลการปฏิบตั ิงาน
318 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] 5. ทฤษฎพี ืน้ ฐาน การประยุกต์ใชง้ านในใบงานน้ีเป็ นการเปลี่ยนเป้าหมายการแสดงผลจากเดิมในใบงานที่ 4.6, 4.7, 4.8, 4.9 และ 4.10 ที่เป็ นการอ่านค่าจากเซนเซอร์แบบต่าง ๆ แลว้ นาผลมาคานวณ (หรือนามาใช้ได้ เลยในบางใบงาน) ไปแสดงผลผ่านทางจอคอมพิวเตอร์ผ่านทางการส่ือสารทางพอร์ตอนุกรมซ่ึงการ ดาเนินการดงั กล่าวเป็ นการเขียนโคด้ โปรแกรมเพ่ือใช้ทดสอบผลการทางานกบั เซนเซอร์ต่าง ๆ ใน เบ้ืองตน้ ซ่ึงไม่ตอ้ งต่อตวั แสดงผลอ่ืน ๆ สาหรับใบงานน้ีเป็ นการเปลี่ยนเป้าหมายจากการแสดงผลจาก จอคอมพวิ เตอร์มาเป็นจอ OLED 6. วงจรทใี่ ช้ทดลอง วงจรเพ่ือใช้ทดลองในใบงานเป็ นการทดลองจากเซนเซอร์ท้งั 5 แบบโดยแสดงผลท่ีจอ OLED วงจรที่ใช้ทดลองมีดงั น้ี (OLED ไม่สามารถจาลองการทางานด้วย Proteus ได้ต้องทดลองวงจรจริง เทา่ น้นั ) 1. วงจรท่ีใชเ้ ซนเซอร์เป็นตวั ตา้ นทานปรับคา่ ได้ 2. วงจรท่ีใชเ้ ซนเซอร์เป็นเทอร์มิสเตอร์วดั อุณหภูมิท่ีอา่ นคา่ มาเป็นแรงดนั แอนาลอก 3. วงจรที่ใชเ้ ซนเซอร์เป็น DHT22 4. วงจรที่ใชเ้ ซนเซอร์เป็น Ultrasonic 5. วงจรท่ีใชเ้ ซนเซอร์เป็น DS18B20 วงจรทใี่ ช้เซนเซอร์เป็ นตวั ต้านทานปรับค่าได้ D1 VCC Peripheral circuit 1N5819 CPU circuit VCC R1 7,20 ATMEGA328 10k VCC SW1 AVCC 1 A4(SDA) 27 RST C1 A5(SCL) 28 0.1uF USB to UART (TTL Level) R2,R3 VCC GND SCL SDA 1k DTR 3 RXD 2 D1(TXD) TXD D0(RXD) +5V GND 3V3 X1 9 XTAL1 A3 26 VCC 16MHz 10 XTAL2 10k C2,C3 GND 22pF 8,22 รูปที่ 4.25-1 วงจรที่ใชไ้ อซี AVR ในการทดลอง
ใบงานท่ี 4.25 การประยกุ ตก์ ารแสดงผลท่ี OLED กบั เซนเซอร์ต่าง ๆ 319 กรณีท่ีใช้ Arduino ในการทดลอง ตอ่ วงจรดงั รูป VCC ARDUINO VCC A4(SDA) A5(SCL) VCC VCC GND SCL SDA A3 10k GND รูปท่ี 4.25-2 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ท่ีใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง F GH I J 20 20 25 25 30 30 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J D12 1 D11 D10 D9 D8 5 D7 D6 D5 D4 D3 10 D2 GND RST D0 D1 15 ABCDE VCC GND S CL S DA D13 3V3 ABCDE REF A0 A1 A2 A3 A4 A5 A6 A7 5V RST GND VIN 1 5 10 15 รูปท่ี 4.25-3 การตอ่ ลงบอร์ดทดลอง การทดลองท่ี 1 เขียนโปรแกรมแสดงค่าที่อ่านไดจ้ ากโพเทนธิโอมิเตอร์ ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดคา่ เริม่ ต้นต่าง ๆ อ่านคา่ จาก POT แสดงค่าทอี่ า่ นได้ แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <Wire.h> 2 #include <Adafruit_GFX.h> 3 #include <Adafruit_SSD1306.h> 4 int adc; 5 Adafruit_SSD1306 OLED(4); 6 void setup() 7{ 8 OLED.begin(SSD1306_SWITCHCAPVCC,0x3C); 9}
320 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] 10 void loop() //Text is white ,background is black 11 { 12 adc=analogRead(A3); 13 OLED.clearDisplay(); 14 OLED.setTextColor(WHITE,BLACK); 15 OLED.setCursor(0, 0); 16 OLED.setTextSize(2); 17 OLED.println(\"Analog\"); 18 OLED.print(\"Read\"); 19 OLED.setCursor(50,40); 20 OLED.print(adc,DEC); 21 OLED.display(); 22 delay(200); 23 } ทดลองการทางาน 1. ทดลองดว้ ยวงจรจริง 2. ทดลองเปล่ียนแปลงคา่ โพเทนธิโอมิเตอร์แลว้ สังเกตผล วงจรทใ่ี ช้เซนเซอร์เป็ นเทอร์มสิ เตอร์วดั อณุ ภูมิ D1 VCC Peripheral circuit 1N5819 CPU circuit VCC R1 10k 7,20 ATMEGA328 VCC GND SCL SDA VCC SW1 1 RST AVCC C1 0.1uF A4(SDA) 27 A5(SCL) 28 USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND 3V3 VCC X1 9 XTAL1 A3 26 R4 16MHz 10 XTAL2 10k GND T NTC T1h0ekrmistor C2,C3 8,22 22pF รูปท่ี 4.25-4 วงจรที่ใชไ้ อซี AVR ในการทดลอง กรณีที่ใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป ARDUINO VCC VCC A4(SDA) A5(SCL) VCC R1 VCC GND SCL SDA 10k A3 NTC GND T Thermistor 10k รูปที่ 4.25-5 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง
ใบงานที่ 4.25 การประยกุ ตก์ ารแสดงผลที่ OLED กบั เซนเซอร์ต่าง ๆ 321 การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ที่ใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง F GH I J 20 20 25 25 30 30 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J D12 1 D11 D10 D9 D8 5 D7 D6 D5 D4 D3 10 D2 GND RST D0 D1 15 ABCDE VCC GND S CL S DA D13 3V3 ABCDE REF A0 A1 A2 A3 A4 A5 A6 A7 5V RST GND VIN 1 5 10 15 รูปท่ี 4.25-6 การต่อลงบอร์ดทดลอง การทดลองที่ 2 เขียนโปรแกรมแสดงผลท่ีอ่านคา่ จากเทอร์มิสเตอร์แลว้ คานวนเป็นอุณหภูมิ ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดค่าเริ่มต้นต่าง ๆ อ่านค่าจาก NTC คานวณ แสดงผล แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <Wire.h> 2 #include <Adafruit_GFX.h> 3 #include <Adafruit_SSD1306.h> 4 #define NTC A3 5 double Thermistor(int RawADC) ; 6 Adafruit_SSD1306 OLED(4); 7 void setup() 8{ 9 OLED.begin(SSD1306_SWITCHCAPVCC,0x3C); 10 } 11 void loop() 12 { 13 float Temp=Thermistor(analogRead(NTC)); 14 OLED.clearDisplay(); 15 OLED.setTextColor(WHITE,BLACK); //Text is white ,background is black 16 OLED.setCursor(0, 0); 17 OLED.setTextSize(1); 18 OLED.println(\"Temperature\"); 19 OLED.print(\"From NTC\"); 20 OLED.setCursor(50,40); 21 OLED.print(Temp); 22 OLED.display(); 23 delay(200); 24 } 25 double Thermistor(int RawADC) 26 { 27 double Cal; 28 Cal = log(10000.0/((1024.0/RawADC-1))); 29 Cal = 1/(0.001129148+(0.000234125+(0.0000000876741*Cal*Cal))*Cal ); 30 Cal = Cal-273.15; // Convert Kelvin to Celcius 31 return Cal; 32 }
322 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] ทดลองการทางาน 1. ทดลองดว้ ยวงจรจริง 2. ทดลองเพ่มิ /ลดอุณหภูมิท่ีเทอร์มิสเตอร์สังเกตผล วงจรทใ่ี ช้เซนเซอร์เป็ น DHT22 1DN15819 VCC Peripheral circuit CPU circuit VCC 1R01k 7,20 ATMEGA328 SW1 VCC AVCC 1 RST A4(SDA) 27 C1 A5(SCL) 28 0.1uF USB to UART (TTL Level) R2,R3 VCC GND SCL SDA 1k DTR 3 RXD 2 D1(TXD) TXD D0(RXD) +5V GND 3V3 X1 VCC DHT22 16MHz 9 XTAL1 D8 14 R4 10 XTAL2 4k7 GND DATA C2,C3 8,22 22pF รูปที่ 4.25-7 วงจรท่ีใชไ้ อซี AVR ในการทดลอง กรณีที่ใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป VCC ARDUINO VCC A4(SDA) A5(SCL) VCC GND SCL SDA VCC R1 DHT22 4k7 D8 DATA GND รูปท่ี 4.25-8 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง
ใบงานท่ี 4.25 การประยกุ ตก์ ารแสดงผลท่ี OLED กบั เซนเซอร์ตา่ ง ๆ 323 การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ท่ีใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง F GH I J 20 20 25 25 30 30 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J D12 1 D11 D10 D9 D8 5 D7 D6 D5 D4 D3 10 D2 GND RST D0 D1 15 ABCDE VCC GND S CL S DA D13 3V3 ABCDE REF A0 A1 A2 A3 A4 A5 A6 A7 5V RST GND VIN 1 5 10 15 รูปที่ 4.25-9 การต่อลงบอร์ดทดลอง การทดลองท่ี 3 เขียนโปรแกรมแสดงอุณภูมิและความช้ืนจาก DHT22 ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดค่าเริม่ ต้นต่าง ๆ อ่านคา่ จากโมดลู DHT22 แสดงผล แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <Wire.h> 2 #include <Adafruit_GFX.h> 3 #include <Adafruit_SSD1306.h> 4 #include <DHT.h> 5 #define DHTPIN 8 // pin to connect DHT22 6 #define DHTTYPE DHT22 // Type of use DHT11,DHT21,DHT22 7 DHT dht(DHTPIN, DHTTYPE); 8 Adafruit_SSD1306 OLED(4); 9 void setup() 10 { 11 OLED.begin(SSD1306_SWITCHCAPVCC,0x3C); 12 OLED.setTextColor(WHITE,BLACK); 13 OLED.setTextSize(1); 14 dht.begin(); 15 } 16 void loop() 17 { 18 delay(2000); 19 float h = dht.readHumidity(); 20 float t = dht.readTemperature(); 21 OLED.clearDisplay(); 22 if (isnan(h) || isnan(t)) 23 { 24 OLED.setCursor(0, 30); 25 OLED.setTextSize(1); 26 OLED.println(\"Failed read DHT !\"); 27 OLED.display(); 28 return;
324 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] 29 } 30 OLED.setCursor(10,10); 31 OLED.print(\"Humidity: \"); 32 OLED.print(h); 33 OLED.setCursor(10,30); 34 OLED.print(\"Temperature: \"); 35 OLED.print(t); 36 OLED.display(); 37 } ทดลองการทางาน 1. ทดลองดว้ ยวงจรจริง 2. ทดลองเพ่มิ /ลดอุณหภูมิและความช้ืน สงั เกตผล วงจรทใี่ ช้เซนเซอร์เป็ น Ultasonic D1 VCC Peripheral circuit 1N5819 CPU circuit R1 10k 7,20 ATMEGA328 VCC SW1 1 RST AVCC C1 A4(SDA) 27 VCC 0.1uF A5(SCL) 28 VCC GND SCL SDA USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND 3V3 X1 9 XTAL1 D9 15 VCC HC-SR04 16MHz 10 XTAL2 D8 14 1 VCC 2 Trig GND 3 Echo 4 GND 8,22 C2,C3 22pF รูปท่ี 4.25-10 วงจรที่ใชไ้ อซี AVR ในการทดลอง กรณีที่ใช้ Arduino ในการทดลอง ตอ่ วงจรดงั รูป ARDUINO VCC VCC A4(SDA) A5(SCL) VCC GND SCL SDA D9 VCC HC-SR04 D8 1 VCC 2 Trig GND 3 Echo 4 GND รูปที่ 4.25-11 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง
ใบงานที่ 4.25 การประยกุ ตก์ ารแสดงผลที่ OLED กบั เซนเซอร์ต่าง ๆ 325F GH I J20 20VCC25 2530 3035 3540 4045 4550 50 55 55 60 60 F GH I J D12 1 Trig การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ท่ีใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลองD11Echo D10 GND รูปที่ 4.25-12 การตอ่ ลงบอร์ดทดลองD9 D8 5 การทดลองท่ี 4 เขียนโปรแกรมวดั ระยะดว้ ย Ultrasonic แสดงผลดว้ ยจอ OLEDD7 ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ีD6 D5 STARTD4 D3 10 กา นดคา่ เริ่มต้นต่าง ๆD2 อ่านค่าจากโมดลู UltrasonicGND RST แสดงผล D0 แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม ArduinoD1 15 1 #include <Wire.h>ABCDE VCC GND S CL S DA 2 #include <Adafruit_GFX.h>D13 3 #include <Adafruit_SSD1306.h>3V3 HC-SR04 ABCDE 4 #include <Ultrasonic.h>REF 5 Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)A0 6 Adafruit_SSD1306 OLED(4);A1 7 void setup() A2 8{ A3 9 OLED.begin(SSD1306_SWITCHCAPVCC,0x3C);A4 10 OLED.setTextColor(WHITE,BLACK);A5 11 } A6 12 void loop() A7 13 { 5V 14 float L=ultrasonic.Ranging(CM); RST 15 delay(500); GND 16 OLED.clearDisplay(); VIN 17 OLED.setCursor(0,10); 18 OLED.setTextSize(1);1 19 OLED.println(\"Distance measurable\");5 20 OLED.print(\"From Ultrasonic\"); 10 21 OLED.setCursor(10,40); 15 22 OLED.setTextSize(2); 23 OLED.print(L); 24 OLED.print(\" CM.\"); 25 OLED.display(); 26 } ทดลองการทางาน 1. ทดลองดว้ ยวงจรจริง 2. ทดลองเปล่ียนแปลงรูปแบบการแสดงผล
326 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] วงจรทใ่ี ช้เซนเซอร์เป็ น DS18B20 1DN15819 VCC Peripheral circuit R1 CPU circuit 10k 7,20 ATMEGA328 SW1 VCC 1 RST AVCC C1 VCC 0.1uF VCC GND SCL SDA A4(SDA) 27 A5(SCL) 28 USB to UART (TTL Level) R2,R3 3 1k 2 DTR RXD D1(TXD) TXD D0(RXD) +5V GND R4 3V3 4.7k VCC 3 DS18B20 D8 14 2 VCC DQ X1 GND 16MHz 9 XTAL1 10 XTAL2 1 C2,C3 GND 22pF 8,22 รูปท่ี 4.25-13 วงจรที่ใชไ้ อซี AVR ในการทดลอง กรณีที่ใช้ Arduino ในการทดลอง ต่อวงจรดงั รูป VCC ARDUINO VCC A4(SDA) A5(SCL) R1 VCC VCC GND SCL SDA 4.7k 3 DS18B20 D8 2 VCC GND DQ GND 1 รูปที่ 4.25-14 วงจรที่ใชบ้ อร์ด Arduino ในการทดลอง การตอ่ วงจรไมโครคอนโทรลเลอร์ Arduino ท่ีใชบ้ อร์ดโมดูล Arduino สาเร็จรูปลงบอร์ดทดลอง F GH I J 20 20 25 25 30 30 35 35 40 40 45 45 50 50 55 55 60 60 F GH I J D12 1 D11 D10 D9 D8 5 D7 D6 D5 D4 D3 10 D2 GND RST D0 D1 15 ABCDE VCC GND S CL S DA D13 3V3 D S1 8 REF B 20 A0 A1 ABCDE A2 A3 A4 A5 A6 A7 5V RST GND VIN 1 5 10 15 รูปที่ 4.25-15 การต่อลงบอร์ดทดลอง
ใบงานที่ 4.25 การประยกุ ตก์ ารแสดงผลที่ OLED กบั เซนเซอร์ต่าง ๆ 327 การทดลองท่ี 5 เขียนโปรแกรมแสดงค่าอุณหภูมิท่ีวดั จากไอซี DS18B20 โดยแสดงผลที่จอ OLED ผงั งาน จากโจทยส์ ามารถเขียนเป็นผงั งานไดด้ งั น้ี START กา นดค่าเริม่ ต้นต่าง ๆ อ่านคา่ จากไอซี แสดงค่าทอ่ี ่านได้ แปลงผงั งานเป็ นโปรแกรม จากผงั งานสามารถเขียนเป็นโคด้ โปรแกรมควบคุม Arduino 1 #include <Wire.h> 2 #include <Adafruit_GFX.h> 3 #include <Adafruit_SSD1306.h> 4 #include <OneWire.h> 5 #include <DallasTemperature.h> 6 OneWire ds(8); //sensor on pin D8 7 DallasTemperature sensor(&ds); 8 Adafruit_SSD1306 OLED(4); 9 void setup() 10 { 11 OLED.begin(SSD1306_SWITCHCAPVCC,0x3C); 12 OLED.setTextColor(WHITE,BLACK); 13 sensor.begin(); 14 } 15 void loop() 16 { 17 sensor.requestTemperatures(); 18 float temp = sensor.getTempCByIndex(0); //read temp from sensor 19 delay(500); 20 OLED.clearDisplay(); 21 OLED.setCursor(0,10); 22 OLED.setTextSize(1); 23 OLED.println(\"Temperature\"); 24 OLED.print(\"From DS18B20\"); 25 OLED.setCursor(10,40); 26 OLED.setTextSize(2); 27 OLED.print(temp); 28 OLED.print(\" 'C\"); 29 OLED.display(); 30 } ทดลองการทางาน 1. ทดลองดว้ ยวงจรจริง 2. ทดลองใหอ้ ุณหภูมิท่ีตวั ไอซีเปล่ียนแปลงแลว้ สังเกตผล 7. สรุปผลการปฏบิ ตั งิ าน
328 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] 8. งานทมี่ อบ มาย 1. เขียนโปรแกรมประยกุ ตใ์ ชง้ านท่ีใชเ้ ซนเซอร์วดั อุณหภูมิ DS18B20 และควบคุมการทางาน ของ LED ตามคา่ ของอุณหภูมิที่กาหนดโดยแสดงผลการทางานที่จอ OLED ARDUINO VCC VCC A4(SDA) A5(SCL) R1-R2 LED1-LED2 220 VCC GND SCL SDA D2 D3 R3 VCC 4.7k 3 DS18B20 D8 2 VCC GND DQ GND 1 รูปที่ 4.25-16 วงจรท่ีใชท้ ดลอง 2. เขียนโปรแกรมรับค่าจากพอร์ตแอนาลอกโดยใหแ้ สดงผลที่จอ OLED เป็นโวลตม์ ิเตอร์แบบ เขม็ โดยมีคา่ แรงดนั เตม็ หนา้ ปัด (Full scale) ที่ 30V ARDUINO VCC VCC A4(SDA) A5(SCL) VCC VCC GND SCL SDA A3 10k GND รูปที่ 4.25-17 วงจรท่ีใชท้ ดลอง
เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ 329 บรรณานุกรม - Brian Evans Beginning Arduino Programming - Jonathan Oxer,Hugh Blemings Practical Arduino Cool Projects for Open Source Hardware - Michael Margolis Arduino Cookbook : O’Reilly Media, Inc - Julien Bayle C Programming for Arduino - Alan G. Smith Introduction to Arduino - Maik Schmidt Arduino A Quick-Start Guide
330 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] ภาคผนวก ภาพตวั อยา่ งวงจรท่ีใชท้ ดลองที่ต่อลงโปรโตบ้ อร์ด ภาพตวั อยา่ งวงจรท่ีใชท้ ดลองท่ีตอ่ แผงทดลองที่สร้างแผน่ วงจรพมิ พด์ ว้ ยตวั เอง ภาพตวั อยา่ งวงจรที่ใชท้ ดลองที่ตอ่ แผงทดลองที่สร้างแผน่ วงจรพมิ พโ์ ดยสง่ั โรงงานผลิต ภาพตวั อยา่ งวงจรที่ใชท้ ดลองที่ต่อลงแผน่ วงจรพิมพเ์ อนกประสงค์
เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ 331 ภาพตวั อยา่ งวงจรที่ใชท้ ดลองท่ีต่อลงโปรโตบ้ อร์ด ภาพตวั อยา่ งวงจรที่ใชท้ ดลองที่ตอ่ แผงทดลองท่ีสร้างแผน่ วงจรพิมพด์ ว้ ยตวั เอง ภาพตวั อยา่ งวงจรท่ีใชท้ ดลองที่ต่อแผงทดลองท่ีสร้างแผน่ วงจรพิมพโ์ ดยสัง่ โรงงานผลิต
332 เรียนรู้และลองเลน่ Arduino เบ้ืองตน้ [ครูประภาส สุวรรณเพชร] ภาพตวั อยา่ งวงจรท่ีใชท้ ดลองท่ีตอ่ ลงแผน่ วงจรพมิ พเ์ อนกประสงค์ ตน้ แบบลายวงจรพิมพแ์ ละรายละเอียดการสร้างตลอดจนรายการอุปกรณ์ ผทู้ ่ีสนใจสามารถนาไป สร้างไดด้ ว้ ยตนเองโดยเขา้ ไปท่ีเวปไซตข์ องครูประภาส www.praphas.com เขา้ เมนู “งานท่ีมอบหมาย” แลว้ คลิกไปที่ “ไมโครคอนโทรลเลอร์ (Arduino)”
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338