Barndoor tracker

An easy way to step in astrophotography. A barndoor tracker based on an Arduino and a stepper motor from an old laser printer.

barndoor

Barndoor tracker prototype

Bardoor

By pressing reset button, the tracker closes at full speed until the microswitch triggers. The tracker then changes its rotation direction at controlled speed. Pressing manually the switch + reset makes the tracker open 50mm at full speed (to dissassemble the thread quickly).

 

barndoor

Octobre 2015 – Schwarzenbachsperre – M31 objectif 135mm (stack) – Suivi barndoor

 

Original calculation :

 

La 347 La²+Lb²= 240818 23 hours 82800 0,0041780742 deg/sec
Lb 347 2LaLb= 240818 56 min 3360 0,2506844498 deg/min
pas vis 1 mm/rev 4 sec 4 15,0410669873 deg/h
res/stepper 400 step/rev 86164
Lscrew orig 40 mm 86164,1 exactly according to internet quartz 16000000 Hz
correction factor 1 86164,1 prescaler 64
 
alpha (rad) alpha (deg) alpha delta Lscrew nb of steps nb of 1/2steps total polim2 approx polim3 approx error aprox time elapsed (microsec) time for 1 step total time (min) timer1 328 round
0,1153376943 6,6083631004 0 40 0 0 9812993 9811017,80517031 -1975,1948296893 0 98968,6928186305 0 24741,1732046576 24741 ,
0,1182244586 6,7737625158 0,1653994154 41 400 400 9814409,48522756 9812711,62446374 -1697,860763818 39587477,1274522 98977,1475584853 0,6597912855 24743,2868896213 24743 ,
0,1211114696 6,939176061 0,1654135452 42 400 800 9815918,72984039 9814481,33321669 -1437,3966237046 39590859,0233941 98985,810758708 1,3196389358 24745,452689677 24745 ,
0,1239987333 7,1046040844 0,1654280234 43 400 1200 9817520,73383851 9816327,34998916 -1193,3838493507 39594324,3034832 98994,6825826782 1,9795443409 24747,6706456695 24748 ,
0,1268862558 7,2700469346 0,1654428502 44 400 1600 9819215,4972219 9818250,09334115 -965,4038807582 39597873,0330713 99003,7631979201 2,6395088915 24749,94079948 24750 ,
0,1297740431 7,4355049606 0,165458026 45 400 2000 9821003,01999058 9820249,98183266 -753,038157925 39601505,279168 99013,0527759483 3,2995339794 24752,2631939871 24752 ,
0,1326621014 7,6009785117 0,165473551 46 400 2400 9822883,30214454 9822327,43402368 -555,8681208529 39605221,1103793 99022,551492312 3,9596209979 24754,637873078 24755 ,
0,1355504368 7,7664679373 0,1654894256 47 400 2800 9824856,34368377 9824482,86847423 -373,4752095398 39609020,5969248 99032,2595265723 4,6197713412 24757,0648816431 24757 ,
0,1384390553 7,9319735872 0,1655056499 48 400 3200 9826922,14460829 9826716,7037443 -205,4408639856 39612903,8106289 99042,1770624607 5,2799864047 24759,5442656152 24760 ,
0,1413279631 8,0974958116 0,1655222244 49 400 3600 9829080,70491808 9829029,35839389 -51,3465241939 39616870,8249843 99052,3042876001 5,9402675852 24762,0760719 24762 ,
0,1442171663 8,2630349609 0,1655391493 50 400 4000 9831332,02461316 9831421,250983 89,2263698373 39620921,71504 99062,6413937903 6,6006162804 24764,6603484476 24765 ,
0,147106671 8,428591386 0,165556425 51 400 4400 9833676,10369352 9833892,80007163 216,69637811 39625056,5575161 99073,1885768953 7,2610338897 24767,2971442238 24767 ,
0,1499964833 8,5941654377 0,1655740518 52 400 4800 9836112,94215915 9836444,42421978 331,4820606243 39629275,4307581 99083,946036873 7,9215218135 24769,9865092183 24770 ,
0,1528866095 8,7597574677 0,16559203 53 400 5200 9838642,54001007 9839076,54198745 434,0019773766 39633578,4147492 99094,913977769 8,5820814538 24772,7284944423 24773 ,
0,1557770555 8,9253678276 0,1656103599 54 400 5600 9841264,89724626 9841789,57193463 524,674688369 39637965,5911076 99106,0926077616 9,2427142136 24775,5231519404 24776 ,
0,1586678277 9,0909968696 0,165629042 55 400 6000 9843980,01386774 9844583,93262134 603,9187536035 39642437,0431046 99117,4821391181 9,9034214977 24778,3705347795 24778 ,
0,161558932 9,2566449461 0,1656480765 56 400 6400 9846787,8898745 9847460,04260757 672,1527330764 39646992,8556472 99129,0827883413 10,564204712 24781,2706970853 24781 ,
0,1644503747 9,4223124099 0,1656674638 57 400 6800 9849688,52526653 9850418,32045332 729,7951867878 39651633,1153365 99140,8947759383 11,2250652639 24784,2236939846 24784 ,
0,167342162 9,5879996143 0,1656872044 58 400 7200 9852681,92004385 9853459,18471859 777,2646747399 39656357,9103753 99152,9183266738 11,8860045624 24787,2295816684 24787 ,
0,1702342999 9,7537069128 0,1657072985 59 400 7600 9855768,07420644 9856583,05396338 814,9797569346 39661167,3306695 99165,153669457 12,5470240179 24790,2884173642 24790 ,
0,1731267947 9,9194346594 0,1657277466 60 400 8000 9858946,98775432 9859790,34674769 843,3589933664 39666061,4677828 99177,6010373774 13,2081250424 24793,4002593444 24793 ,
0,1760196527 10,0851832084 0,165748549 61 400 8400 9862218,66068748 9863081,48163152 862,8209440392 39671040,414951 99190,2606677338 13,8693090493 24796,5651669335 24797 ,
0,1789128798 10,2509529145 0,1657697061 62 400 8800 9865583,09300591 9866456,87717486 873,7841689512 39676104,2670935 99203,1328020169 14,5305774537 24799,7832005042 24800 ,
0,1818064825 10,416744133 0,1657912184 63 400 9200 9869040,28470963 9869916,95193773 876,6672281045 39681253,1208068 99216,217685952 15,1919316724 24803,054421488 24803 ,
0,1847004668 10,5825572192 0,1658130863 64 400 9600 9872590,23579862 9873462,12448012 871,8886814993 39686487,0743808 99229,5155694927 15,8533731236 24806,3788923732 24806 ,
0,1875948389 10,7483925293 0,1658353101 65 400 10000 9876232,9462729 9877092,81336203 859,86708913 39691806,2277971 99243,0267068495 16,5149032274 24809,7566767124 24810 ,
0,1904896052 10,9142504196 0,1658578903 66 400 10400 9879968,41613246 9880809,43714346 841,0210110042 39697210,6827398 99256,7513564782 17,1765234055 24813,1878391195 24813 ,
0,1933847718 11,080131247 0,1658808273 67 400 10800 9883796,64537729 9884612,41438441 815,7690071166 39702700,5425913 99270,6897811308 17,8382350812 24816,6724452827 24817 ,
0,196280345 11,2460353686 0,1659041217 68 400 11200 9887717,63400741 9888502,16364488 784,529637469 39708275,9124523 99284,8422478343 18,5000396797 24820,2105619586 24820 ,
0,1991763309 11,4119631423 0,1659277737 69 400 11600 9891731,3820228 9892479,10348487 747,7214620616 39713936,8991337 99299,209027928 19,1619386281 24823,802256982 24824 ,
0,202072736 11,5779149261 0,1659517839 70 400 12000 9895837,88942348 9896543,65246438 705,7630408946 39719683,6111712 99313,7903970674 19,8239333549 24827,4475992669 24827 ,
0,2049695663 11,7438910788 0,1659761527 71 400 12400 9900037,15620944 9900696,2291434 659,0729339682 39725516,158827 99328,5866352429 20,4860252909 24831,1466588107 24831 ,
0,2078668282 11,9098919594 0,1660008806 72 400 12800 9904329,18238067 9904937,25208195 608,0697012804 39731434,6540972 99343,5980267918 21,1482158685 24834,899506698 24835 ,
0,210764528 12,0759179275 0,1660259681 73 400 13200 9908713,96793719 9909267,13984002 553,1719028335 39737439,2107167 99358,8248604224 21,810506522 24838,7062151056 24839 ,
0,213662672 12,2419693431 0,1660514156 74 400 13600 9913191,51287899 9913686,31097761 494,7980986256 39743529,9441689 99374,2674292144 22,4728986877 24842,5668573036 24843 ,
0,2165612663 12,4080465668 0,1660772237 75 400 14000 9917761,81720606 9918195,18405472 433,3668486588 39749706,9716857 99389,9260306492 23,1353938039 24846,4815076623 24846 ,
0,2194603174 12,5741499596 0,1661033928 76 400 14400 9922424,88091842 9922794,17763135 369,2967129331 39755970,4122597 99405,8009666203 23,7979933108 24850,4502416551 24850 ,
0,2223598316 12,7402798831 0,1661299235 77 400 14800 9927180,70401605 9927483,7102675 303,0062514432 39762320,3866481 99421,8925434438 24,4606986506 24854,4731358609 24854 ,
0,2252598151 12,9064366993 0,1661568162 78 400 15200 9932029,28649897 9932264,20052316 234,9140241966 39768757,0173775 99438,2010718949 25,1235112675 24858,5502679737 24859 ,
0,2281602743 13,0726207708 0,1661840715 79 400 15600 9936970,62836716 9937136,06695835 165,4385911897 39775280,4287579 99454,7268671926 25,786432608 24862,6817167982 24863 ,
0,2310612156 13,2388324607 0,1662116899 80 400 16000 9942004,72962064 9942099,72813306 94,9985124227 39781890,746877 99471,4702490692 26,4494641204 24866,8675622673 24867 ,
0,2339626452 13,4050721326 0,1662396719 81 400 16400 9947131,5902594 9947155,60260729 24,0123478957 39788588,0996277 99488,431541672 27,1126072554 24871,107885418 24871 ,
0,2368645695 13,5713401507 0,1662680181 82 400 16800 9952351,21028343 9952304,10894104 -47,1013423912 39795372,6166688 99505,6110737776 27,7758634657 24875,4027684444 24875 ,
0,239766995 13,7376368798 0,1662967291 83 400 17200 9957663,58969275 9957545,66569431 -117,9239984378 39802244,429511 99523,0091786191 28,4392342062 24879,7522946548 24880 ,
0,2426699279 13,9039626851 0,1663258053 84 400 17600 9963068,72848735 9962880,6914271 -188,0370602459 39809203,6714476 99540,626193997 29,1027209341 24884,1565484993 24884 ,
0,2455733747 14,0703179325 0,1663552474 85 400 18000 9968566,62666722 9968309,60469941 -257,0219678134 39816250,4775988 99558,4624622887 29,7663251087 24888,6156155722 24889 ,
0,2484773418 14,2367029884 0,1663850559 86 400 18400 9974157,28423238 9973832,82407124 -324,4601611402 39823384,9849155 99576,5183304504 30,4300481918 24893,1295826126 24893 ,
0,2513818355 14,4031182198 0,1664152314 87 400 18800 9979840,70118281 9979450,76810258 -389,933080228 39830607,3321802 99594,7941500569 31,0938916473 24897,6985375142 24898 ,
0,2542868623 14,5695639943 0,1664457745 88 400 19200 9985616,87751853 9985163,85535345 -453,0221650749 39837917,6600228 99613,2902773139 31,7578569416 24902,3225693285 24902 ,
0,2571924286 14,7360406801 0,1664766858 89 400 19600 9991485,81323952 9990972,50438384 -513,3088556826 39845316,1109255 99632,0070730167 32,4219455435 24907,0017682542 24907 ,
0,2600985408 14,9025486459 0,1665079658 90 400 20000 9997447,5083458 9996877,13375375 -570,374592049 39852802,8292067 99650,9449027288 33,086158924 24911,7362256822 24912 ,
0,2630052054 15,0690882612 0,1665396153 91 400 20400 10003501,9628374 10002878,1620232 -623,800814176 39860377,9610915 99670,1041366195 33,7504985567 24916,5260341549 24917 ,
0,2659124289 15,235659896 0,1665716348 92 400 20800 10009649,1767142 10008976,0077521 -673,1689620633 39868041,6546478 99689,4851495983 34,4149659176 24921,3712873996 24921 ,
0,2688202177 15,4022639209 0,1666040249 93 400 21200 10015889,1499763 10015171,0895006 -718,0604757108 39875794,0598393 99709,088321292 35,0795624852 24926,272080323 24926 ,
0,2717285783 15,5689007072 0,1666367863 94 400 21600 10022221,8826237 10021463,8258286 -758,0567951184 39883635,3285168 99728,9140360989 35,7442897407 24931,2285090247 24931 ,
0,2746375171 15,7355706268 0,1666699196 95 400 22000 10028647,3746564 10027854,6352961 -792,7393602841 39891565,6144396 99748,9626831237 36,4091491676 24936,2406707809 24936 ,
0,2775470408 15,9022740523 0,1667034255 96 400 22400 10035165,6260743 10034343,9364631 -821,6896112133 39899585,0732495 99769,2346563562 37,0741422522 24941,308664089 24941 ,
0,2804571557 16,0690113569 0,1667373046 97 400 22800 10041776,6368776 10040932,1478897 -844,4889879003 39907693,8625425 99789,7303545385 37,7392704832 24946,4325886346 24946 ,
0,2833678685 16,2357829146 0,1667715577 98 400 23200 10048480,4070661 10047619,6881357 -860,7189303469 39915892,1418154 99810,4501812628 38,4045353522 24951,6125453157 24952 ,
0,2862791856 16,4025890998 0,1668061852 99 400 23600 10055276,9366399 10054406,9757613 -869,9608785547 39924180,0725051 99831,3945449999 39,0699383534 24956,84863625 24957 ,
0,2891911137 16,5694302879 0,1668411881 100 400 24000 10062166,225599 10061294,4293264 -871,79627252 39932557,8179999 99852,5638590452 39,7354809837 24962,1409647613 24962 ,
0,2921036592 16,7363068548 0,1668765669 101 400 24400 10069148,2739433 10068282,4673911 -865,8065522481 39941025,5436181 99873,9585416832 40,4011647428 24967,4896354208 24967 ,
0,2950168288 16,9032191771 0,1669123223 102 400 24800 10076223,081673 10075371,5085152 -851,5731577352 39949583,4166733 99895,5790160669 41,0669911331 24972,8947540167 24973 ,
0,297930629 17,0701676322 0,1669484551 103 400 25200 10083390,6487879 10082561,9712589 -828,677528983 39958231,6064267 99917,4257103402 41,7329616599 24978,3564275851 24978 ,
0,3008450665 17,2371525981 0,1669849659 104 400 25600 10090650,9752881 10089854,2741821 -796,7011059895 39966970,2841361 99939,499057558 42,3990778313 24983,8747643895 24984 ,
0,3037601478 17,4041744536 0,1670218556 105 400 26000 10098004,0611735 10097248,8358448 -755,2253287565 39975799,6230232 99961,7994958728 43,0653411583 24989,4498739682 24989 ,
0,3066758796 17,5712335784 0,1670591247 106 400 26400 10105449,9064443 10104746,074807 -703,8316372857 39984719,7983491 99984,3274683921 43,731753155 24995,081867098 24995 ,
0,3095922685 17,7383303525 0,1670967741 107 400 26800 10112988,5111003 10112346,4096288 -642,1014715713 39993730,9873568 100007,083423317 44,3983153381 25000,7708558293 25001 ,
0,3125093211 17,905465157 0,1671348046 108 400 27200 10120619,8751416 10120050,25887 -569,6162716188 40002833,3693269 100030,067813868 45,0650292276 25006,5169534671 25007 ,
0,3154270441 18,0726383738 0,1671732167 109 400 27600 10128343,9985682 10127858,0410908 -485,9574774262 40012027,1255473 100053,281098446 45,7318963463 25012,3202746115 25012 ,
0,3183454443 18,2398503853 0,1672120115 110 400 28000 10136160,8813801 10135770,1748511 -390,7065289933 40021312,4393784 100076,723740547 46,3989182203 25018,1809351367 25018 ,
0,3212645282 18,4071015748 0,1672511895 111 400 28400 10144070,5235773 10143787,078711 -283,444866322 40030689,4962188 100100,396208773 47,0660963786 25024,0990521933 25024 ,
0,3241843027 18,5743923264 0,1672907516 112 400 28800 10152072,9251597 10151909,1712303 -163,7539294064 40040158,4835093 100124,298977 47,7334323533 25030,0747442499 25030 ,
0,3271047743 18,7417230251 0,1673306987 113 400 29200 10160168,0861274 10160136,8709692 -31,2151582558 40049719,5907999 100148,432524264 48,4009276798 25036,1081310661 25036 ,
0,3300259499 18,9090940565 0,1673710314 114 400 29600 10168356,0064804 10168470,5964876 114,5900071375 40059373,0097058 100172,797334816 49,0685838966 25042,199333704 25042 ,
0,3329478361 19,076505807 0,1674117506 115 400 30000 10176636,6862187 10176910,7663455 274,0801267717 40069118,9339264 100197,393898228 49,7364025455 25048,3484745569 25048 ,
0,3358704398 19,2439586641 0,1674528571 116 400 30400 10185010,1253423 10185457,7991029 447,6737606432 40078957,559291 100222,222709343 50,4043851715 25054,5556773358 25055 ,
0,3387937677 19,4114530158 0,1674943517 117 400 30800 10193476,3238511 10194112,1133198 635,7894687559 40088889,0837372 100247,284268284 51,0725333229 25060,8210670711 25061 ,
0,3417178266 19,5789892511 0,1675362353 118 400 31200 10202035,2817452 10202874,1275563 838,8458111081 40098913,7073137 100272,5790806 51,7408485514 25067,1447701501 25067 ,
0,3446426234 19,7465677599 0,1675785088 119 400 31600 10210686,9990246 10211744,2603723 1057,2613477018 40109031,6322401 100298,10765718 52,4093324119 25073,526914295 25074 ,
0,3475681647 19,9141889328 0,1676211729 120 400 32000 10219431,4756893 10220722,9303278 1291,4546385333 40119243,062872 100323,8705143 53,077986463 25079,9676285749 25080 ,
0,3504944576 20,0818531613 0,1676642285 121 400 32400 10228268,7117392 10229810,5559828 1541,8442436066 40129548,2057199 100349,868173745 53,7468122664 25086,4670434362 25086 ,
0,3534215087 20,2495608379 0,1677076766 122 400 32800 10237198,7071745 10239007,5558974 1808,8487229198 40139947,269498 100376,101162687 54,4158113876 25093,0252906717 25093 ,
0,356349325 20,4173123558 0,1677515179 123 400 33200 10246221,461995 10248314,3486315 2092,8866364714 40150440,4650747 100402,570013874 55,0849853953 25099,6425034684 25100 ,
0,3592779134 20,5851081093 0,1677957535 124 400 33600 10255336,9762008 10257731,3527451 2394,3765442669 40161028,0055495 100429,275265561 55,7543358621 25106,3188163901 25106 ,
0,3622072807 20,7529484934 0,1678403841 125 400 34000 10264545,2497919 10267258,9867982 2713,7370062973 40171710,1062242 100456,217461525 56,4238643638 25113,0543653812 25113 ,
0,3651374339 20,9208339041 0,1678854107 126 400 34400 10273846,2827682 10276897,6693508 3051,386582572 40182486,9846099 100483,397151228 57,0935724802 25119,849287807 25120 ,
0,3680683799 21,0887647383 0,1679308342 127 400 34800 10283240,0751299 10286647,8189629 3407,7438330837 40193358,8604912 100510,814889664 57,7634617946 25126,7037224159 25127 ,
0,3710001256 21,2567413938 0,1679766555 128 400 35200 10292726,6268768 10296509,8541946 3783,227317838 40204325,9558655 100538,471237578 58,4335338939 25133,6178093944 25134 ,
0,373932678 21,4247642694 0,1680228756 129 400 35600 10302305,938009 10306484,1936058 4178,2555968296 40215388,4950311 100566,36676133 59,1037903688 25140,5916903324 25141 ,
0,376866044 21,5928337649 0,1680694955 130 400 36000 10311978,0085264 10316571,2557565 4593,2472300623 40226546,7045318 100594,502033079 59,7742328138 25147,6255082697 25148 ,
0,3798002308 21,7609502808 0,168116516 131 400 36400 10321742,8384292 10326771,4592067 5028,6207775362 40237800,8132315 100622,877630713 60,4448628274 25154,7194076783 25155 ,
0,3827352452 21,9291142189 0,1681639381 132 400 36800 10331600,4277172 10337085,2225165 5484,7947992496 40249151,0522853 100651,494137891 61,1156820116 25161,8735344727 25162 ,
0,3856710943 22,0973259818 0,1682117629 133 400 37200 10341550,7763906 10347512,9642457 5962,1878552009 40260597,6551563 100680,352144177 61,7866919725 25169,0880360442 25169 ,
0,3886077851 22,265585973 0,1682599912 134 400 37600 10351593,8844491 10358055,1029545 6461,2185053937 40272140,8576707 100709,452244912 62,4578943202 25176,363061228 25176 ,
0,3915453248 22,4338945972 0,1683086242 135 400 38000 10361729,751893 10368712,0572028 6982,3053098265 40283780,8979648 100738,795041437 63,1292906685 25183,6987603592 25184 ,
0,3944837203 22,6022522599 0,1683576627 136 400 38400 10371958,3787222 10379484,2455507 7525,8668284994 40295518,0165747 100768,381140927 63,8008826354 25191,0952852316 25191 ,
0,3974229788 22,7706593678 0,1684071079 137 400 38800 10382279,7649366 10390372,086558 8092,3216214124 40307352,4563706 100798,211156647 64,472671843 25198,5527891618 25199 ,
0,4003631074 22,9391163285 0,1684569607 138 400 39200 10392693,9105363 10401375,9987849 8682,0882485639 40319284,4626589 100828,285707766 65,1446599174 25206,0714269414 25206 ,
0,4033041133 23,1076235506 0,1685072222 139 400 39600 10403200,8155213 10412496,4007913 9295,5852699578 40331314,2831063 100858,605419595 65,8168484888 25213,6513548988 25214 ,
0,4062460035 23,276181444 0,1685578934 140 400 40000 10413800,4798916 10423733,7111372 9933,2312455904 40343442,1678381 100889,170923456 66,4892391916 25221,292730864 25221 ,
0,4091887853 23,4447904194 0,1686089754 141 400 40400 10424492,9036472 10435088,3483826 10595,4447354637 40355668,3693823 100919,982856873 67,1618336644 25228,9957142183 25229 ,
0,4121324658 23,6134508885 0,1686604692 142 400 40800 10435278,086788 10446560,7310876 11282,6442995779 40367993,1427493 100951,041863457 67,8346335501 25236,7604658643 25237 ,
0,4150770522 23,7821632644 0,1687123759 143 400 41200 10446156,0293141 10458151,277812 11995,2484979294 40380416,7453829 100982,348593102 68,5076404959 25244,5871482754 25245 ,
0,4180225518 23,9509279611 0,1687646966 144 400 41600 10457126,7312255 10469860,407116 12733,6758905221 40392939,4372406 101013,903701885 69,1808561531 25252,4759254713 25252 ,
0,4209689719 24,1197453935 0,1688174325 145 400 42000 10468190,1925222 10481688,5375595 13498,345037356 40405561,4807541 101045,707852183 69,8542821778 25260,4269630458 25260 ,
0,4239163196 24,288615978 0,1688705845 146 400 42400 10479346,4132041 10493636,0877026 14289,6744984277 40418283,1408733 101077,761712745 70,5279202302 25268,4404281861 25268 ,
0,4268646022 24,4575401319 0,1689241539 147 400 42800 10490595,3932714 10505703,4761051 15108,0828337409 40431104,6850978 101110,065958613 71,2017719749 25276,5164896533 25277 ,
0,4298138272 24,6265182736 0,1689781417 148 400 43200 10501937,1327239 10517891,1213272 15953,988603292 40444026,3834453 101142,621271298 71,8758390813 25284,6553178245 25285 ,
0,4327640017 24,7955508227 0,1690325491 149 400 43600 10513371,6315617 10530199,4419288 16827,8103670869 40457048,5085192 101175,428338725 72,5501232231 25292,8570846813 25293 ,
0,4357151332 24,9646381999 0,1690873772 150 400 44000 10524898,8897848 10542628,8564699 17729,9666851182 40470171,3354901 101208,487855316 73,2246260787 25301,1219638289 25301 ,
0,4386672289 25,1337808272 0,1691426273 151 400 44400 10536518,9073931 10555179,7835105 18660,8761173915 40483395,1421263 101241,80052207 73,8993493311 25309,4501305174 25309 ,
0,4416202963 25,3029791276 0,1691983004 152 400 44800 10548231,6843868 10567852,6416107 19620,9572239034 40496720,2088278 101275,367046502 74,5742946679 25317,8417616256 25318 ,
0,4445743429 25,4722335254 0,1692543978 153 400 45200 10560037,2207657 10580647,8493303 20610,6285646558 40510146,818601 101309,188142818 75,2494637815 25326,2970357045 25326 ,
0,4475293759 25,641544446 0,1693109206 154 400 45600 10571935,5165299 10593565,8252295 21630,3086996507 40523675,2571271 101343,264531831 75,9248583692 25334,8161329576 25335 ,
0,4504854029 25,810912316 0,1693678701 155 400 46000 10583926,5716793 10606606,9878682 22680,4161888827 40537305,8127322 101377,596941101 76,6004801327 25343,3992352752 25343 ,
0,4534424313 25,9803375634 0,1694252474 156 400 46400 10596010,3862141 10619771,7558065 23761,3695923556 40551038,7764403 101412,186104976 77,276330779 25352,046526244 25352 ,
0,4564004686 26,1498206173 0,1694830538 157 400 46800 10608186,9601341 10633060,5476042 24873,5874700677 40564874,4419903 101447,032764547 77,9524120197 25360,7581911367 25361 ,
0,4593595223 26,3193619079 0,1695412906 158 400 47200 10620456,2934394 10646473,7818215 26017,488382021 40578813,1058187 101482,1376678 78,6287255714 25369,53441695 25370 ,
0,4623196 26,4889618668 0,169599959 159 400 47600 10632818,38613 10660011,8770183 27193,4908882137 40592855,0671201 101517,501569632 79,3052731559 25378,375392408 25378 ,
0,4652807092 26,658620927 0,1696590602 160 400 48000 10645273,2382059 10673675,2517546 28402,0135486461 40607000,6278528 101553,125231853 79,9820564997 25387,2813079633 25387 ,
0,4682428575 26,8283395225 0,1697185955 161 400 48400 10657820,8496671 10687464,3245904 29643,4749233201 40621250,0927413 101589,009423288 80,6590773346 25396,2523558219 25396 ,
0,4712060525 26,9981180887 0,1697785662 162 400 48800 10670461,2205135 10701379,5140857 30918,2935722321 40635603,7693151 101625,154919832 81,3363373974 25405,2887299581 25405 ,
0,4741703018 27,1679570623 0,1698389736 163 400 49200 10683194,3507452 10715421,2388006 32226,888055386 40650061,9679329 101661,562504435 82,0138384302 25414,3906261087 25414 ,
0,477135613 27,3378568814 0,1698998191 164 400 49600 10696020,2403622 10729589,917295 33569,6769327782 40664625,0017739 101698,232967211 82,6915821802 25423,5582418028 25424 ,
0,4801019939 27,5078179852 0,1699611038 165 400 50000 10708938,8893645 10743885,9681289 34947,0787644107 40679293,1868844 101735,167105497 83,3695704 25432,7917763742 25433 ,
0,4830694521 27,6778408145 0,1700228293 166 400 50400 10721950,2977521 10758309,8098623 36359,5121102836 40694066,8421988 101772,365723845 84,0478048474 25442,0914309611 25442 ,
0,4860379953 27,8479258112 0,1700849967 167 400 50800 10735054,4655249 10772861,8610553 37807,3955303971 40708946,2895378 101809,8296341 84,7262872855 25451,4574085251 25451 ,
0,4890076312 28,0180734187 0,1701476075 168 400 51200 10748251,392683 10787542,5402678 39291,1475847475 40723931,8536401 101847,559655531 85,4050194831 25460,8899138828 25461 ,
0,4919783677 28,1882840817 0,170210663 169 400 51600 10761541,0792264 10802352,2660597 40811,1868333407 40739023,8622126 101885,556614722 86,0840032141 25470,3891536805 25470 ,
0,4949502125 28,3585582464 0,1702741647 170 400 52000 10774923,5251551 10817291,4569913 42367,9318361748 40754222,6458889 101923,821345778 86,7632402582 25479,9553364445 25480 ,
0,4979231734 28,5288963602 0,1703381138 171 400 52400 10788398,730469 10832360,5316223 43961,8011532463 40769528,5383113 101962,3546903 87,4427324005 25489,5886725751 25490 ,
0,5008972583 28,6992988721 0,1704025119 172 400 52800 10801966,6951683 10847559,9085128 45593,2133445609 40784941,8761202 102001,157497473 88,1224814318 25499,2893743682 25499 ,
0,503872475 28,8697662324 0,1704673603 173 400 53200 10815627,4192528 10862890,0062229 47262,5869701132 40800462,9989892 102040,230624098 88,8024891484 25509,0576560245 25509 ,
0,5068488314 29,0402988929 0,1705326605 174 400 53600 10829380,9027226 10878351,2433125 48970,3405899052 40816092,2496393 102079,574934657 89,4827573526 25518,8937336644 25519 ,
0,5098263355 29,2108973068 0,1705984138 175 400 54000 10843227,1455777 10893944,0383416 50716,8927639388 40831829,973863 102119,191301383 90,1632878522 25528,7978253456 25529 ,
0,512804995 29,3815619286 0,1706646219 176 400 54400 10857166,147818 10909668,8098702 52502,6620522123 40847676,520553 102159,080604292 90,8440824608 25538,770151073 25539 ,
0,5157848181 29,5522932147 0,1707312861 177 400 54800 10871197,9094437 10925525,9764584 54328,067014724 40863632,2417169 102199,243731294 91,5251429982 25548,8109328235 25549 ,
0,5187658127 29,7230916226 0,1707984079 178 400 55200 10885322,4304546 10941515,956666 56193,5262114778 40879697,4925176 102239,681578171 92,2064712898 25558,9203945428 25559 ,
0,5217479868 29,8939576114 0,1708659888 179 400 55600 10899539,7108508 10957639,1690532 58099,4582024701 40895872,6312685 102280,395048699 92,8880691669 25569,0987621748 25569 ,
0,5247313484 30,0648916418 0,1709340304 180 400 56000 10913849,7506322 10973896,0321799 60046,2815477029 40912158,0194797 102321,385054702 93,5699384673 25579,3462636756 25579 ,
0,5277159057 30,2358941759 0,1710025341 181 400 56400 10928252,549799 10990286,9646062 62034,4148071762 40928554,021881 102362,652516088 94,2520810343 25589,6631290221 25590 ,
0,5307016666 30,4069656774 0,1710715015 182 400 56800 10942748,108351 11006812,3848919 64064,2765408885 40945061,0064354 102404,198360945 94,9344987177 25600,0495902361 25600 ,
0,5336886394 30,5781066116 0,1711409341 183 400 57200 10957336,4262883 11023472,7115972 66136,2853088416 40961679,3443778 102446,02352556 95,6171933735 25610,5058813899 25611 ,
0,5366768322 30,7493174452 0,1712108336 184 400 57600 10972017,5036109 11040268,363282 68250,8596710339 40978409,4102239 102488,128954513 96,3001668636 25621,0322386283 25621 ,
0,5396662531 30,9205986466 0,1712812014 185 400 58000 10986791,3403188 11057199,7585063 70408,4181874674 40995251,5818053 102530,515600748 96,9834210567 25631,6289001869 25632 ,
0,5426569103 31,0919506859 0,1713520393 186 400 58400 11001657,936412 11074267,3158301 72609,3794181384 41012206,2402991 102573,184425615 97,6669578273 25642,2961064038 25642 ,
0,5456488122 31,2633740345 0,1714233487 187 400 58800 11016617,2918904 11091471,4538135 74854,1619230509 41029273,7702461 102616,136398954 98,3507790569 25653,0340997385 25653 ,
0,5486419669 31,4348691658 0,1714951313 188 400 59200 11031669,4067541 11108812,5910163 77143,1842622049 41046454,5595817 102659,372499131 99,0348866328 25663,8431247828 25664 ,
0,5516363827 31,6064365546 0,1715673887 189 400 59600 11046814,2810031 11126291,1459987 79476,8649955969 41063748,9996526 102702,893713187 99,7192824495 25674,7234282969 25675 ,
0,554632068 31,7780766772 0,1716401227 190 400 60000 11062051,9146374 11143907,5373206 81855,6226832308 41081157,485275 102746,701036759 100,4039684076 25685,6752591898 25686 ,
0,557629031 31,949790012 0,1717133348 191 400 60400 11077382,307657 11161662,1835421 84279,8758851029 41098680,4147037 102790,795474311 101,0889464145 25696,6988685777 25697 ,
0,5606272803 32,1215770387 0,1717870267 192 400 60800 11092805,4600618 11179555,503223 86750,0431612153 41116318,1897243 102835,178039104 101,7742183843 25707,7945097759 25708 ,
0,5636268241 32,2934382389 0,1718612002 193 400 61200 11108321,3718519 11197587,9149235 89266,5430715699 41134071,2156414 102879,849753282 102,4597862379 25718,9624383205 25719 ,
0,5666276709 32,4653740958 0,1719358569 194 400 61600 11123930,0430273 11215759,8372035 91829,7941761613 41151939,9013128 102924,811647967 103,145651903 25730,2029119917 25730 ,
0,5696298291 32,6373850943 0,1720109985 195 400 62000 11139631,473588 11234071,688623 94440,2150349934 41169924,6591868 102970,064763329 103,8318173139 25741,5161908323 25742 ,
0,5726333074 32,8094717212 0,1720866269 196 400 62400 11155425,6635339 11252523,887742 97098,2242080681 41188025,9053317 103015,610148621 104,5182844124 25752,9025371552 25753 ,
0,5756381141 32,9816344648 0,1721627437 197 400 62800 11171312,6128652 11271116,8531206 99804,2402553801 41206244,0594483 103061,448862307 105,2050551467 25764,3622155768 25764 ,
0,5786442579 33,1538738155 0,1722393507 198 400 63200 11187292,3215817 11289851,0033186 102558,681736933 41224579,5449229 103107,581972097 105,8921314724 25775,8954930242 25776 ,
0,5816517473 33,3261902652 0,1723164497 199 400 63600 11203364,7896835 11308726,7568962 105361,967212725 41243032,7888388 103154,010555031 106,5795153522 25787,5026387576 25788 ,
0,5846605909 33,4985843077 0,1723940425 200 400 64000 11219530,0171706 11327744,5324133 108214,515242759 41261604,2220122 103200,735697587 107,2672087559 25799,1839243969 25799 ,
0,5876707975 33,6710564387 0,172472131 201 400 64400 11235788,0040429 11346904,7484299 111116,744387031 41280294,279035 103247,75849569 107,9552136606 25810,9396239224 25811 ,
0,5906823756 33,8436071556 0,1725507169 202 400 64800 11252138,7503006 11366207,8235061 114069,073205544 41299103,3982759 103295,080054898 108,6435320506 25822,7700137245 25823 ,
0,593695334 34,0162369576 0,1726298021 203 400 65200 11268582,2559435 11385654,1762018 117071,920258297 41318032,0219591 103342,70149033 109,3321659176 25834,6753725825 25835 ,
0,5967096815 34,1889463461 0,1727093884 204 400 65600 11285118,5209717 11405244,225077 120125,704105292 41337080,5961321 103390,623926926 110,0211172609 25846,6559817315 25847 ,
0,5997254268 34,3617358239 0,1727894778 205 400 66000 11301747,5453851 11424978,3886917 123230,843306521 41356249,5707704 103438,848499357 110,7103880871 25858,7121248392 25859 ,
0,6027425788 34,534605896 0,1728700722 206 400 66400 11318469,3291839 11444857,0856059 126387,756421996 41375539,3997427 103487,37635223 111,3999804104 25870,8440880574 25871 ,
0,6057611462 34,7075570694 0,1729511733 207 400 66800 11335283,8723679 11464880,7343796 129596,862011708 41394950,5408919 103536,208640131 112,0898962527 25883,0521600327 25883 ,
0,608781138 34,8805898527 0,1730327833 208 400 67200 11352191,1749372 11485049,7535729 132858,578635661 41414483,4560524 103585,346527672 112,7801376437 25895,3366319179 25895 ,
0,611802563 35,0537047567 0,173114904 209 400 67600 11369191,2368918 11505364,5617457 136173,324853854 41434138,6110687 103634,791189642 113,4707066205 25907,6977974104 25908 ,
0,6148254303 35,2269022941 0,1731975374 210 400 68000 11386284,0582317 11525825,577458 139541,519226287 41453916,4758566 103684,543811043 114,1616052284 25920,1359527606 25920 ,
0,6178497488 35,4001829795 0,1732806854 211 400 68400 11403469,6389569 11546433,2192698 142963,580312958 41473817,524417 103734,605587212 114,8528355205 25932,6513968031 25933 ,
0,6208755275 35,5735473297 0,1733643502 212 400 68800 11420747,9790673 11567187,9057412 146439,926673872 41493842,234885 103784,977723875 115,5443995578 25945,2444309688 25945 ,
0,6239027755 35,7469958633 0,1734485336 213 400 69200 11438119,078563 11588090,0554321 149970,976869026 41513991,0895501 103835,661437262 116,2362994093 25957,9153593154 25958 ,
0,6269315019 35,920529101 0,1735332377 214 400 69600 11455582,937444 11609140,0869024 153557,149458418 41534264,5749047 103886,657954196 116,9285371522 25970,6644885491 25971 ,
0,6299617157 36,0941475656 0,1736184646 215 400 70000 11473139,5557103 11630338,4187124 157198,863002051 41554663,1816785 103937,968512181 117,6211148719 25983,4921280451 25983 ,
0,6329934262 36,2678517819 0,1737042163 216 400 70400 11490788,9333619 11651685,4694218 160896,536059923 41575187,4048722 103989,59435948 118,3140346619 25996,39858987 25996 ,
0,6360266426 36,4416422769 0,173790495 217 400 70800 11508531,0703987 11673181,6575907 164650,587192036 41595837,7437921 104041,536755233 119,0072986243 26009,3841888082 26009 ,
0,639061374 36,6155195795 0,1738773026 218 400 71200 11526365,9668208 11694827,4017792 168461,434958389 41616614,7020931 104093,796969541 119,7009088694 26022,4492423851 26022 ,
0,6420976298 36,789484221 0,1739646415 219 400 71600 11544293,6226282 11716623,1205472 172329,497918982 41637518,7878162 104146,376283548 120,3948675158 26035,5940708869 26036 ,
0,6451354192 36,9635367345 0,1740525136 220 400 72000 11562314,0378209 11738569,2324547 176255,194633815 41658550,513419 104199,275989579 121,0891766911 26048,8189973948 26049 ,
0,6481747516 37,1376776557 0,1741409211 221 400 72400 11580427,2123988 11760666,1560617 180238,943662887 41679710,3958316 104252,497391185 121,783838531 26062,1243477963 26062 ,
0,6512156365 37,311907522 0,1742298663 222 400 72800 11598633,1463621 11782914,3099283 184281,1635662 41700998,9564741 104306,041803288 122,4788551803 26075,5104508221 26076 ,
0,6542580831 37,4862268733 0,1743193513 223 400 73200 11616931,8397106 11805314,1126143 188382,272903753 41722416,7213154 104359,910552262 123,1742287923 26088,9776380654 26089 ,
0,657302101 37,6606362517 0,1744093784 224 400 73600 11635323,2924444 11827865,9826799 192542,690235546 41743964,2209047 104414,104976033 123,8699615293 26102,5262440083 26103 ,
0,6603476997 37,8351362014 0,1744999497 225 400 74000 11653807,5045635 11850570,338685 196762,834121579 41765641,9904133 104468,626424181 124,5660555625 26116,1566060452 26116 ,
0,6633948886 38,009727269 0,1745910676 226 400 74400 11672384,4760678 11873427,5991897 201043,12312185 41787450,5696723 104523,476258072 125,262513072 26129,869064518 26130 ,
0,6664436775 38,1844100032 0,1746827342 227 400 74800 11691054,2069575 11896438,1827538 205383,975796364 41809390,5032287 104578,655850923 125,959336247 26143,6639627308 26144 ,
0,6694940759 38,3591849552 0,174774952 228 400 75200 11709816,6972324 11919602,5079375 209785,810705118 41831462,3403694 104634,166587925 126,656527286 26157,5416469812 26158 ,
0,6725460934 38,5340526784 0,1748677232 229 400 75600 11728671,9468926 11942920,9933007 214249,046408111 41853666,6351699 104690,009866382 127,3540883966 26171,5024665956 26172 ,
0,6755997398 38,7090137286 0,1749610501 230 400 76000 11747619,955938 11966394,0574034 218774,101465343 41876003,946553 104746,187095771 128,0520217957 26185,5467739427 26186 ,
0,6786550248 38,8840686638 0,1750549352 231 400 76400 11766660,7243688 11990022,1188056 223361,394436816 41898474,8383083 104802,699697886 128,7503297097 26199,6749244715 26200 ,
0,6817119581 39,0592180445 0,1751493807 232 400 76800 11785794,2521848 12013805,5960674 228011,343882527 41921079,8791544 104859,549106951 129,4490143744 26213,8872767377 26214 ,
0,6847705497 39,2344624337 0,1752443892 233 400 77200 11805020,5393861 12037744,9077486 232724,368362481 41943819,6427803 104916,736769693 130,1480780351 26228,1841924232 26228 ,
0,6878308094 39,4098023965 0,1753399629 234 400 77600 11824339,5859727 12061840,4724094 237500,886436673 41966694,7078772 104974,264145535 130,8475229469 26242,5660363837 26243 ,
0,690892747 39,5852385009 0,1754361043 235 400 78000 11843751,3919446 12086092,7086097 242341,316665106 41989705,6582139 105032,132706637 131,5473513745 26257,0331766591 26257 ,
0,6939563726 39,7607713168 0,175532816 236 400 78400 11863255,9573018 12110502,0349096 247246,077607779 42012853,0826546 105090,34393805 132,2475655926 26271,5859845125 26272 ,
0,6970216961 39,9364014172 0,1756301003 237 400 78800 11882853,2820442 12135068,8698689 252215,587824693 42036137,57522 105148,899337849 132,9481678855 26286,2248344622 26286 ,
0,7000887276 40,112129377 0,1757279598 238 400 79200 11902543,3661719 12159793,6320478 257250,265875844 42059559,7351395 105207,800417202 133,6491605477 26300,9501043005 26301 ,
0,7031574772 40,2879557741 0,1758263971 239 400 79600 11922326,2096849 12184676,7400062 262350,530321239 42083120,1668808

 

