Tuesday, September 22, 2015

พันมอเตอร์พัดลม

เอาพัดลมบ้านแม่ภรรยามาพันใหม่ เป็นพัดลมโคจร ติดเพดาน ยี่ห้อมิตซูบิชิ  

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

ที่ตัวมอเตอร์พัดลมจะมีสาย 3 เส้น เส้นแรกเป็นเส้นร่วม เส้นที่ 2 เป็นไฟเลี่ยงมอเตอร์พัดลม เส้นที่ 3 เป็นไฟเลี้ยงมอเตอร์ส่าย  แต่ช่างที่เดินสายไว้เดินสายไปแค่ 2 สาย โดยรวบสายที่ 2 กับ 3 เข้าด้วยกัน ทำให้พัดลมส่ายตลอดเวลา และแรงดันที่จ่ายให้มอเตอร์ส่ายไม่คงที่เพราะแปรตามความ speed พัดลม แต่ไม่น่าจะมีปัญหาอะไร

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

ความเร็วสูงสุด ต่อ 220 โวลต์ตรงๆ 
ความเร็ว ต่ำลงมา ต่อไฟผ่าน C เพื่อลดแรงดัน


ความเสียหาย: มีขดลวดใหม้

มอเตอร์ใช้แบริ่ง มีเสียง แต่ยังหมุนลื่นดี

ขนาดมอเตอร์พัดลม

  • แกนหนา 25 mm
  • รูกลางน่าจะประมาณ 42-43 mm
  • มี 16 slot
  • พันลวดไว้ speed เดียว
  • ใช้ C 1.5uF

ขดรัน 650 รอบ พันก้น slot
ขดสตาร์ท 740 รอบ ทับทีหลัง แต่คนละร่อง
วัดขนาดลวดเก่าได้ประมาณ 0.2 mm เทียบเป็นเบอร์ลวด 35 คนขายลวดว่า เล็กกว่าเดิมนิดนึง
จริงๆ วัดได้ 0.2 mm มันจะเทียบเป็นเบอร์ ประมาณ 32 แต่ช่างบอกคิดอย่างนั้นไม่ได้ มันมีความหนาของฉนวนด้วย ต้องใช้ความกว้างของปากไมโครมิเตอร์หรือเวอร์เนียร์เทียบเอา  ถ้าจะวัดขนาดจริงแล้วเปิดตาราง ต้องขูดฉนวนออก


ปัญหาที่พบ

  • ทำแบบพันลวดยาก
  • ถอดลวดออกจากแบบยาก
  • ที่วัดรอบไม่แม่น ขดสตาร์ตขดนึงพันเกินไป 100 รอบ ยัดเกือบไม่เข้า
  • สายที่ต่อระหว่างขดเหลือยาวเกิน
  • ยัดลวดลงสล๊อตยากเหลือเกิน ใช้เวลามาก
  • เชื่อกผูกขดลวด ชอบคลาย ใช้ไหมถักของภรรยา
  • วานิชเหม็น เหมื่อนไม่แห้งสนิท
  • โอกาสลงลวดผิดทิศสูง

รูปมอเตอร์ ก่อนซ่อม











รูปมอเตอร์หลังพันแล้ว








Wednesday, June 17, 2015

DIY แปลงเครื่องตัดหญ้าแบบสะพายเป็นแบบเข็น

แม้พื้นที่รอบๆ บ้านจะไม่กว้างมาก แต่เวลาที่ใช้ในการตัดหญ้าก็แต่ละคร้ังก็ไม่ต่ำกว่า 1-2 ชั่วโมง กว่าจะตัดเสร็จก็เมื่อย+มึน  เมื่อยเพราะต้องสะพายเครื่องตัดหญ้า มึนเพราะต้องดมกลิ่นควันจากท่อไอเสียของเครื่อง  ตอนตัดก็ต้องคอยระวังเศษหินกระเด็นใส่

เครื่องตัดหญ้าแบบสะพายบ่าที่ใช้เป็นยี่ห้อ Kawasaki มือ 2 ที่ซื้อมาเมื่อ 3 ปีก่อน เครื่องมันก็พอใช้ได้ สตาร์ทติดง่าย (หลังจากที่เคาะเขี้ยวหัวเทียนให้ชิดนิดนึง ทำให้สตาร์ทติดง่ายและไม่ดับตอนเครื่องร้อน) ปัญหาหลักคือเร่งไม่ค่อยขึ้น อาจเป็นเพราะคลัทช์ลื่น เครื่องไม่มีแรง หรืออัตราทดเกียร์ที่ใบมีดไม่เหมาะสมก็ไม่ทราบ กว่าจะเร่งให้ได้ถึงรอบต้องยกใบมีขึ้นก่อน เร่งเครื่องแล้วรอสักพักพอรอบถึงจึงจะตัดได้ และพอเจอหญ้าหนาๆ ก็จะหมดแรงเอาง่ายๆ

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

