Winding machine DC motor Automatic Stop relay
This is my test project Automatically Stop off DC motor or 220v motor via a relay
Components and supplies
1
SparkFun 7-Segment Serial Display - Red
1
Gravity:Digital Push Button (Yellow)
1
Geared DC Motor, 12 V
1
Arduino UNO
1
Reed Switch, Magnet Switch Set
1
Signal Relay, 5 VDC
Apps and platforms
1
Arduino IDE
Project description
Code
Winding machine code.ino
arduino
1 2///////////// PROJECT BY: GeoProgrammer 3#include "SevSeg.h" 4SevSeg 5 sevseg; 6 7int Button1 = A0; 8int Button2 = A1; 9int StartButton = A2; 10int 11 magnetsensor = A3; 12int RELE = A4; 13float Speed =370; 14int SetNumber =0; 15boolean 16 pauseNumber = false ; 17boolean lock = false; 18boolean magnetlock =true; 19int 20 magnetflag = 0; 21void setup() { 22 pinMode(Button1,INPUT_PULLUP); 23 pinMode(Button2,INPUT_PULLUP); 24 25 pinMode(magnetsensor,INPUT_PULLUP); 26 pinMode(StartButton,INPUT_PULLUP); 27 28 pinMode(RELE,OUTPUT); 29 byte numDigits = 4; 30 byte digitPins[] = {13, 31 10, 9, 2}; 32 byte segmentPins[] = {12, 8, 4, 6,7, 11, 3, 5}; 33 34 bool 35 resistorsOnSegments = true; 36 byte hardwareConfig = COMMON_CATHODE; 37 bool 38 updateWithDelays = false; 39 bool leadingZeros = true; 40 bool disableDecPoint 41 = true; 42 43 sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, 44 resistorsOnSegments, 45 updateWithDelays, leadingZeros, disableDecPoint); 46 47 sevseg.setBrightness(50); 48 digitalWrite(RELE,HIGH); 49 50} 51 52void 53 loop() { 54 55 for (long i = 0; i <= Speed; i++){ 56 sevseg.setNumber(SetNumber 57 ,0); 58 sevseg.refreshDisplay(); 59 } 60 //-------------------------------------------------------------Knopka 61 + 62 63if (lock == false){ 64 65if(digitalRead(Button2)==LOW){ 66 Speed 67 = 370; 68 SetNumber ++; 69 if(SetNumber > 9999) 70 SetNumber 71 = 0; 72 } 73} 74 75//-----------------------------------------------------------------Knopka 76 - 77 if (lock == false){ 78 if(digitalRead(Button1)==LOW){ 79 80 Speed = 370; 81 SetNumber--; 82 if(SetNumber 83 < 0) 84 SetNumber = 0; 85 } 86 } 87 88//-------------------------------------------------------------orive 89 knopka ganuleba 90 if (digitalRead(Button1)==LOW && digitalRead(Button2)==LOW 91 ){ 92 Speed = 370; 93 sevseg.blank(); 94 delay(350); 95 96 magnetlock = true; 97 lock = false; 98 SetNumber=0; 99 100 digitalWrite(RELE,HIGH); 101 } 102//----------------------------------------------------------------START 103 Winding 104 105 106 if(digitalRead(StartButton)==LOW){ 107 108 Speed=300; 109 110 if(SetNumber < 0){ 111 SetNumber = 0; 112 digitalWrite(RELE,HIGH); 113 114 } 115 116 if(SetNumber > 0){ 117 lock = true; 118 magnetlock 119 = false; 120 sevseg.blank(); 121 delay(500); 122 digitalWrite(RELE,LOW); 123 124 } 125 } 126 127 //---------------------------------------------------------------------------Magnet 128 129 if (magnetlock == false){ 130 if(digitalRead(magnetsensor)==LOW){ 131 132 if 133 ( magnetflag ==0){ 134 Speed = 10; 135 SetNumber--; 136 137 if (0==SetNumber){ 138 digitalWrite(RELE,HIGH); 139 sevseg.blank(); 140 141 delay(350); 142 lock = false; 143 magnetlock 144 = true; 145 } 146 } 147 magnetflag=1; 148 149 } 150 else if( magnetflag==1) { 151 magnetflag 152 =0; 153 } 154 } 155 156} 157
Winding machine code.ino
arduino
1 2///////////// PROJECT BY: GeoProgrammer 3#include "SevSeg.h" 4SevSeg sevseg; 5 6int Button1 = A0; 7int Button2 = A1; 8int StartButton = A2; 9int magnetsensor = A3; 10int RELE = A4; 11float Speed =370; 12int SetNumber =0; 13boolean pauseNumber = false ; 14boolean lock = false; 15boolean magnetlock =true; 16int magnetflag = 0; 17void setup() { 18 pinMode(Button1,INPUT_PULLUP); 19 pinMode(Button2,INPUT_PULLUP); 20 pinMode(magnetsensor,INPUT_PULLUP); 21 pinMode(StartButton,INPUT_PULLUP); 22 pinMode(RELE,OUTPUT); 23 byte numDigits = 4; 24 byte digitPins[] = {13, 10, 9, 2}; 25 byte segmentPins[] = {12, 8, 4, 6,7, 11, 3, 5}; 26 27 bool resistorsOnSegments = true; 28 byte hardwareConfig = COMMON_CATHODE; 29 bool updateWithDelays = false; 30 bool leadingZeros = true; 31 bool disableDecPoint = true; 32 33 sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, 34 updateWithDelays, leadingZeros, disableDecPoint); 35 sevseg.setBrightness(50); 36 digitalWrite(RELE,HIGH); 37 38} 39 40void loop() { 41 42 for (long i = 0; i <= Speed; i++){ 43 sevseg.setNumber(SetNumber ,0); 44 sevseg.refreshDisplay(); 45 } 46 //-------------------------------------------------------------Knopka + 47 48if (lock == false){ 49 50if(digitalRead(Button2)==LOW){ 51 Speed = 370; 52 SetNumber ++; 53 if(SetNumber > 9999) 54 SetNumber = 0; 55 } 56} 57 58//-----------------------------------------------------------------Knopka - 59 if (lock == false){ 60 if(digitalRead(Button1)==LOW){ 61 Speed = 370; 62 SetNumber--; 63 if(SetNumber < 0) 64 SetNumber = 0; 65 } 66 } 67 68//-------------------------------------------------------------orive knopka ganuleba 69 if (digitalRead(Button1)==LOW && digitalRead(Button2)==LOW ){ 70 Speed = 370; 71 sevseg.blank(); 72 delay(350); 73 magnetlock = true; 74 lock = false; 75 SetNumber=0; 76 digitalWrite(RELE,HIGH); 77 } 78//----------------------------------------------------------------START Winding 79 80 81 if(digitalRead(StartButton)==LOW){ 82 83 Speed=300; 84 if(SetNumber < 0){ 85 SetNumber = 0; 86 digitalWrite(RELE,HIGH); 87 } 88 89 if(SetNumber > 0){ 90 lock = true; 91 magnetlock = false; 92 sevseg.blank(); 93 delay(500); 94 digitalWrite(RELE,LOW); 95 } 96 } 97 98 //---------------------------------------------------------------------------Magnet 99 if (magnetlock == false){ 100 if(digitalRead(magnetsensor)==LOW){ 101 102 if ( magnetflag ==0){ 103 Speed = 10; 104 SetNumber--; 105 if (0==SetNumber){ 106 digitalWrite(RELE,HIGH); 107 sevseg.blank(); 108 delay(350); 109 lock = false; 110 magnetlock = true; 111 } 112 } 113 magnetflag=1; 114 } 115 else if( magnetflag==1) { 116 magnetflag =0; 117 } 118 } 119 120} 121
Downloadable files
winder_scheme_dc_motor_2_QkeyYJzrPH.jpg
winder_scheme_dc_motor_2_QkeyYJzrPH.jpg

Comments
Only logged in users can leave comments