Original xls file : calculationStepper (version 2)

 

Code loaded in Arduino Uno : stepperMotorBarndoor

#define coilA 8 //arduino pin connected to stepper motor > to pin 1 ULN2803 > to red wire stepper
#define coilB 9 //arduino pin connected to stepper motor > to pin 2 ULN2803 > to blue wire stepper
#define coilC 10 //arduino pin connected to stepper motor > to pin 3 ULN2803 > to yellow wire stepper
#define coilD 11 //arduino pin connected to stepper motor > to pin 4 ULN2803 > to orange wire stepper
#define endStrokeSW 2 //arduino pin connected to switch

#define nbHalfStepMax 64000 //counting from closed position, if we go higher, the screw will escape the nut

const int halfStepSequence[8]={B11000000,B01000000,B01100000,B00100000,B00110000,B00010000,B10010000,B10000000};
const int fullStepSequence[4]={B10000000,B01000000,B00100000,B00010000};
unsigned long currentStep=0;
int byteToSend=0;

boolean initSequence=false;

//motor
const int timeStep=50;//ms (no retaining current, save some power) max : 100ms
const int timeStepFull=3;//ms (no retaining current, save some power)
unsigned long halfStepFromOrigin=0;//count how many halfStep from origin (when switch closes)

int baseValueDelay=0;//use if delay are higher than 16bits numbers ex 70000=60000+10000
int stepsPerCell=400;//how many steps to do before we shift to next delay value in the table

