|
|
|
|
---|---|---|
|
亚马逊 |
|
|
Digi-Key |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
快速电子 |
|
|
Digi-Key |
|
|
Digi-Key |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
Digi-Key |
|
|
|
|
---|---|---|
|
亚马逊 |
|
|
|
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
|
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
|
亚马逊 |
|
笔记
步骤5:3D打印的部件
步骤6:电机装配
步骤7:焊接电机
步骤8:成分标记
-
首先,把亚克力板放在你的窗台上,在你的盲目。 现在把电机上的亚克力板,确保它是垂直与窗帘的帘线,如图所示。 保持电机总成的亚克力板,升降板上翻转过来。 标志上的安装孔的位置在丙烯酸汽车装配。
-
下一步,将两Arduinos在碟子上,另一端在电机的安装使得Arduinos垂直符合对方。 留个缺口(约1.5厘米)的两Arduinos之间。 其次,继电器模块下到谷底Arduino,一隙(约2.5cm)。 添加Boost变换器旁边的继电器模块,另一个缺口(约1.5cm)。 <i style="font-weight: bold;">使用所附照片作为参考</i>。电机对准底部的盲是很重要的,精确定位的其它成分是不是关键。 最后用记号笔标记每个孔表示在图上的亚克力板。
步骤9:钻井
步骤10:安装- Relay Module
步骤11:安装- Arduinos和升压转换器
-
地方上的每10–m3x10mm螺栓垫圈。 -
把每个螺栓/洗衣机通过在亚克力板10孔。 -
放一个垫圈的10个螺栓,三明治的亚克力板。 -
螺丝M3螺母紧到手指的每个螺栓。
步骤12:安装电机
步骤13:布线
步骤14:信号线的布线
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---|---|
|
|
|
|
步骤15:电机电缆布线
步骤16:继电器接线
步骤17:继电器接线功率(负)
步骤18:最后检查继电器接线
步骤19:升压变换器电路
步骤20:最后的接力/升压转换器接线
步骤21:液晶面板
步骤22:面板组件
步骤23:液晶板
步骤24:按键面板信号电缆
步骤25:按钮面板接地连接
步骤26:按键面板信号线
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
步骤27:按键面板安装
步骤28:液晶屏线
步骤29:连接
|
|
---|---|
|
|
|
|
|
|
|
|
步骤30:最后的面板组件
步骤31:颜色传感器的制备
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意:引脚标记3V3和LED都没有用
步骤32:颜色传感器支架
提示:最好是离开架过夜(24小时)为硅固化之前使用。
步骤33:Roller Blind校正
步骤34:Roller Blind Markers
步骤35:RTC
步骤36:RTC配线
步骤37:上拉电阻
步骤38:控制面板电缆的制备
步骤39:按钮连接
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
步骤40:显示连接
步骤41:电缆整理
步骤42:底Arduino
|
|
---|---|
|
|
|
|
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意:引脚3V3和int都没有用
步骤43:Arduino IDE的制备
步骤44:颜色传感器的标定
代码
/ *代码自动盲器校准由diytronics:< a href =“http:/ / www.instructables。COM /会员/ diytronics /”> HTTPS:/ / www.instructables。COM /会员/ diytronics / </a> *使用Adafruit tcs34725色彩传感器库:< a href =“http / / / / adafruit_tcs34725 GitHub网站Adafruit”> HTTPS:/ / www.instructables。COM /会员/ diytronics / </a> * / #包括<<丝。” #包括“adafruit_tcs34725。H” adafruit_tcs34725 TCS = adafruit_tcs34725(tcs34725_integrationtime_700ms,tcs34725_gain_1x);//初始化传感器 虚空(void){ 串口设置。开始(9600);//设置串行 如果(TCS。begin()){ //如果传感器fetected 串行out.println(“传感器成功地检测”);/ /通知其他用户 } { //如果传感器没有发现 println系列。(“不tcs34725发现… check your wiring"); //Notify user while (1); } } void loop(void) { uint16_t r, g, b, c, colorTemp, lux; tcs.getRawData(&r, &g, &b, &c); Serial.print("R: "); Serial.print(r, DEC); Serial.print(" "); //Print red values Serial.print("G: "); Serial.print(g, DEC); Serial.print(" "); //Print green values Serial.print("B: "); Serial.print(b, DEC); Serial.print(" "); //Print blue values Serial.print("C: "); Serial.print(c, DEC); Serial.print(" "); //Print clear values Serial.println(" "); }
下载
步骤45:颜色传感器的计算
步骤46:底Arduino的代码
/* Code for Automatic Blind BOTTOM ARDUINO -- by DIYtronics: <a href="https://www.instructables.com/member/diytronics/"> <a href="https://www.instructables.com/member/diytronics/"> https://www.instructables.com/member/diytronics/ </a> </a> * Using Adafruit TCS34725 colour sensor library : <a href="https://github.com/adafruit/Adafruit_TCS34725"> <a href="https://www.instructables.com/member/diytronics/"> https://www.instructables.com/member/diytronics/ </a> </a> */ #include <Wire.h> #include "Adafruit_TCS34725.h" //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Variables /////////////////////////////////////////////////////////////////////////////////////////////////////////////// int redreading; int greenreading; int bluereading; int clearreading; int reading; int redstripvalue; int greenstripvalue; int materialvalue; int tolerance; int materialcolour; Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN _1x);//初始化颜色传感器 //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /设置 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 无效setup() { 系列。开始(9600);//串口设置 而(! 串行){ ;/ /等待串口连接。 需要USB } pinmode(4,输出);//定义引脚 pinmode(5,输出); digitalwrite(4,低); digitalwrite(5,低); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /值 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// ;/替换值红带读< ------------------------------------------------------------------------------ / .......... redstripvalue = ;/替换值绿色条阅读<< ------------------------------------------------------------------------------ / .......... greenstripvalue = ;/ /更换材料的阅读价值< ------------------------------------------------------------------------------ .......... materialvalue = materialcolour = ..........;/ /更换点:redreading,greenreading,bluereading或clearreading所依赖的颜色你的盲材料阅读 ------------------------------------------------------------------- 公差= ..........;/ /替换点与公差(通常300)< ------------------------------------------------------------------------------ //////////////////////////////////////////////////////////////////////////////////////////////////////////////// / /////////////////////////////////////////////////////////////////////////////////////////////////////////////// } 无效loop() { //////////////////////////////////////////////////////////////////////////////////////////////////////////////// /值 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 阅读= ..........;/ /更换点:redreading,greenreading,bluereading或clearreading依赖于它的颜色你带读数来自<< ------------------------------------------------------------------------------ ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////// //Loop /////////////////////////////////////////////////////////////////////////////////////////////////////////////// uint16_t c, r, g, b; tcs.getRawData(&r, &g, &b, &c); redreading = r, DEC; greenreading = g, DEC; bluereading = b, DEC; clearreading = c, DEC; if(reading > (redstripvalue - tolerance)){ //If the value from the colour sensor is under the max limit for red, but over the min limit for red, it must be red if (reading < (redstripvalue + tolerance)){ Serial.println("Red Detected"); digitalWrite(4, HIGH); //Set pins accordingly digitalWrite(5, LOW); } } if (reading > (greenstripvalue - tolerance)){ //If the value from the colour sensor is under the max limit for green, but over the min limit for green, it must be green if (reading < (greenstripvalue + tolerance)){ Serial.println("Green Detected"); digitalWrite(4, LOW); //Set pins accordingly digitalWrite(5, HIGH); } } if (materialc 颜色>(materialvalue容忍)){ //如果材料值检测,设置相应的 digitalwrite引脚(4、低); digitalwrite(5,低); }
步骤47:颜色传感器的代码
步骤48:代码上传
/ * **这个例子使用F马尔帕蒂达的newliquidcrystal图书馆。 获得: * < a href =“http:/ / Bitbucket. org / fmalpartida /新液晶”> HTTPS:/ / Bitbucket. org / fmalpartida /新liquidcryst…</a> * *也rtclib基于< a href =“http:/ / GitHub。COM / Adafruit / rtclib”> HTTPS:/ / Bitbucket. org / fmalpartida /新liquidcryst…</a> * *写的diytronics:< a href =“http:/ / www.instructables。COM /会员/ diytronics /”> HTTPS:/ / Bitbucket. org / fmalpartida /新liquidcryst…</一> * / /////////////////////////////////////////////////////////////////////////////////////////////////////////////// /库包含: /////////////////////////////////////////////////////////////////////////////////////////////////////////////// #包括<<丝。” #包括<液晶。” #包括<< liquidcrystal_i2c。H > #包括“rtclib。H” rtc_ds3231 RTC; /////////////////////////////////////////////////////////////////////////////////////////////////////////////// /液晶在实例 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// DDR 0x27 #define BACKLIGHT_PIN 3 #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7 LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Variable Declerations /////////////////////////////////////////////////////////////////////////////////////////////////////////////// int seconds; int minutes; int hours; int menu; int upminutesa = 0; int uphoursa = 0; int dwnminutesa = 0; int dwnhoursa = 0; int setupminutesa = 0; int setuphoursa = 0; int setdwnminutesa = 0; int setdwnhoursa = 0; int upminutesb = 0; int uphoursb = 0; int dwnminutesb = 0; int dwnhoursb = 0; int setupminutesb = 0; int setuphoursb = 0; int setdwnminutesb = 0; int setdwnhoursb = 0; int active = 1; int selcounter; int senseLED = 3; int rval; int gval; int bval; int minup; int hourup; int mindwn; int hourdwn; int blindposi 应用= 0; int redreading; int greenreading; int bluereading; int起来; int DWN; INT SEL; int ESC; int prevup =高; int prevdwn =高; int prevsel =高; int disprelay = 7; int TIMEC; int setcounter; int setcountera; int计数器; int greenstate; int RedState; int状态= 1; int trigcounter; /////////////////////////////////////////////////////////////////////////////////////////////////////////////// /按钮引脚 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// int扣件= 12; int buttondwn = 11; int buttonsel = 10; int buttonesc = 9; int计数器= 0; int dwncounter = 0; int esccounter = 0; /////////////////////////////////////////////////////////////////////////////////////////////////////////////// / /其他定义 /////////////////////////////////////////////////////////////////////////////////////////////////////////////// int功率= 6;#p#分页标题#e# = 2; //Green detection from other Arduino int redpin = 3; //Red detection from other Arduino /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Setup /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void setup() { rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //Sync RTC and Computer time Serial.begin(9600); pinMode(buttonUP, INPUT_PULLUP); //Use internal pullups for control panel switches pinMode(buttonDWN, INPUT_PULLUP);//^ pinMode(buttonSEL, INPUT_PULLUP);//^ pinMode(buttonESC, INPUT_PULLUP);//^ pinMode(disprelay, OUTPUT); //Configure relay output pins pinMode(power, OUTPUT); //^ pinMode(fwd, OUTPUT);//^ pinMode(bwd, OUTPUT);//^ digitalWrite(disprelay, LOW); //Set default to turn backlight on digitalWrite(power, HIGH); //Have everything else off digitalWrite(fwd, HIGH);//^ digitalWrite(bwd, HIGH);//^ //////////////////////////////////////////////////////////////////// /////////////////////////////////////////// //LCD Setup /////////////////////////////////////////////////////////////////////////////////////////////////////////////// lcd.begin (20,4); //Configure LCD lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); //^ lcd.setBacklight(HIGH);//^ mainmenu();//^ pinMode(senseLED, OUTPUT); //Configure LED digitalWrite(senseLED,LOW); //Configure LED pinMode(redpin, INPUT); //Configure sensor input pinMode(greenpin, INPUT); //Configure sensor input digitalRead(greenpin); //Read sensor from Arduino digitalRead(redpin); //Read sensor from Arduino blindposition = 1; //Retact blind } void loop() { getbutton(); //Get menu button presses printtime(); //Update time checktime(); //Check if blind needs to move redstate = digitalRead(redpin); //Get sensor greenstate = digitalRead(greenpin); //Get sensor checkblind(); //Check position } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Get Time From I2C RTC // ///////////////////////////////////////////////////////////////////////////////////////////////////////////// 无效gettime() { 如果(! RTC。begin()){ //报道如果RTC没有发现 串行out.println(“找不到 RTC”);而(1); } 如果(RTC。lostpower()){ 串行out.println(“RTC失去动力,让我们的时间! ; //Sets time if power lost. // following line sets the RTC to the date & time this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } DateTime now = rtc.now(); //Update time seconds = (now.second()); //Update seconds minutes = (now.minute()); //Update minutes hours = (now.hour()); //Update hours } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Print Time to LCD /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void printtime(){ //Print the time on screen gettime(); //Get the time from RTC lcd.setCursor(10,0); lcd.print("T:"); lcd.setCursor(12,0); lcd.print(hours, DEC); //Use DEC to convert to numbers lcd.setCursor(14,0); lcd.print(':'); lcd.setCursor(15,0); lcd.print(minutes, DEC); //Use DEC to convert to numbers lcd.setCursor(17,0); lcd.print(':'); lcd.setCursor(18,0); lcd.print(second s, DEC); //Use DEC to convert to numbers } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Displays Menu /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void mainmenu(){ //Reddraw static menu lcd.clear(); lcd.setCursor(1,0); lcd.print("Disp PWR"); lcd.setCursor(1,1); lcd.print("Set Open Time"); lcd.setCursor(1,2); lcd.print("Set Down Time"); lcd.setCursor(1,3); lcd.print("MANUAL TRIGGER"); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Shows cursor /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void cursorpos(){ //Update/Move cursor if (active == 1){ if (counter == 0){ lcd.setCursor(0,0); lcd.print(">"); lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,2); lcd.print(" "); lcd.setCursor(0,3) ; lcd.print(" "); menu = 1; } if (counter == 1){ //Update/Move cursor lcd.setCursor(0,1); lcd.print(">"); lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,2); lcd.print(" "); lcd.setCursor(0,3); lcd.print(" "); menu = 2; } if (counter == 2){ //Update/Move cursor lcd.setCursor(0,2); lcd.print(">"); lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,3); lcd.print(" "); menu = 3; } if (counter == 3){ //Update/Move cursor lcd.setCursor(0,3); lcd.print(">"); lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,2); lcd.print(" "); lcd.setCursor(0,0); lcd.print(" "); menu = 4; } } if(active == 0){ //If set open time selected show this oTimedisplay(); } if(active == 2){ //If set close time selected show this cTimedisplay(); } } ////////////////////////////////////////////////////////////////////////////////////////// ///////////////////// //Open Time /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void opentime(){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Menu"); } void getbutton(){ // Get button input and assign to correct variables up = digitalRead(buttonUP); dwn = digitalRead(buttonDWN); sel = digitalRead(buttonSEL); esc = digitalRead(buttonESC); if(esc == LOW){ active = 1; mainmenu(); Serial.print("ESC"); // Get button input and assign to correct variables upminutesa = setupminutesa; upminutesb = setupminutesb; uphoursa = setuphoursa; uphoursb = setuphoursb; dwnminutesa = setdwnminutesa; dwnminutesb = setdwnminutesb; dwnhoursa = setdwnhoursa; dwnhoursb = setdwnhoursb; digitalWrite(disprelay, LOW); motorstop(); //stop motor if selected } switch(counter){ //loop logic keepin numbers within the limit case 4: counter = 3; break; case -1: counter = 0; break ; } 如果((! = prevup)/测试开关机 &(上= =低)){ 柜台; 如果(主动= = 0){ setcounter + +; } (主动= =如果2){ setcountera + +; } digitalwrite(disprelay,低); } prevup =! = prevdwn)/测试开关机 &(DWN = =低)){ 计数器+;如果(主动= = 0 ){ setcounter --; } (主动= =如果2){ setcountera --; } digitalwrite(disprelay,低); } prevdwn =胆胃宁! = prevSel) //testing switch press &&(sel == LOW)){ if (countera < 3){ countera ++; setcounter = 0; } else{ countera = 0; } if (menu == 1){ disPWR(); } if (menu == 2){ oTime(); } if (menu == 3){ cTime(); } if (menu == 4){ trig(); } } prevSel = sel; } void disPWR(){ Serial.println("disPWR"); digitalWrite(disprelay, HIGH); lcd.clear(); } void oTime(){ active = 0; lcd.clear(); lcd.setCursor(0 ,0); lcd.print("Set Open: "); lcd.setCursor(0,1); lcd.print("Prog Time> "); // lcd.setCursor(12,1); lcd.print(upminutesa); // lcd.setCursor(13,1); lcd.print(upminutesb); // lcd.setCursor(14,1); lcd.print(":"); // lcd.setCursor(15,1); lcd.print(uphoursa); // lcd.setCursor(16,1); lcd.print(uphoursb); // lcd.setCursor(0,2); lcd.print("Edit Time> "); } void oTimedisplay(){ lcd.setCursor(12,2); lcd.print(setupminutesa); / / lcd.setCursor(13,2); lcd.print(setupminutesb); // lcd.setCursor(14,2); lcd.print(":"); lcd.setCursor(15,2); lcd.print(setuphoursa); lcd.setCursor(16,2); lcd.print(setuphoursb); lcd.setCursor(0,3); lcd.print("Sel Digit>"); if (countera == 0){ //First hour digit lcd.setCursor(12,3); lcd.print("^"); switch (setcounter){ case 3: setcounter = 2; case -1: setcounter = 0; } setupminutesa = setcounter; } if (countera == 1){ //Second hour digit lcd.setCursor(13,3); lcd.print("^"); switch (setcounter){ case 10: setcounter = 9; case -1: setcounter = 0; } switch (setupminutesa){ case 2: switch (setcounter){ case 5: setcounter = 0; } } setupminutesb = setcounter; } if (countera == 2){ //First Minute digit lcd.setCursor(15,3); lcd.print("^"); switch (setcounter){ case 6: setcounter = 5; case -1: setcounter = 0; } setuphoursa = setcounter; } if (countera == 3){ //Second minute digit lcd .setCursor(16,3); lcd.print("^"); switch (setcounter){ case 10: setcounter = 9; case -1: setcounter = 0; } setuphoursb = setcounter; } Serial.println("Done"); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void cTime(){ //Menu for setting close time active = 2; lcd.clear(); lcd.setCursor(0 ,0); lcd.print("Set Close: "); lcd.setCursor(0,1); lcd.print("Prog Time> "); // lcd.setCursor(12,1); lcd.print(dwnminutesa); // lcd.setCursor(13,1); lcd.print(dwnminutesb); // lcd.setCursor(14,1); lcd.print(":"); // lcd.setCursor(15,1); lcd.print(dwnhoursa); // lcd.setCursor(16,1); lcd.print(dwnhoursb); // lcd.setCursor(0,2); lcd.print("Edit Time> "); } void cTimedisplay(){ lcd.setCursor(12,2); lcd.print(setdwnminutesa); // lcd.setCursor(13,2); lcd.print(setdwnminutesb); // lcd.setCursor(14,2); lcd.print(":"); lcd.setCursor(15,2); lcd.print(setdwnhoursa); lcd.setCursor(16,2); lcd.print(setdwnhoursb); lcd.setCursor(0,3); lcd.print("Sel Digit>"); if (countera == 0){ //First hour digit lcd.setCursor(12,3); lcd.print("^"); switch (setcountera){ case 3: setcountera = 2; case -1: setcountera = 0; } setdwnminutesa = setcountera; } if (countera == 1){ //Second hour digit lcd.setCursor(13,3); lcd.print("^"); switch (setcountera){ case 10: setcountera = 9; case -1: setcountera = 0; } switch (setdwnminutesa){ case 2: switch (setcountera){ case 5: setcountera = 0; } } setdwnminutesb = setcountera; } if (countera == 2){ //First Minute digit lcd.setCursor(15,3); lcd.print("^"); switch (setcountera){ case 6: setcountera = 5; case -1: setcountera = 0; } setdwnhoursa = setcountera; } if (countera == 3){ //Second minute digit lcd.setCursor(16,3); lcd.print("^"); switch (setcountera){ case 10: setcountera = 9; case -1: setcountera = 0; } setdwnhoursb = setcountera; } Serial.println("Done"); } void trig(){ //Keep track of blind position trigcounter ++; switch(trigcounter){ case 3: trigcounter = 1; } if(trigcounter == 1){ blindposition = 1; } if(trigcounter == 2){ blindposition = 2; } Serial.println("Trig"); } void motorfwd(){ //Move motor forwards digitalWrite(power, LOW); digitalWrite(bwd,HIGH); digitalWrite(fwd,LOW); } void motorbwd(){ //Move motor backwards digitalWrite(power, LOW); digitalWrite(fwd,HIGH); digitalWrite(bwd,LOW); } void motorstop(){ //Stop the motor digitalWrite(power, HIGH); digitalWrite(fwd,HIGH); digitalWrite(bwd,HIGH); } void checktime(){ //Check the time form the RTC DateTime now = rtc.now(); minup = upminutesa*10 + upminutesb; hourup = uphoursa*10 + uphoursb; mindwn = dwnminutesa*10 + dwnminutesb; hourdwn = dwnhoursa*10 + dwnhoursb; if(minup == now.hour()){ if(hourup = =现在。minute()){ blindposition = 1;} } 如果(hourdwn = =现在。minute()){ 如果(mindwn = =现在。hour()){ blindposition = 2;} } } 无效checkblind() { //检查 盲目状态。如果(blindposition = = 1){ 如果(greenstate = =高){ motorstop(); blindposition = 3;}如果 (greenstate = =低){ motorfwd(); } }如果 (blindposition = = 2){ 如果(RedState = =高){ motorstop(); blindposition = 3;}如果 (RedState = =低){ motorbwd(); } }如果 (blindposition = = 3
步骤49:电压调整
注意:您可能需要改变转动方向,如果电压下降。
步骤50:粘贴
步骤51:线穿线
步骤52:测试和使用
DISP压水堆:
设置开放时间:
设置关闭时间:
手动触发:
步骤53:文件