สารบัญ:

สเต็ปเปอร์มอเตอร์ควบคุมด้วยแสง + ขายึดผนัง/ขาตั้ง: 6 ขั้นตอน
สเต็ปเปอร์มอเตอร์ควบคุมด้วยแสง + ขายึดผนัง/ขาตั้ง: 6 ขั้นตอน

วีดีโอ: สเต็ปเปอร์มอเตอร์ควบคุมด้วยแสง + ขายึดผนัง/ขาตั้ง: 6 ขั้นตอน

วีดีโอ: สเต็ปเปอร์มอเตอร์ควบคุมด้วยแสง + ขายึดผนัง/ขาตั้ง: 6 ขั้นตอน
วีดีโอ: ค้นบ้านช่างแอร์ยึดบีบีกันเกือบครึ่งร้อย | 13-10-65 | ข่าวเย็นไทยรัฐ 2024, กรกฎาคม
Anonim
สเต็ปเปอร์มอเตอร์ควบคุมด้วยแสง + ขายึดผนัง/ขาตั้ง
สเต็ปเปอร์มอเตอร์ควบคุมด้วยแสง + ขายึดผนัง/ขาตั้ง

ขาตั้งนี้ใช้สำหรับใส่สเต็ปเปอร์มอเตอร์ที่ควบคุมโดย Arduino ซึ่งออกแบบมาเพื่อควบคุมม่านโดยอัตโนมัติตามระดับแสงในห้อง คุณยังสามารถเพิ่มหน้าจอ LCD เพื่อพิมพ์ระดับแสงได้ เกียร์ 3 มิติมีไว้เพื่อการสาธิตเท่านั้น อาจจำเป็นต้องใช้อุปกรณ์จริงสำหรับการใช้งานจริง เช่น ม่าน แต่ยังรวมถึงการใช้งานอื่นๆ ที่คุณนึกออก

ขั้นตอนที่ 1: ส่วนผสม

เพื่อเริ่มโครงการนี้ คุณจะต้อง;

- ชุดชิป Arduino 2 ชุด- มอเตอร์ชิลด์ Arduino- หน้าจอ LCD ของ Arduino- 1 Breadboard- มอเตอร์สเต็ปเปอร์สองขั้ว 1 ก้อน- แบตเตอรี่ 1 D- 1 ตัวต้านทานแบบพึ่งพาแสง - ตัวต้านทาน 10k Ω 1 เส้น- 10 สายไฟตัวผู้-ตัวผู้- 6 ตัวผู้- สายไฟหญิง- เข้าถึงเครื่องพิมพ์ 3 มิติ

ขั้นตอนที่ 2: การสร้าง Arduino

การสร้าง Arduino
การสร้าง Arduino

ขั้นแรก วางแผงป้องกันมอเตอร์ด้วยหมุด Arduino และเมื่อเรียงกันแล้ว วางลงอย่างแน่นหนา ถัดไปแนบสายไฟของสเต็ปเปอร์มอเตอร์เข้ากับหมุด 8, 9, 10 และ 11 ของแผงป้องกันมอเตอร์ หลังจากนั้นให้ต่อแบตเตอรี่ D ในช่องตามที่แสดงในแผนภาพ ต่อไปคุณจะต้องการได้สายไฟ 6 เส้น (ตัวผู้เป็นตัวเมีย) สำหรับ หน้าจอ LCD และเสียบเข้ากับหน่วย Arduino อื่นตามที่แสดงในแผนภาพวงจร จากนั้นตั้งค่า LDR ตามที่แสดงด้านบน โดยให้ตัวต้านทานต่อกับแถวลบ เมื่อเพิ่ม LDR ที่ด้านข้างด้วยตัวต้านทาน ให้เพิ่ม การเชื่อมต่อ A0 และด้านตรงข้าม ให้เพิ่มอินพุต 1 5V สำหรับแต่ละบอร์ดที่คุณใช้ ดังนั้นหากคุณใช้ 2 บอร์ด คุณจะต้องให้แต่ละบอร์ดมีพิน 5V และ A0 ไปที่ LDR