//table des délais pour le timers (pointer sur une nouvelle valeur tous les 400 demi-pas : 1 tours)
int tableDelay[]={
24741    ,
24743    ,
24745    ,
24748    ,
24750    ,
24752    ,
24755    ,
24757    ,
24760    ,
24762    ,
24765    ,
24767    ,
24770    ,
24773    ,
24776    ,
24778    ,
24781    ,
24784    ,
24787    ,
24790    ,
24793    ,
24797    ,
24800    ,
24803    ,
24806    ,
24810    ,
24813    ,
24817    ,
24820    ,
24824    ,
24827    ,
24831    ,
24835    ,
24839    ,
24843    ,
24846    ,
24850    ,
24854    ,
24859    ,
24863    ,
24867    ,
24871    ,
24875    ,
24880    ,
24884    ,
24889    ,
24893    ,
24898    ,
24902    ,
24907    ,
24912    ,
24917    ,
24921    ,
24926    ,
24931    ,
24936    ,
24941    ,
24946    ,
24952    ,
24957    ,
24962    ,
24967    ,
24973    ,
24978    ,
24984    ,
24989    ,
24995    ,
25001    ,
25007    ,
25012    ,
25018    ,
25024    ,
25030    ,
25036    ,
25042    ,
25048    ,
25055    ,
25061    ,
25067    ,
25074    ,
25080    ,
25086    ,
25093    ,
25100    ,
25106    ,
25113    ,
25120    ,
25127    ,
25134    ,
25141    ,
25148    ,
25155    ,
25162    ,
25169    ,
25176    ,
25184    ,
25191    ,
25199    ,
25206    ,
25214    ,
25221    ,
25229    ,
25237    ,
25245    ,
25252    ,
25260    ,
25268    ,
25277    ,
25285    ,
25293    ,
25301    ,
25309    ,
25318    ,
25326    ,
25335    ,
25343    ,
25352    ,
25361    ,
25370    ,
25378    ,
25387    ,
25396    ,
25405    ,
25414    ,
25424    ,
25433    ,
25442    ,
25451    ,
25461    ,
25470    ,
25480    ,
25490    ,
25499    ,
25509    ,
25519    ,
25529    ,
25539    ,
25549    ,
25559    ,
25569    ,
25579    ,
25590    ,
25600    ,
25611    ,
25621    ,
25632    ,
25642    ,
25653    ,
25664    ,
25675    ,
25686    ,
25697    ,
25708    ,
25719    ,
25730    ,
25742    ,
25753    ,
25764    ,
25776    ,
25788    ,
25799    ,
25811    ,
25823    ,
25835    ,
25847    ,
25859    ,
25871    ,
25883    ,
25895    ,
25908    ,
25920    ,
25933    ,
25945    ,
25958    ,
25971    ,
25983    ,
25996    ,
26009    ,
26022    ,
26036    ,
26049    ,
26062    ,
26076    ,
26089    ,
26103    ,
26116    ,
26130    ,
26144    ,
26158    ,
26172    ,
26186    ,
26200    ,
26214    ,
26228    ,
26243    ,
26257    ,
26272    ,
26286    ,
26301    
};
int nbStepsLoop=0;