เริ่มต้นก็คิดว่าจะทำรถเข็นขึ้นเอง แต่จำได้ว่าเคยซื้อรถเข็น 3 ล้อมาคันนึงจากแมคโคร ไม่ค่อยได้ใช้งาน จึงตัดสินใจว่าใช้รถเข็น 3 ล้อนี่แหละ

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

สุดท้ายก็ตัดสินใจตัดเพลาเครื่องตัดหญ้าให้สั้นลงให้พอดีกับขนาดรถเข็น ต้องตัดทั้งปลอกนอกของเพลาที่เป็นท่ออลูมิเนียม และต้องตัดเพลาในซึ่งเป็นเหล็กเส้นกลม จากนั้นเจียร์ปลายเพลาให้เป็น 4 เหลี่ยมเพื่อให้สอดเข้าไปในชุดเกียร์ได้ (โชคดีที่รูเป็น 4 เหลี่ยม จึงทำเองได้ง่ายๆ แต่เห็นบางรุ่นรูเป็นแฉก คงทำเองได้ยาก)

การตัดเพลาเครื่องตัดหญ้าให้สั้นลงก็ต้องทำใจว่าหลังจากนี้คงนำมาใช้งานแบบเดิมไม่ได้แล้ว แต่ก็ไม่ได้เสียดายเพราะเครื่องมันเก่าแล้ว และไม่ค่อยดีแล้ว และมันใช้งานได้ดีตอนเร่งเครื่องค้างไว้ที่รอบสูงๆ เท่านั้น ซึ่งไม่เหมาะกับการเล็มหญ้าอยู่แล้ว

ส่วนท่อไอเสีย ได้ต่อท่อยาว ออกไปด้านข้าง เพื่อไม่ให้ไอเสียพุ่งเข้าหน้าตรงๆ

ส่วนของคันเร่งก็ย้ายมายึดกับด้ามจับของรถเข็น ทำให้ใช้งานได้สะดวก

ผลที่ได้ดูจากวิดีโอครับ




ผลจากการใช้งานจริงพบว่า วิธีนี้ตัดหญ้าได้เร็วกว่าวิธีเดิมมาก และได้หญ้าที่สั้นกว่าเดิม เพราะสามารถลดใบมีให้ขนานกับพื้นในระดับที่ใกล้พื้นมากๆ ได้  วิดีโอไม่ที่เห็นถ่ายทำตอนยังไม่ได้ใส่แผ่นป้องกันเศษวัสดุกระเด็น ตอนนี้ได้ใส่แผ่นไม้อัดป้องกันไว้ทั้ง 3 ด้าน (เว้นด้านหน้า) สามารถตัดได้อย่างสบายใจ ปลอดภัยแน่นอน

ข้อเสียตอนนี้คือควันจากท่อไอเสียมันเข้าจมูก  เวลาใช้ต้องดูทิศทางลให้ดี  ดมมากๆ จะเวียนหัว  วิธีแก้ที่คิดไว้จะต่อท่อไอเสียขึ้นไปแนวสูง ให้สูงพ้นหัวไป น่าจะลดควันได้มากทีเดียว

First experiment with Tiny85 Arduino