เชื่อมต่อสายไฟทั้งหมดให้เหมือนกับไดอะแกรม-2 อินพุตไปยัง LDR- 2 เอาต์พุตจาก LDR และตัวต้านทานที่เชื่อมต่อกับกราวด์- 8 สายไปยัง LCD, 1 5V, 1 กราวด์ และ 6 อินพุต- 4 สายที่เชื่อมต่อกับ stepper- 2 การเชื่อมต่อกับแบตเตอรี่- ควรเชื่อมต่อกราวด์เขียงหั่นขนม

ขั้นตอนที่ 3: การเข้ารหัส Arduino

การเข้ารหัส Arduino
การเข้ารหัส Arduino

นี่คือตัวอย่างโค้ดสำหรับเปลี่ยนสถานะของเฟืองตาม LDR

นี่คือรหัสที่จะอนุญาตให้โครงการควบคุมม่านโดยอัตโนมัติ ภาพด้านบนอธิบายเส้นทางต่างๆ ผ่านคำสั่ง IF ที่ซ้อนกันในแง่ของการขึ้น ลง หรืออยู่ในตำแหน่งเดิม (คลิกที่ภาพเพื่อดูแบบเต็มเนื่องจากมีปัญหาการจัดรูปแบบ)

#defineLDRA0//กำหนดตัวแปร "LDR" เป็นพิน A0#include// รวมรหัสสเต็ปเปอร์มอเตอร์

constintstepsPerRevolution=200;//เมื่อสเต็ปเปอร์มอเตอร์ทำงาน การหมุนเต็มที่จะเท่ากับ 200 สเต็ป

SteppermyStepper(stepsPerRevolution, 8, 9, 10, 11); // กำหนดอินพุตให้กับสเต็ปเปอร์เป็นพิน 8, 9, 10, 11