void setup() {
  //stepper motor coils control  
  pinMode(coilA, OUTPUT);
  pinMode(coilB, OUTPUT);
  pinMode(coilC, OUTPUT);
  pinMode(coilD, OUTPUT);
 
  //sensing end of stroke
  pinMode(endStrokeSW, INPUT);           // set pin to input
  digitalWrite(endStrokeSW, HIGH);       // turn on pullup resistors
 
  // initialize timer1
  //CTC mode : when timer1 (TCCR1A) value reaches OCR1A value, the ISR subrutine is called and timer1 (TCCR1A) value is reset to 0
  noInterrupts();           // disable all interrupts
  TCCR1A = 0;// set entire TCCR1A register to 0
  TCCR1B = 0;// same for TCCR1B (we modify them after bit per bit)
  TCNT1  = 0;//initialize counter value to 0

  OCR1A = baseValueDelay+tableDelay[0]; // set compare match register A
  //OCR1B = 60000; // set compare match register B
  TCCR1B |= (1 << WGM12);   // CTC mode
  TCCR1B |= (0 << CS12);    // prescaler bit 2 >>prescaler 64
  TCCR1B |= (1 << CS11);    // prescaler bit 1
  TCCR1B |= (1 << CS10);    // prescaler bit 0
  TIMSK1 |= (1 << OCIE1A);  // enable timer compare A interrupt
  //TIMSK1 |= (1 << OCIE1B);   // enable timer compare A interrupt
  //TIMSK1 |= (1 << TOIE1);   // enable timer overflow interrupt  
  interrupts();             // enable all interrupts
  Serial.begin(115200);
  delay(100);//stab
  Serial.print(“Start Serial”);
 
  //if switch is open we go back to closed position to start a new sequence (knowing from where we are starting)
  //if switch us closed (manually pressed) > we go in high speed to wide open position (to set the eyepiece finder alignment for example)
 
  if(digitalRead(endStrokeSW)==HIGH){
    //go until switch or max number of steps
    int nbStepClosing=0;//secure closing in case of defective switch
    Serial.print(digitalRead(endStrokeSW));
    while((digitalRead(endStrokeSW)==HIGH)&&(nbStepClosing<nbHalfStepMax)){
      fullStep(1,-3);
      nbStepClosing+=2;//+2 because they are full steps
    }
    //si le nombre de pas est trop grand c’est qu’il y a eu un soucis
    if(nbStepClosing>=nbHalfStepMax){
      while(1){}//on stop
    }
    halfStepFromOrigin=0; //we are at origin
    //rattrapage des jeux, en ouverture
    fullStep(300,5);
    fullStep(100,10);
    halfStep(20,10);
    halfStep(5,20);
    
    initSequence=true;//we are ready to start tracking
  }
  else{
    //if switch is closed (manually on purpose while reseting for example)
    //we go to wide open position (big steps) and stay so until reset button is pressed again
    for(int i=0;i<10000;i++){
      fullStep(1,2);
   }  
  }
}

