Project พัดลมปรับความเร็วตามอุณหภูมิ + ควบคุมผ่าน Android Phone
แนะนำความสามารถของพัดลมตัวนี้กันก่อนนะครับ สามารถทำงานได้ 3 โหมด คือ 1. Manual 2. Auto และ 3. Manual โดย Android Phone
มาสคอตสินค้าของ Hada Labo
เป็นผลิตภัณฑ์ดูแลผิวจากประเทศญี่ปุ่น ซึ่งทางทีมงานได้เข้าไปทำระบบไฟฟ้าและควบคุมเจ้าตัวมาสคอตดังรูปด้านล่าง โดยทำเป็นเกม ให้ผู้เล่นแข่งกันตบแก้ม ใครตบเก่งก็เป็นผู้ชนะไปนะครับ
วันศุกร์ที่ 14 พฤศจิกายน พ.ศ. 2557
วันอาทิตย์ที่ 26 ตุลาคม พ.ศ. 2557
10:25
Pornprasert
Project พัดลมปรับความเร็วตามอุณหภูมิ + ควบคุมผ่าน Android
แนะนำความสามารถของพัดลมตัวนี้กันก่อนนะครับ
สามารถทำงานได้ 3 โหมด คือ 1. Manual 2. Auto และ 3. Manual โดย Android Phone
ในโหมด Manual จะสามารถกดที่ปุ่มได้ปกติ เบอร์ 1 ความเร็วระดับ 1 ,เบอร์ 2 ความเร็วระดับ 2 และ เบอร์ 3 ความเร็วระดับ 3 เมื่อมีการกดเบอร์ 1 หรือ 2 หรือ 3 จะเข้าสู่โหมด Manual ทันที
ในโหมด Auto พัดลมจะปรับความเร็วตามอุณหภูมิ
ความเร็วเบอร์ 0 อุหณภูมิน้อยกว่า 25 องศา
ความเร็วเบอร์ 1 อุหณภูมิช่วง 25 - 28 องศา
ความเร็วเบอร์ 2 อุณหภูมิช่วง 29 - 31 องศา
ความเร็วเบอร์ 3 อุณหภูมิมากว่า 31 องศา
ในโหมด Manual ผ่าน Android Phone จะเชื่อมต่อกับพัดลมผ่านระบบ bluetooth hc-06 โดยเราได้เขียน application สำหรับควบคุมพัดลมตัวนี้ขึ้นมา จะสามารถดูอุณหภูมิและความเร็วมอเตอร์ผ่านตัว app ได้เลยพร้อมทั้งสามารถสั่งเปลี่ยนความเร็วผ่าน app android ได้เลย
อุปกรณ์ที่ใช้
1. บอร์ด arudino uno r3 สั่งซื้อ คลิก
2. bluetooth hc-06 สั่งซื้อ คลิก
3. บอร์ด relay 4 channel สั่งซื้อ คลิก
4. LCD + I2C สั่งซื้อ คลิก
5. DHT11 สั่งซื้อ คลิก
6. พัดลมขนาด 12 นิ้ว
ชุด DIY พัดลมอัจฉริยะ ฟรีโปรแกรมอ่าดูโน่ คู่มือ แอฟควบคุม คลิก ราคา 1,200 บาท
รายละเอียดอุปกรณ์ที่ใช้ |
ตัวอย่างใช้งานโหมด Manual
กดเบอร์ 1 ทีจอจะแสดง Manual Mode S=1 |
ตัวอย่างใช้งานในโหมด Auto
อุณหภูมิอยู่ที่ 30 องศา เฉาะอยู่ในเงื่อนไขเบอร์ 2 ใน Auto Mode |
ตัวอย่างการทำงานในโหมด Manual ผ่าน Android Phone
Manaul Speed = 2 อุณหภูมิ = 29 องศา |
Manual Speed 3 อุณหภูมิ = 29 องศา |
Manual ปิดพัดลม อุณหภูมิ = 29 องศา |
08:38
Pornprasert
วันนี้จะมาสอนใช้งาน Arduino Shield Ethernet W5100 แสดงค่าอุณหภูมิและความชื้น ภายในบ้าน
โดยผมใช้ sensor dht11 เป็นตัวอ่านค่าอุณหภูมิและความชื้น
มาดูวงจรแบบง่ายกันเลยครับ สำหรับการต่อ dht11
โดยผมใช้ sensor dht11 เป็นตัวอ่านค่าอุณหภูมิและความชื้น
มาดูวงจรแบบง่ายกันเลยครับ สำหรับการต่อ dht11
vcc ต่อ +5v
data ต่อ pin2
n/a ไม่ต้องต่อครับ
gnd ต่อ 0v
จากนั้นเสียบบอร์ด Arduino Shield Ethernet W5100 พร้อมสาย Lan ดังรูปด้านล่าง
data ต่อ pin2
n/a ไม่ต้องต่อครับ
gnd ต่อ 0v
จากนั้นเสียบบอร์ด Arduino Shield Ethernet W5100 พร้อมสาย Lan ดังรูปด้านล่าง
โหลด Libary DHT จาก ลิ้งค์นี้
https://dl.dropboxusercontent.com/u/13758529/elec2you/DHT.rar นำไปวางไว้ใน Folder libary ของ Arduino ที่ใช้เขียนโปรแกรม
https://dl.dropboxusercontent.com/u/13758529/elec2you/DHT.rar นำไปวางไว้ใน Folder libary ของ Arduino ที่ใช้เขียนโปรแกรม
จากนั้นนำโค้ดนี้ upload ลง arduio เพื่อหา IP Address ก่อน
#include "SPI.h"
#include "Ethernet.h"
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte server[] = { 173,194,126,119 }; // www.google.co.th
EthernetClient client;
void setup()
{
Serial.begin(9600);
if(Ethernet.begin(mac) == 0) { // start ethernet using mac & DHCP
Serial.println("Failed to configure Ethernet using DHCP");
while(true) // no point in carrying on, so stay in endless loop:
;
}
delay(1000); // give the Ethernet shield a second to initialize
Serial.print("This IP address: ");
IPAddress myIPAddress = Ethernet.localIP();
Serial.print(myIPAddress);
if(client.connect(server, 80)>0) {
Serial.println(" connected");
client.println("GET /search?q=arduino HTTP/1.0");
client.println();
} else {
Serial.println("connection failed");
}
}
void loop()
{
if (client.available()) {
char c = client.read();
// uncomment the next line to show all the received characters
// Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
for(;;)
;
}
}
เมื่อได้ IP ดังรูป
จากนั้นแก้ IP Address ใน Code ด้านล่างให้ตรงกับที่เรา FIND IP มา*/ #includeupload ลง บอร์ด arduion uno r3#include #include "DHT.h" #define DHTPIN 2 // what pin we're connected to #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,100,146); // Initialize the Ethernet server library // with the IP address and port you want to use // (port 80 is default for HTTP): EthernetServer server(80); void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } //IPAddress myIPAddress = Ethernet.localIP(); // start the Ethernet connection and the server: Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); dht.begin(); } void loop() { // listen for incoming clients EthernetClient client = server.available(); if (client) { Serial.println("new client"); // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); // if you've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); // the connection will be closed after completion of the response client.println("Refresh: 5"); // refresh the page automatically every 5 sec client.println(); client.println(""); client.println(""); client.print("WWW.ELEC2YOU.COM"); client.println(" "); client.print("Humidity: "); client.print(dht.readHumidity()); client.print(" Temperature: "); client.print(dht.readTemperature()); client.println(" "); client.println(""); break; } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); Serial.println("client disonnected"); } }
วันพุธที่ 24 กันยายน พ.ศ. 2557
21:13
Pornprasert
เริ่มแรกขออธิบายการทำงานของ dht11 ก่อนเลยนะครับ
dht11 เป็นเซ็นเซอร์ที่วัดค่าอุณหภูมืและค่าความชื้นที่เป็นแบบ digital สำเร็จเลย
มันมีความน่าเชื่อถือและสเถียรภาพค่อนข้างมาก มีทั้งหมด 4 pin ดังรูปด้านล่าง
สเปกทางเทคนิค
dht11 เป็นเซ็นเซอร์ที่วัดค่าอุณหภูมืและค่าความชื้นที่เป็นแบบ digital สำเร็จเลย
มันมีความน่าเชื่อถือและสเถียรภาพค่อนข้างมาก มีทั้งหมด 4 pin ดังรูปด้านล่าง
สเปกทางเทคนิค
แบบละเอียด
การ wiring ดังรูปด้านล่าง
ขั้นตอนการสื่อสารระหว่าง MCU และ DHT11
คุณสมบัติทางไฟฟ้า
มาทดลองปฎิบัติกัน
อุปกรณ์ที่่ใช้ มี
บอร์ด Arduino Uno R3 สั่งซื้อ
Dht11 สั่งซื้อ
wiring ตามรูปด้านล่าง แต่ผมไม่ได้ต่อตัว R
เสียบสาย usb ทำการ Upload โปรแกรมตัวอย่าง
ลืมไปให้ไป โหลด library จาก website https://github.com/adafruit/DHT-sensor-library/archive/master.zip
ติดตั้ง library เสร็จทำการเปิดโปรแกรมตัวอย่างที่ชื่อว่า
DHTtester แก้ข้อมูลตามกรอบสีแดงรูปด้านล่าง จากนั้น upload โปรแกรม DHTtester ลงบอร์ด Arduino Uno R3
ใช้ Serial Port Monitor จะแสดงดังรูปด้านล่าง
วันเสาร์ที่ 13 กันยายน พ.ศ. 2557
09:42
Pornprasert
การใช้งาน HC-06 Bluetooth
1. เริ่มที่ Wiring Diagram กันก่อนเลย
- Connect the HC-06 Ground (GND) pin to ground (duh!).
- Connect the HC-06 VCC pin to 5v.
- Connect the HC-06 TX/TXD pin to Arduino digital pin 4.
- Connect the HC-06 RX/RXD pin to Arduino digital pin 2.
RX pin ถูก design ให้ใช้แรงดัน 3.33 v เฉพาะนั้นเราต้องเอา R มาทำเป็น Votage Divider
2. ติดตั้ง library สำหรับ hc-06 bluetooth ดาวโหลดได้ที่
เมื่อติดตั้ง library เรียบร้อยแล้วลองทดลอง program
ไปที่
ทำการ upload ลง arduino
3. เมื่อทุกอย่าง Ok เปิด Serial Monitor
พิมพ์ AT แล้วกด ENTER จะได้
พิมพ์
AT+VERSION จะได้ OKlinvorV1.8
AT+BAUD4 จะได้ OK9600
AT+BAUD4 จะได้ OK9600
วันอังคารที่ 19 สิงหาคม พ.ศ. 2557
08:49
Pornprasert
วันนี้เราจะมาสอนใช้ vb6 ติดต่อ PLC Mitsubishi กันนะครับ
1. ต้องมีโปรแกรม vb6
2. MX Component V.3
3. PLC Mitsubishi
4. สายลิ้งคอมพิวเตอร์กับPLC Mitsubishi
เมื่อติดตั้งโปรแกรมและเตรียมอุปกรณ์พร้อมแล้วก็เริ่มเลยนะครับ ทำการตรวจสอบว่าคอมพิวเตอร์ของเราติดต่อ PLC Mitsubishi ได้เหรอไว้ โดยใช้ Communication Setup Utility ทดสอบกัน
vb6
ActFXCPU1.ActPortNumber ตั้งค่า port number
ActFXCPU1.Open เปิด port serial
ActFXCPU1.GetDevice(szDeviceName, lData) อ่านค่าจาก PLC
szDeviceName ชื่อ device เช่น m100 ,d0 ,y0
lData ข้อมูลได้อ่านมาได้
CLng(szDeviceValue) ข้อมูลที่จะส่งไปให้ PLC
1. ต้องมีโปรแกรม vb6
2. MX Component V.3
3. PLC Mitsubishi
4. สายลิ้งคอมพิวเตอร์กับPLC Mitsubishi
เมื่อติดตั้งโปรแกรมและเตรียมอุปกรณ์พร้อมแล้วก็เริ่มเลยนะครับ ทำการตรวจสอบว่าคอมพิวเตอร์ของเราติดต่อ PLC Mitsubishi ได้เหรอไว้ โดยใช้ Communication Setup Utility ทดสอบกัน
Communication Setup Utility
vb6
ActFXCPU1.Open เปิด port serial
ActFXCPU1.GetDevice(szDeviceName, lData) อ่านค่าจาก PLC
szDeviceName ชื่อ device เช่น m100 ,d0 ,y0
lData ข้อมูลได้อ่านมาได้
ActFXCPU1.SetDevice(szDeviceName, CLng(szDeviceValue))
szDeviceName ชื่อ device เช่น m100 ,d0 ,y0CLng(szDeviceValue) ข้อมูลที่จะส่งไปให้ PLC
k.ต้อม 0804224466
www.elec2you.com Elec2you จำหน่ายอุปกรณ์อิเล็กทรอนิกส์ เซ็นเซอร์ ไมโครคอนโทรลเลอร์ พีแอลซี เป็นต้น ราคาถูกที่สุด
วันศุกร์ที่ 8 สิงหาคม พ.ศ. 2557
วันพุธที่ 4 มิถุนายน พ.ศ. 2557
20:09
Unknown
SHT10 digital humidity and
temperature sensor is the low cost version of the reflow solderable humidity
sensor series. The accuracies have been opened to a level that guarantees a
very competitive price. The capacitive humidity sensor is available up to high
volumes and as every other sensor type of the SHTxx family, it is fully
calibrated and provides a digital output.
Features:
·
Interface Type: Serial
(I2C non standard)
·
Humidity
Ranger:0-100%RH
·
Tempereature ranger:
-40-128.8 degree Celsius
·
Humidity
accuracy:±4.5%RH
·
Temperature
accuracy:±0.5 degree Celsius (25 degree Celsius)
·
Size: 32x17mm
·
Weight:5 gram
Wiring Diagram
Wiring Diagram |
โค้ด
/**
* ReadSHT1xValues
*
* Read temperature and humidity values from an SHT1x-series (SHT10,
* SHT11, SHT15) sensor.
*
* Copyright 2009 Jonathan Oxer <jon@oxer.com.au>
* www.practicalarduino.com
*/
#include <SHT1x.h>
// Specify data and clock connections and instantiate SHT1x object
#define dataPin 10
#define clockPin 11
SHT1x sht1x(dataPin, clockPin);
void setup()
{
Serial.begin(38400); // Open serial connection to report values to host
Serial.println("Starting up");
}
void loop()
{
float temp_c;
float temp_f;
float humidity;
// Read values from the sensor
temp_c = sht1x.readTemperatureC();
temp_f = sht1x.readTemperatureF();
humidity = sht1x.readHumidity();
// Print the values to the serial port
Serial.print("Temperature: ");
Serial.print(temp_c, DEC);
Serial.print("C / ");
Serial.print(temp_f, DEC);
Serial.print("F. Humidity: ");
Serial.print(humidity);
Serial.println("%");
delay(2000);
}
วันจันทร์ที่ 26 พฤษภาคม พ.ศ. 2557
14:19
Unknown
Ladder
Diagram (LD)
เป็นภาษาที่เขียนแสดงอยู่ในรูปของกราฟิค
ซึ่งมีรากฐานมาจากวงจรรีเลยและวงจรไฟฟ้า ซึ่ง แลดเดอร์ ไดอะแกรม จะประกอบด้วย ราง (Rail) ทั้งซ้ายและขวา ของไดอะแกรม
เพื่อใช้สำหรับเชื่อมต่ออุปกรณ์ที่เป็นสวิตช์หน้าสัมผัส เพื่อเป็นทางผ่านของกระแส
และมีขดลวด หรือ คอยล์ เป็นเอ้าท์พุท
Ladder Diagram(LD) |
วันพุธที่ 14 พฤษภาคม พ.ศ. 2557
18:59
Unknown
การทำงานของ PLC ทำงานโดยการสแกน (SCAN) โปรแกรมอย่างต่อเนื่อง การ SCAN 1 รอบจะประกอบด้วยขั้นตอนที่สำคัญ 3 ขั้นตอน (อาจจะมีมากว่า 3 ข้ันตอนก็ได้) ดังภาพ
ขั้นตอนที่ 1 ตรวจสอบสถานะของอินพุท
ขั้นแรก PLC จะตรวจสอบอินพุตแต่ละอินพุตว่ามีสถานะ ON หรือ OFF โดยจะทำการตรวจสอบดูว่า Sensor ที่ต่ออยู่กับอินพุตตัวแรกว่ามีสถานะเป็นอย่างไรแล้วจึงตรวสอบที่อินพุตตัวที่ 2 และ 3 ไปเรื่อยๆ จากนั้นจะทำการบันทึกข้อมูลที่ได้ลงในหน่วยความจำเพื่อจะใช้ในขั้นตอนต่อไป
ขั้นตอนที่ 2 การประมวลผลของโปรแกรม
ขั้นตอนนี้ PLC จะทำการประมวลผลตามโปรแกรมที่ได้เขียนขึ้นโดยจะทำเพียงคำสั่งละครั้ง ตัวอย่างเช่น ตัวโปรแกรมอาจจะบอกว่า "ถ้าอินพุตแรกมีสถานะเป็น ON จากนั้นจะ ทำให้เอาต์พุตแรกมีสถานะ ON" เนื่องจากเรารู้มาแล้วว่าอินพุตมีสถานะ ON หรือ OFF จากขั้นตอนที่แล้ว ดังนั้นจึงทำให้ PLC สามารถตัดสินใจได้ว่าเอาต์พุตแรกควรจะมีสถานะ เป็นอย่างไร จากนั้นก็จะเก็บผลที่ได้จากการประมวลผลไว้ในหน่วยความจำเพื่อใช้ในขั้นตอนต่อไป
ขั้นตอนที่ 3 ปรับปรุงสถานะของเอาต์พุต
ขั้นตอนสุดท้ายคือ PLC จะทำการปรับปรุงสถานะของเอาต์พุด โดยในการปรับปรุงค่าสถานะของเอาต์พุตนี้จะขึ้นอยู่สถานะ ของอินพุตที่ได้มาจากขั้นตอนแรกและผลจากการประมวลผลตามโปรแกรมในช่วงขั้นตอนที่สอง
หลังจากเสร็จขั้นตอนที่สามแล้ว PLC จะกลับไปที่ขั้นตอนที่ 1 และทำซ้ำไปเรื่อยๆอย่างต่อเนื่อง ซึ่งนอกจากเหนือจากขั้นตอนทั้งสามนี้แล้ว PLC อาจจะใช้เวลาในการติดต่อสื่อสารกับอุปกรณ์อื่นๆ หรือตรวจสอบสถานการณ์ทำงานต่างๆ ซึ่งไม่มีนัยยะสำคัญมากนัก
ดังนั้น 1 scan time จะหมายถึงเวลาที่ใช้ไปในการทำงานตามขั้นตอนหลักทั้ง 3 ที่ได้กล่าวมา
ขั้นตอนที่ 1 ตรวจสอบสถานะของอินพุท
ขั้นแรก PLC จะตรวจสอบอินพุตแต่ละอินพุตว่ามีสถานะ ON หรือ OFF โดยจะทำการตรวจสอบดูว่า Sensor ที่ต่ออยู่กับอินพุตตัวแรกว่ามีสถานะเป็นอย่างไรแล้วจึงตรวสอบที่อินพุตตัวที่ 2 และ 3 ไปเรื่อยๆ จากนั้นจะทำการบันทึกข้อมูลที่ได้ลงในหน่วยความจำเพื่อจะใช้ในขั้นตอนต่อไป
ขั้นตอนที่ 2 การประมวลผลของโปรแกรม
ขั้นตอนนี้ PLC จะทำการประมวลผลตามโปรแกรมที่ได้เขียนขึ้นโดยจะทำเพียงคำสั่งละครั้ง ตัวอย่างเช่น ตัวโปรแกรมอาจจะบอกว่า "ถ้าอินพุตแรกมีสถานะเป็น ON จากนั้นจะ ทำให้เอาต์พุตแรกมีสถานะ ON" เนื่องจากเรารู้มาแล้วว่าอินพุตมีสถานะ ON หรือ OFF จากขั้นตอนที่แล้ว ดังนั้นจึงทำให้ PLC สามารถตัดสินใจได้ว่าเอาต์พุตแรกควรจะมีสถานะ เป็นอย่างไร จากนั้นก็จะเก็บผลที่ได้จากการประมวลผลไว้ในหน่วยความจำเพื่อใช้ในขั้นตอนต่อไป
ขั้นตอนที่ 3 ปรับปรุงสถานะของเอาต์พุต
ขั้นตอนสุดท้ายคือ PLC จะทำการปรับปรุงสถานะของเอาต์พุด โดยในการปรับปรุงค่าสถานะของเอาต์พุตนี้จะขึ้นอยู่สถานะ ของอินพุตที่ได้มาจากขั้นตอนแรกและผลจากการประมวลผลตามโปรแกรมในช่วงขั้นตอนที่สอง
หลังจากเสร็จขั้นตอนที่สามแล้ว PLC จะกลับไปที่ขั้นตอนที่ 1 และทำซ้ำไปเรื่อยๆอย่างต่อเนื่อง ซึ่งนอกจากเหนือจากขั้นตอนทั้งสามนี้แล้ว PLC อาจจะใช้เวลาในการติดต่อสื่อสารกับอุปกรณ์อื่นๆ หรือตรวจสอบสถานการณ์ทำงานต่างๆ ซึ่งไม่มีนัยยะสำคัญมากนัก
ดังนั้น 1 scan time จะหมายถึงเวลาที่ใช้ไปในการทำงานตามขั้นตอนหลักทั้ง 3 ที่ได้กล่าวมา
วันอังคารที่ 13 พฤษภาคม พ.ศ. 2557
13:32
Unknown
หลักการทำงาน
Wiring Digaram
Arduino Code
Wiring Digaram
Arduino Code
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
int pos = 0; // variable to store the servo position
int motor = 0;
void setup()
{
Serial.begin(9600); // initialize serial:
myservo.attach(9); // attaches the servo on pin 9 to the servo object
Serial.print("Arduino control Servo Motor Connected OK");
Serial.print('\n');
}
void loop()
{
// if there's any serial available, read it:
while (Serial.available() > 0) {
// look for the next valid integer in the incoming serial stream:
motor = Serial.parseInt();
// do it again:
pos = Serial.parseInt();
// look for the newline. That's the end of your sentence:
if (Serial.read() == '\n') {
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
// print the three numbers in one string as hexadecimal:
Serial.print("Data Response : ");
Serial.print(motor, DEC);
Serial.print(pos, DEC);
}
}
}
//for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
//{ // in steps of 1 degree
// myservo.write(pos); // tell servo to go to position in variable 'pos'
// delay(15); // waits 15ms for the servo to reach the position
//}
//for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
//{
// myservo.write(pos); // tell servo to go to position in variable 'pos'
// delay(15); // waits 15ms for the servo to reach the position
//}
//val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
//val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
//myservo.write(val); // sets the servo position according to the scaled value
//delay(15);
App Andorid
ขอบคุณ http://microcontrollerkits.blogspot.com/2014/01/arduino-usb-control-servo-motor.html
วันศุกร์ที่ 18 เมษายน พ.ศ. 2557
08:24
Unknown
รับเขียนโปรแกรม arduino ทุกรุ่น ปรึกษาได้
080-422-4466
automation999.engineer@gmail.com
http://www.elec2you.com/
Elec2you จำหน่ายอุปกรณ์อิเล็กทรอนิกส์ เซ็นเซอร์ ไมโครคอนโทรลเลอร์ พีแอลซี เป็นต้น ราคาถูกที่สุด
http://www.elec2you.com/
Elec2you จำหน่ายอุปกรณ์อิเล็กทรอนิกส์ เซ็นเซอร์ ไมโครคอนโทรลเลอร์ พีแอลซี เป็นต้น ราคาถูกที่สุด
สมัครสมาชิก:
บทความ
(
Atom
)