这是以前设计的一个迭代,该设计使用空心零件印刷,以允许安装电子设备。内置9伏电池、电源开关、键盘按键开关(樱桃牌)、双红/蓝LED和Arduino Pro Mini(5VDC)。我在YouTube上发布了一段视频,讲述了如何安全操作魔杖/军刀,而不必对自己施咒或砍掉自己的手臂。(见下文)更新:添加了带螺纹鞍头的更宽敞手柄的文件-更坚固的密封和更大的电子小玩意儿空间。属性:Adriano Cazzaroto:RGB LED:LED RGB 5mmPamir:Arduino Pro Mini:Arduino Pro Mini:Oliver Darvas:9伏电池Yu:Cherry开关:Cherry MX开关樱桃MX轴微型开关根据麦克马斯特卡尔项目调整大小。B.O.M.:电源开关:http://www.microcenter.com/product/465454/miniature-snap-in-nylon-illuminated-rocker---red-switchArduino Pro Mini(5VDC逻辑) : http://www.microcenter.com/product/486546/arduino-pro-mini-boardDual 带路:http://www.microcenter.com/product/390134/led---dual-color-5mm-super-fresh-red-super-blue-3-packCherry 开关:https://www.amazon.com/gp/product/B077TK5DL9/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1Keycaps(不完全匹配):https://www.amazon.com/gp/product/B077C287J2/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=19伏蓄电池导线:http://www.microcenter.com/product/497120/9v-battery-clipSuper-Duper 胶水:https://www.amazon.com/Bob-Smith-Industries-BSI-157H-Insta-Set/dp/B0166FFCHS/ref=sr_1_1_sspa?s=industrial&ie=UTF8&;qid=1535459641&;sr=1-1-spons&;关键词=鲍勃+史密斯+工业;psc=1您还需要一个10K下拉电阻器用于Pro Mini上的按钮输入,两个1K电阻器用于LED。组装和编程:通过将双LED粘到“消音器”部件中开始组装(预连接1K电阻器与正极引线对齐)。将电线穿过枪管,并将枪管粘到消音器上。将樱桃开关粘到触发器部件(预接线),然后将桶粘到触发器组件上。手柄上的小电源开关只是卡入(预先接线),然后手柄粘在触发器上。然后将所有电子设备连接在一起并塞进手柄(在对arduino进行编程后)。鞍座是一个管理单元适合完成。更新:添加了一个新版本的处理和鞍座线程。这个手柄为电子设备提供了更大的空间(耶!)。更新:增加了6种模式的3色LED灯棒的代码。每次按下cherry开关时,该程序在六种模式之间循环,灯光显示始终处于活动状态-无超时。我发现mini将高、低状态视为与施加到输入端的电压相反的状态,这是令人恼火的,但它并不是一个显示阻止器,所以我将代码保持原样。因此,魔杖将在模式1而不是模式0中醒来-没什么大不了的,但它就在那里。更新:添加了3色LED版本的基本原理图。请注意,与双色LED不同,三色LED的公共引线为正极5VDC。您必须确认您使用的任何LED的极性。以下arduino代码有两种风格-一种用于双色LED,另一种用于三色LED。仅使用一个或另一个-代码在两个代码之间明确分开。双色LED的Arduino Pro迷你程序://harryVader.ino//constants不会更改。它们在这里用于设置pin码:const int buttonPin=9;//按钮pinconst int ledPin的编号=13;//LED pinconst int blueLed的数量=6;常数int redLed=5;//变量将更改:int buttonState=0;//用于读取按钮statusint buttonCount的变量=0;int x=0;按下int按钮=0;int buttonOff=0;int loopCount0=0;int loopCount1=0;int loopCount2=0;int loopCount3=0;//当您按下重置键或为boardvoid Setup()通电时,设置功能运行一次{? // 初始化数字引脚LED_内置为输出。引脚模式(LED引脚,输出);引脚模式(蓝色LED,输出);引脚模式(红色LED,输出);引脚模式(按钮输入,输入);串行。开始(9600);}?// 主循环函数反复运行forevervoid循环(){? // 读取按钮值的状态:buttonState=digitalRead(ButtonSpin);digitalWrite(ledPin,buttonState);//检查按钮是否按下。如果按下,按钮状态为高:如果((buttonState==低)和(ButtonSpressed==0)){? buttonPressed=1;buttonOff=0;//buttonCount=buttonCounter(x);buttonCount++;if(buttonCount>;3){? buttonCount=0;Serial.println(“按钮计数器重置!”);}?//如果(buttonCount==0),则设置循环计数器{? loopCount0=255;loopCount1=0;loopCount2=0;loopCount3=0;}? 如果(buttonCount==1){? loopCount0=0;loopCount1=40;loopCount2=0;loopCount3=0;}? 如果(buttonCount==2){? loopCount0=0;loopCount1=0;loopCount2=20;loopCount3=0;}? 如果(按钮计数==3){? loopCount0=0;loopCount1=0;loopCount2=0;loopCount3=60;}? Serial.println(“按钮按下…”);Serial.print(“按钮按下次数:”;Serial.println(按钮计数);延迟(60);}? //如果((buttonState==高)和(ButtonSoff==0))释放按钮时,设置按钮关闭标志{? buttonPressed=0;buttonOff=1;Serial.println(“按钮关闭…”);延迟(60);}? //如果(buttonCount!=0)重置循环计数器{? loopCount0=0;}? 如果(按钮计数!=1){? loopCount1=0;}? 如果(按钮计数!=2){? loopCount2=0;}? 如果(按钮计数!=3){? loopCount3=0;}? //模式零如果(loopCount0>;0){? analogWrite(蓝色,loopCount0);analogWrite(红色,(255-loopCount0));delay(70);//等待一秒钟//analogWrite(蓝色,(255-loopCount0));//analogWrite(红色,loopCount0);//delay(10);loopCount0=(loopCount0-5);if(loopCount0!=0){? Serial.print(loopCount0);Serial.print(“”;}? 否则{? Serial.println(loopCount0);}? }? //模式一if(loopCount1>;0){? digitalWrite(蓝色,高);digitalWrite(红色,低);延迟(18);//等待第二次数字写入(蓝色,低);digitalWrite(红色,高);延迟(18);--loopCount1;如果(loopCount1!=0){? Serial.print(loopCount1);Serial.print(“”;}? 否则{? Serial.println(loopCount1);}? }?//模式二如果(loopCount2>;0){? digitalWrite(蓝色,高);digitalWrite(红色,低);延迟(100);//等待第二次数字写入(蓝色,低);digitalWrite(红色,高);延迟(100);--loopCount2;如果(loopCount2!=0){? Serial.print(loopCount2);Serial.print(“”;}? 否则{? Serial.println(loopCount2);}? }? //模式三如果(loopCount3>;0){? digitalWrite(蓝色,高);digitalWrite(红色,高);延迟(10);//等待第二次数字写入(蓝色,低);digitalWrite(红色,低);延迟(20);--loopCount3;如果(loopCount3!=0){? Serial.print(loopCount3);Serial.print(“”;}? 否则{? Serial.println(loopCount3);}? }? //如果((loopCount1==0)和(loopCount2==0)和(loopCount3==0))的所有LoopCounter归零,则关闭LED{? //digitalWrite(发光二极管,低电平);digitalWrite(发光二极管,低电平);digitalWrite(发光二极管,低电平);//延迟(30);}? // 结束主循环}?-----------------------------------------------三色六模式魔杖的程序://darthPotter_01.ino//constants不会改变。它们在这里用于设置引脚编号:const int ledPin=13;//LED pinconst int buttonPin=3;//按钮pinconst int redLed=11;const int greenLed=10;const int blueLed=9;//变量会改变:int x=0;int redBrightness=0;//红色LED的亮度是多少绿色亮度是多少;//绿色LED的亮度是多少blueBrightness=0;//蓝色LED的亮度是多少fadeAmount=3;//LED的亮度是多少,按int按钮state=0;//读取按钮状态的变量int buttonCount=0;int buttonPressed=0;int按钮Off=0;int-loopCount=0;//modelock用于一次性代码int-modeLock0=0;int-modeLock1=0;int-modeLock2=0;int-modeLock3=0;int-modeLock4=0;int-modeLock5=0;//当您按下重置键或打开boardvoid Setup()时,Setup函数运行一次{? // 初始化数字引脚LED作为输出。引脚模式(LED引脚,输出);引脚模式(蓝色LED,输出);引脚模式(红色LED,输出);引脚模式(绿色LED,输出);引脚模式(按钮输入,输入);模拟写入(红色LED,255);模拟写入(蓝色LED,255);模拟写入(绿色LED,255);串行。开始(9600);延迟(1500);}?// 主循环函数反复运行forevervoid循环(){? // 读取按钮值的状态:buttonState=digitalRead(ButtonSpin);//输出到车载led digitalWrite(ledPin,buttonState);//检查按钮是否按下。如果按下,按钮状态为高:如果((buttonState==LOW)和(ButtonSpressed==0)){? buttonPressed=1;buttonOff=0;buttonCount++;loopCount=0;Serial.println(buttonCount);if(buttonCount>;5){? buttonCount=0;Serial.println(“按钮计数器重置!”);}? Serial.println(“按钮按下…”);Serial.print(“按钮按下次数:”;Serial.println(按钮计数);延迟(60);}? //如果((buttonState==高)和(ButtonSoff==0))释放按钮时,设置按钮关闭标志{? buttonPressed=0;buttonOff=1;Serial.println(“按钮关闭…”);延迟(60);}?//开始模式0//所有灯亮起-如果(按钮计数==0&;&;modeLock0==0),则零完全亮起{? //解锁模式5如果(modeLock5==1){? modeLock5=0;}? 如果(红色亮度>;0){? 红色亮度=0;}? 如果(绿色亮度>;0){? 绿色亮度=0;}? 如果(蓝色)
- 模型大小 :80.95 MB
- 消 耗 :5莫西点
- 下载次数 :
- 包含文件 :STL,STEP / IGES,Rendering,STL,Rendering,STL,STL,STL,STL,STL,STL,Other,Rendering



























