void loop() {    
  //when we arrive at the end of the screw > stop everything
  if(halfStepFromOrigin>nbHalfStepMax){    
    noInterrupts();
    stopMotorNoTorque();
    while(1){}//stop programm
  }

}

void halfStep(int nbSteps, int speedMotor){
  //répéter autant de fois qu’il faut faire de pas
  for(int i=0;i<nbSteps;i++){
    
    //on choisit le sens de rotation moteur en fonction du signe de la vitesse
    //positif : horaire en regardant le moteur de face> la table s’ouvre
    if(speedMotor>=0){
      if(currentStep<7){
        currentStep+=1;
      }
      else{
        currentStep=0;
      }
      halfStepFromOrigin+=1;
    }
    //négatif : antihoraire
    else{
      if(currentStep>0){
        currentStep-=1;
      }
      else{
        currentStep=7;
      }
      halfStepFromOrigin-=1;
    }
    byteToSend=halfStepSequence[currentStep];
    
    //Serial.println(byteToSend);
    digitalWrite(coilA,(byteToSend&B10000000)>>7);
    //Serial.println((byteToSend&B10000000)>>7);
    digitalWrite(coilB,(byteToSend&B01000000)>>6);
    //Serial.println((byteToSend&B01000000)>>6);
    digitalWrite(coilC,(byteToSend&B00100000)>>5);
    //Serial.println((byteToSend&B00100000)>>5);
    digitalWrite(coilD,(byteToSend&B00010000)>>4);
    //Serial.println((byteToSend&B00010000)>>4);
    //Serial.println(“————“);
    
    delay(timeStep);// how much time we maintain power (depends on load and battery voltage)
    //and then cut power
    stopMotorNoTorque();
    
    //print current step
    //Serial.println(halfStepFromOrigin);

    delay(abs(speedMotor));//speed management (careful : when higher > slower)
  }
}