voidsetup(){myStepper.setSpeed(60);//กำหนดความเร็วของมอเตอร์ในการหมุนโหมดพิน (LDR, INPUT);//กำหนดตัวแปร "LDR" เป็นอินพุต Serial.begin(9600);// เริ่มการอ่านแบบอนุกรม }

voidloop(){intlightlevel=analogRead(LDR);//กำหนดตัวแปร "lightlevel" เป็นการกระทำที่อ่านค่าของ "LDR"Serial.print("Light Level: ");Serial.println(lightlevel);// พิมพ์ค่าของ "ระดับแสง" พร้อมคำบรรยายด้านบน

/* ตอนนี้มี loop ที่ตรวจจับระดับแสงทุกจุดของทาง * มีให้เลือก 3 แบบ คือ ขึ้น ลง อยู่ในตำแหน่งเดิม* ออกแบบมาให้ถ้าระดับแสงเท่ากันก็จะ เหมือนเดิม ถ้าไม่เปลี่ยน* คือ ถ้า 950 ก็ไป 952 ก็ไม่มีอะไรเกิดขึ้น แต่ถ้าเปลี่ยนจาก 950 เป็น 600 ก็จะดึงม่านขึ้นสลับกัน * แต่ละขั้นตอนมีตัวอักษรกำกับไว้ หน้าขั้นตอนเพื่อติดตามว่าอยู่ที่ใดในลูปผ่านมอนิเตอร์แบบอนุกรม */

if(lightlevel>=900){Serial.println("A");// ขั้นตอนใดที่อยู่ใน loopmyStepper.step(3*stepsPerRevolution); // stepper ทำ 3 รอบไปข้างหน้า หากเป็นลบ มันจะย้อนกลับล่าช้า(30000);// ปล่อยไว้ที่นั่นเป็นเวลา 5 นาที intlightlevel=analogRead(LDR);// กำหนดตัวแปร "lightlevel" เป็นค่าที่อ่านล่าสุดจาก LDRSerial.print("Light Level: ");//พิมพ์ข้อความหน้าตัวแปร Serial.println(lightlevel)// พิมพ์ค่าระดับแสง

ถ้า(lightlevel>=900){Serial.println("B");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (ระดับแสง);

ถ้า(lightlevel>=900){Serial.println("C");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: "); Serial.println(ระดับแสง);}

อื่น{Serial.println("D");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);}}

อื่น{Serial.println("E");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

ถ้า(lightlevel>=900){Serial.println("F");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (ระดับแสง);}

อื่น{Serial.println("G");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);}}

}

อื่น{Serial.println("H");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

if(lightlevel>=900){Serial.println("I");myStepper.step(3*stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");ซีเรียล.println(ระดับแสง);

ถ้า(lightlevel>=900){Serial.println("J");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: "); Serial.println(ระดับแสง);}

อื่น{Serial.println("K");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

}}

อื่น{Serial.println("L");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

if(lightlevel>=900){Serial.println("M");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println ("ระดับแสง: ");Serial.println (ระดับแสง);}

อื่น{Serial.println("N");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(lightlevel);

}}

}

}

ขั้นตอนที่ 4: ตัวเลือก: หน้าจอ LCD

ซึ่งจะพิมพ์ระดับแสงที่ LDR ตรวจพบบนหน้าจอ LCD

#รวม

  • //เพิ่มไลบรารีคริสตัลเหลวด้วยโค้ดเพิ่มเติม#define ldr A0 //กำหนดตัวแปร "ldr" ให้กับพิน A0

    LiquidCrystal LCD (8, 9, 4, 5, 6, 7); // เริ่มต้นไลบรารีด้วยหมายเลขของพินอินเตอร์เฟส

    voidsetup() {// รหัสที่ทำงานครั้งเดียวที่ startlcd.begin (16, 2); // ตั้งค่าจำนวนคอลัมน์และบรรทัดของ LCD ตามลำดับ pinMode(ldr, INPUT); // กำหนด ldr เป็นอินพุต pinSerial.begin(9600); // เริ่มการสื่อสารกับมอนิเตอร์แบบอนุกรม

    }

    voidloop() {// รหัสที่จะทำซ้ำอย่างต่อเนื่องSerial.println(analogRead(ldr)); // พิมพ์การอ่านที่ ldr หยิบขึ้นมา (ตัวเลขระหว่าง 0-1023) บน serial monitorlcd.setCursor(6, 0); // ตั้งค่าเคอร์เซอร์ไปที่คอลัมน์ 6 บรรทัด 0lcd.print(analogRead(ldr)); // พิมพ์ค่าที่อ่านได้บน LCD screendelay(1000); // หน่วงเวลาคำสั่งถัดไปเป็นเวลาหนึ่งวินาที

    }

    ขั้นตอนที่ 5: ชิ้นส่วนที่พิมพ์

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

    หากจะใช้เฟืองพิมพ์ 3 มิติ ฟันเฟืองหนึ่งซี่จะถูกถอดออกเพื่อให้ชุดสกรูยึดกับมอเตอร์ได้

    ขายึดผนังด้านหน้า 2 ขาสามารถถอดออกได้หากต้องการติดตั้งกับผนัง พวกมันถูกเพิ่มเข้ามาเท่านั้น ดังนั้นมันจึงยืนขึ้นในขณะที่เรากำลังทดสอบกับมัน

    ขั้นตอนที่ 6: การจัดวาง

    เมื่อชิ้นส่วนทั้งหมดพร้อมแล้ว ก็ถึงเวลาเริ่มการจัดวางขั้นสุดท้าย

    ขั้นแรก วางสเต็ปเปอร์มอเตอร์ลงในกล่องที่ให้มาบนขาตั้งและใส่เกียร์บนเพลาถัดไป ย้ายสายไฟเพื่อให้ไปอยู่ด้านหลังขาตั้ง สุดท้าย วาง Arduino และแบตเตอรี่ไว้ด้านหลังขาตั้ง

    บอร์ดของคุณควรมีลักษณะเหมือนภาพด้านบน

    ยินดีด้วย!

    สามารถใช้เกียร์สำหรับม่านอัตโนมัติหรือสิ่งอื่น ๆ ที่คุณต้องการควบคุมโดย LDR

    คุณทำเสร็จแล้ว เพลิดเพลินไปกับการสร้างสรรค์ใหม่ของคุณ

แนะนำ: