最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

可编程自动盲开瓶器(8)

时间:2017-05-18 10:39来源:未知 作者:admin 点击:
= 2; //Green detection from other Arduinoint redpin = 3; //Red detection from other Arduino////////////////////////////////////////////////////////////////////////////////////////////////////////////
= 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(seconds, 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

连接<u>上</u>Arduino和选择合适的板和COM端口,以前所做的那样。然后继续上传代码。

 
  • 可编程自动盲开瓶器blindopener2m_diytronics.ino
    下载

步骤49:电压调整

可编程自动盲开瓶器

最后一步是调整硬件从升压转换器的输出电压。

首先,除去正输出线和电源的盲刀采用直流输入。用你的万用表,将积极探索正极端子块和黑探讨负端子(标记在PCB)。

然后将电位器用螺丝刀到多表的读数是12v。

注意:您可能需要改变转动方向,如果电压下降。

最后取下电源并重新插入正极线。

步骤50:粘贴

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片