ทดลองเล่นบอร์ด Arduino DigiSpark Tiny85 ขนาดจิ๋ว มี 6 I/O ให้ใช้  ซื้อบอร์ดมาจากอีเบย์  preload มาด้วย Bootloader ทำให้ง่ายต่อการพัฒนาโปรแกรม
    การเตรียมโปแกรม (สำหรับ Windows)
  1. ดาวน์โหลด Arduino และ Driver สำหรับบอร์ดจาก ที่นี่
  2. Unzip ไฟล์ที่โหลดมาแล้วเข้าไปที่ โฟลเดอร์ DigisparkWindowDriver แล้วรันโปรแกรม InstallDriver.exe
  3. ไปที่โฟลเดอร์ Digispark-Arduino-1.0.4 แล้วรัน Arduino
  4. ใน Arduino ให้เลือกบอร์ดเป็น Digispark (Tiny Core) เลือก Programmer เป็น Digispark แล้วเลือก Serial Port ให้ถูกต้อง
  5. เปิดไฟล์ตัวอย่างมาลองเล่นดู เริ่มจาก Blink ก่อน เปลี่ยนพอร์ตของ LED เป็น พอร์ต 1
  6. ก่อน Load โปรแกรม จะต้องถอดบอร์ดออกจากพอร์ต USB ก่อน จะมีข้อความบอกให้เสียบบอร์ดเข้าไป โดยต้องทำภายใน 60 วินาที
  7. เมื่อเสียบบอร์ดเข้าไปกับพอร์ต USB โปรแกรมจะโหลดโปรแกรมของเราลงบอร์ดแล้วรันโปรแกรมทันที  ถ้าไม่มีอะไรผิดพลาดโปรแกรมก็จะทำงานตามที่ต้องการ

    การต่อไอซีวัดอุณหภูมิ DS18B20 
  1. ต่อ VCC (สายสีแดง)  และ GND (สายสีดำ) ของเซ็นเซอร์เข้ากับบอร์ด Tiny85 
  2. ต่อ สาย Data (สายสีเหลือง) เข้ากับพอร์ต P2 ขอบ Tiny85 ต้องต่อตัวต้านทาน 4.7K pull-up กับ VCC ด้วย

    การต่อ Bluetooth HC-05
        ฺBluetooth นี่ เอาไว้รับค่าจากบอร์ด Tiny85 แล้วส่งออกอากาศ  เราสามารถใช้ เครื่องคอมพิวเตอร์ connect กับ Bluetooth เพื่อ ดูค่าอุณหภูมิได้
  1. ต่อ VCC และ GND กับบอร์ด Tiny85
  2. ต่อขา RX ของ HC-05 เข้ากับพอร์ต P3 ของ Tiny85
  3. Connect computer กับ Bluetooth ใช้รหัสผ่าน 1234 ฺ
  4. เปิดโปรแกรมที่รับส่งข้อมูลทาง Serial Port เช่นโปรแกรม HyperTerminal  เซ็ต Baud Rate 9600

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


#include <SoftSerial.h>     /* Allows Pin Change Interrupt Vector Sharing */
#include <TinyPinChange.h>  /* Ne pas oublier d'inclure la librairie <TinyPinChange> qui est utilisee par la librairie <RcSeq> */
#include <OneWire.h>

SoftSerial mySerial(2, 3); // RX, TX

#define DS18S20_ID 0x10
#define DS18B20_ID 0x28

int temp;
int led = 1;
int relay = 0;

OneWire ds(2);

byte data[12];
byte addr[8]; 
char str[8];


boolean readTemperature(){

  //find a device
   
   
 if (!ds.search(addr)) {
   ds.reset_search();
   return false;
 }
   if (OneWire::crc8( addr, 7) != addr[7]) {
   return false;
 }
   if (addr[0] != DS18S20_ID && addr[0] != DS18B20_ID) {
   return false;
 }
 
   ds.reset();
   ds.select(addr);
   // Start conversion
   ds.write(0x44, 1);
   // Wait some time...
 }
  
boolean getTemperature(){
     byte i;  
       byte present = 0;
 present = ds.reset();
 ds.select(addr);
 // Issue Read scratchpad command
 ds.write(0xBE);
 // Receive 9 bytes
 for ( i = 0; i < 9; i++) {
 data[i] = ds.read();
 }
 // Calculate temperature value
 temp = ((data[1] << 8) + data[0] )*0.0625;

 
 str[0] = (data[1]>>4) + 0x30;
 str[1] = (data[1]&0xF) + 0x30;
 str[2] = (data[0]>>4) + 0x30;
 str[3] = (data[0]&0xF) + 0x30;
 str[4] = 10;
 str[5] = 0;
 
 if (temp > 33) {
   digitalWrite(led, HIGH);
   digitalWrite(relay, HIGH);
 } else {
   digitalWrite(led, LOW);
   digitalWrite(relay, LOW);
 }
 
 if (temp > 99)
 {
   str[0] = '1';
   temp -= 100;
 }
 else {
   str[0] = '0';
 }

  str[1] = temp/10 + 0x30;
  str[2] = temp%10 + 0x30;
  str[3] = 10;
  str[4] = 0;
  return true;
}

void setup(){
  
  pinMode(led, OUTPUT);
  pinMode(relay, OUTPUT);
  
  mySerial.begin(9600);
  delay(1000);
}

void loop(){

  readTemperature();
  delay(100);
  getTemperature();
  mySerial.write(str);
  delay(10); 
}