Saturday, July 9, 2016

เอามอเตอร์ปั๊มน้ำ 1 แรงมาพันใหม่

ต้องการทำ Dust Separator สำหรับโรงช็อฟ ซึ่งต้องการมอเตอร์มาทำ Blower จึงเอามอเตอร์ปั๊็มน้ำที่ขดลวดไหม้มาพันใหม่









มอเตอร์นี้เป็นแบบ 2 โพล ซึ่งจะมีความเร็วรอบอยู่ที่เกือบ 3000 รอบ จึงเหมาะมากกับการทำเป็น Blower

มอเตอร์มี 24 สล็อต แต่ละโพลจะมีขดลวด 3 ชุด มีวงนอก วงกลาง และวงใน

สูตรการพันอยู่บนกระดาษแผ่นนี้


รู้สึกว่าจะใช้ C 25uF

สรุปแล้ว หมุนดีใช้ได้


พันมอเตอร์พัดลมฮาตาริ 18 นิ้ว


เป็นการพันมอเตอร์ตัวที่ 3 ถ้าไม่นับการพันมอเตอร์ DC 36 ของจักรยานไฟฟ้าที่ไหม้เพราะ Overload

จู่ๆ พัดลมฮาตาริที่ใช้ในโรงช็อฟก็ช๊อตขึ้นมา ดูแล้วเหมือนมันช็อตกันตรงขั้ว ขดลวดไม่ได้ไหม้ แต่ไล่ไม่ถูก  สุดท้ายก็ตัดสินใจพันขดลวดใหม่

ระหว่างรื้อขดลวดเก่าออก



หลังจากพันใหม่





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

สูตรการพัน (นับรอบจากมอเตอร์ตัวเดิม)


ขด RUN วงนอก 300 รอบ    (ตั้งชื่อขั้วขดลวด  R1A  --  R1B)
ขด RUN วงใน    150 รอบ     (ตั้งชื่อขั้วขดลวด  R2A  --  R2B)
ใช้ลวด 0.3mm คนขายเทียบให้เป็นเบอร์ 30

ขด START วงนอก 430 รอบ    (ตั้งชื่อขั้วขดลวด  S1A  --  S1B)
ขด STARTวงใน    215 รอบ     (ตั้งชื่อขั้วขดลวด  S2A  --  S2B)
ใช้ลวด 0.25mm คนขายเทียบให้เป็นเบอร์ 34

ขด RUN กับขด START วงในมันใช้สล็อตร่วมกัน

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

ขด RUN วงนอกใช้แบบ 4x7.4 cm  วงในใช้ 2.5x6 cm

ขด START วงนอกปรับแบบให้เส้นรอบวงสั้นลงประมาณ 1cm ส่วนวงในใช้ขนาดเท่ากับขน RUN 

โดยรวมคิดว่าแบบใหญ่ไป แต่ไม่เป็นไรเพราะลงลวดง่ายดี และตัวมอเตอร์มีที่เหลือ ลวดไม่ชนโครง

ใช้ C 2.5uF

ความกว้างแบบพันลวดทำให้เท่ากับความกว้างปากสล็อต ทำให้ใส่ง่าย

พันเชือกอย่างแน่น  ชุปวานิช

การต่อวงจร

ขั้นแรก เอาขดวงในกับวงนอกมาอนุกรมกัน
  • R1B ต่อกับ R2A
  • S1B ต่อกับ S2A
Line ต่อกับ R1A ซึ่งต่อกับ S1A
Neutral ต่อกับ R2B ซึ่งต่อกับขั้วหนึ่งของ C และอีกขั้วนึงของ C ต่อกับ S2B

สรุป 


ใช้ได้ ไม่ร้อน ต้องใช้งานต่อไปว่าจะทนได้กี่วัน ??






Saturday, February 20, 2016

How fast is an Arduino Nano pin?

I wonder how fast I can toggle an I/O pin of Arduino Nano (ATMEGA328 running at 16MHz)?

With this simple code:


void setup() {
  pinMode(12, OUTPUT);
}

void loop() {
  digitalWrite(12, LOW);
  digitalWrite(12,HIGH);
}

I monitored pin D12 with my oscilloscope and found that it takes 5uS for each level. Thus the code gives 100kHz square wave as shown in the figure below. Note that oscilloscope setting was 5 uS/DIV.



Now I modified the above code such that it directly writes to PORTB (pin D12 is mapped to bit B4 of PORTB). This avoids using digitalWrite() function. The modified version of the code is shown below:

void setup() {
  pinMode(12, OUTPUT);
}

void loop() {
  PORTB = B00000000;
  PORTB = B00010000;
}

Result: (0.5 uS/DIV)



The frequency of the waveform is around 1.11 MHz which is about 10 times faster than using digitalWrite(). However the waveform does not look symmetry. Duration of the HIGH is around 0.8uS while that of the LOW is around 0.1uS.

I then swap the 2 line of code:

From
  PORTB = B00000000;
  PORTB = B00010000;

to
  PORTB = B00010000;
  PORTB = B00000000;

The result was: (again 0.5uS/DIV)



Obviously, the duration of the HIGH and the LOW are swapped. I think the reason is the Arduino loop takes around 0.7uS.


Conclusions:

  • Write directly to port is much faster than using digitalWrite().
  • Arduino loop() takes about 0.7 uS to execute.