void fullStep(int nbSteps, int speedMotor){
  //for full torque or full speed (careful with current and heat!)
 
  for(int i=0;i<nbSteps;i++){
    if(speedMotor>=0){
      if(currentStep<3){
        currentStep+=1;
      }
      else{
        currentStep=0;
      }
      halfStepFromOrigin+=2;
    }
    else{
      if(currentStep>0){
        currentStep-=1;
      }
      else{
        currentStep=3;
      }
      halfStepFromOrigin-=2;
    }
    byteToSend=fullStepSequence[currentStep];
    
    //Serial.println(byteToSend);
    digitalWrite(coilA,(byteToSend&B10000000)>>7);
    //Serial.println((byteToSend&B10000000)>>7);
    
    digitalWrite(coilB,(byteToSend&B01000000)>>6);
    //Serial.println((byteToSend&B01000000)>>6);
    
    digitalWrite(coilC,(byteToSend&B00100000)>>5);
    //Serial.println((byteToSend&B00100000)>>5);
    
    digitalWrite(coilD,(byteToSend&B00010000)>>4);
    //Serial.println((byteToSend&B00010000)>>4);
    //Serial.println(“————“);
    delay(timeStepFull);// how much time we maintain power (depends on load and battery voltage)
    //and then cut power
    stopMotorNoTorque();
    
    delay(abs(speedMotor));//speed management (careful : when higher > slower)
    
    //print current step
    //Serial.println(halfStepFromOrigin);
  }
}

void stopMotorNoTorque(){
  //stop the motor without retaining torque (no current)
  digitalWrite(coilA,0);
  digitalWrite(coilB,0);
  digitalWrite(coilC,0);
  digitalWrite(coilD,0);
}

ISR(TIMER1_COMPA_vect)          // timer compare interrupt service routine
{
  if(initSequence==true){
    int indexTable=0;
    indexTable=halfStepFromOrigin/stepsPerCell;
    OCR1A=tableDelay[indexTable];
    int a=TCNT1;
    //Serial.print(“count = ” );                       
    //Serial.println(a);
    //Serial.print(“compA = ” );                       
    //Serial.println(OCR1A);
    
    halfStep(1,0);//one step, 0 indicates we add no more delay
  }
}  

ISR(TIMER1_COMPB_vect)          // timer compare interrupt service routine : NOT USED here
{
  //
}

ISR(TIMER1_OVF_vect)          // timer compare interrupt service routine : NOT USED here
{  
  //
}

Enregistrer