home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / rf4 / inductor.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-04-15  |  8.1 KB  |  326 lines

  1. 10  REM
  2. 20  REM                INDUCTOR DESIGN AND TWIDDLING PROGRAM
  3. 30  REM                -------------------------------------
  4. 40  REM                           BY KEVIN MCCLANING.
  5. 50  REM
  6. 60  REM
  7. 70  CLS:PRINT
  8. 80  PRINT"                 INDUCTOR DESIGN AND TWIDDLING PROGRAM"
  9. 90  PRINT"                 -------------------------------------"
  10. 100  PRINT
  11. 110  PRINT "    THIS PROGRAM ALLOWS THE USER TO DESIGN INDUCTORS OF"
  12. 120  PRINT "SPECIFIC VALUE AND CONVERT CYLINDRICAL AIR-CORE INDUCTORS INTO"
  13. 130  PRINT "TOROIDAL FORMS (AND VISA VERSA)."
  14. 140  PRINT
  15. 150  PRINT "    NOTE: THE CYLINDRICAL INDUCTOR EQUATIONS USED IN THIS"
  16. 160  PRINT "PROGRAM ARE FROM THE AMATUER RADIO HANDBOOK (1979 EDITION)."
  17. 170  PRINT "THEY ARE VALID ONLY FOR CYLINDRICAL INDUCTORS WHOSE LENGTH"
  18. 180  PRINT "IS GREATER THAN 0.8 TIMES THE COIL RADIUS.  BEYOND THAT,"
  19. 190  PRINT "YOU'RE ON YOUR OWN."
  20. 200  GOSUB 2920
  21. 210  PRINT "WHAT'LL IT BE:"
  22. 220  PRINT "  1 - CYLINDRICAL TO TOROID CONVERSION"
  23. 230  PRINT "  2 - TOROID TO CYLINDRICAL CONVERSION"
  24. 240  PRINT "  3 - DESIGN CYLINDRICAL, AIR CORE INDUCTORS"
  25. 250  PRINT "  4 - DESIGN TOROIDAL INDUCTORS"
  26. 260  PRINT "  5 - VERIFY CYLINDRICAL INDUCTORS"
  27. 270  PRINT "  6 - VERIFY TOROIDAL INDUCTORS"
  28. 280  PRINT "  7 - EXIT"
  29. 290  INPUT ANS
  30. 300  IF ANS = 1 THEN 380
  31. 310  IF ANS = 2 THEN 840
  32. 320  IF ANS = 3 THEN 1300
  33. 330  IF ANS = 4 THEN 1700
  34. 340  IF ANS = 5 THEN 2040
  35. 350  IF ANS = 6 THEN 2440
  36. 360  IF ANS = 7 THEN CLS:END
  37. 370  BEEP:GOTO 200
  38. 380  REM
  39. 390  REM
  40. 400  REM
  41. 410  REM
  42. 420  REM  CYLINDRICAL TO TOROID CONVERSION
  43. 430  REM
  44. 440  REM
  45. 450  GOSUB 2920
  46. 460  PRINT"CYLINDRICAL TO TOROID CONVERSION":PRINT
  47. 470  INPUT "ENTER NUMBER OF TURNS ON CYLINDRICAL INDUCTOR";NCYL
  48. 480  INPUT "ENTER INDUCTOR DIAMETER (INCHES)";DIA:RADIUS=DIA/2
  49. 490  INPUT "ENTER INDUCTOR LENGTH (INCHES)";LENGTH
  50. 500  REM
  51. 510  REM FIGURE OUT INDUCTANCE
  52. 520  REM
  53. 530  IND = (RADIUS*RADIUS*NCYL*NCYL)/((9*RADIUS)+(10*LENGTH))
  54. 540  REM
  55. 550  INPUT "ENTER TOROID PERMEABILITY (uH/100 turns)";ASUBL
  56. 560  REM
  57. 570  REM FIGURE OUT # OF TOROID TURNS
  58. 580  REM
  59. 590  NTOR = 100*(SQR(IND/ASUBL))
  60. 600  REM
  61. 610  REM OUTPUT RESULTS
  62. 620  REM
  63. 630  GOSUB 2920
  64. 640  PRINT "CYLINDRICAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  65. 650  PRINT "  NUMBER TURNS = ";INT(NCYL*10)/10
  66. 660  PRINT "  DIAMETER = ";INT(DIA*100)/100;" INCHES"
  67. 670  PRINT "  LENGTH = ";INT(LENGTH*100)/100;" INCHES"
  68. 680  PRINT
  69. 690  PRINT "TOROIDAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  70. 700  PRINT "  PERMEABILITY =";ASUBL;" uH/100 turns"
  71. 710  PRINT "  NUMBER TURNS = ";INT(NTOR*10)/10
  72. 720  GOSUB 2920
  73. 730  PRINT "WHAT'LL IT BE:"
  74. 740  PRINT "   1 - ENTER ANOTHER TOROID PERMEABILITY"
  75. 750  PRINT "   2 - DEFINE ANOTHER CYLINDRICAL INDUCTOR"
  76. 760  PRINT "   3 - PRINT"
  77. 770  PRINT "   4 - MAIN MENU"
  78. 780  INPUT ANS
  79. 790  IF ANS = 1 THEN GOTO 550
  80. 800  IF ANS = 2 THEN GOTO 380
  81. 810  IF ANS = 3 THEN GOSUB 2960:GOTO 720
  82. 820  IF ANS = 4 THEN GOTO 200
  83. 830  BEEP:GOTO 730
  84. 840  REM
  85. 850  REM
  86. 860  REM
  87. 870  REM
  88. 880  REM  CYLINDRICAL TO TOROID CONVERSION
  89. 890  REM
  90. 900  REM
  91. 910  GOSUB 2920
  92. 920  PRINT"TOROID TO CYLINDRICAL CONVERSION":PRINT
  93. 930  INPUT "ENTER TOROID PERMEABILITY (uH/100 turns)";ASUBL
  94. 940  INPUT "ENTER NUMBER OF TURNS ON TOROID";NTOR
  95. 950  REM
  96. 960  REM FIGURE OUT INDUCTANCE OF TOROID
  97. 970  REM
  98. 980  IND = ASUBL*NTOR*NTOR/10000
  99. 990  REM
  100. 1000  INPUT "ENTER CYLINDRICAL INDUCTOR DIAMETER (INCHES)";DIA:RADIUS=DIA/2
  101. 1010  INPUT "ENTER INDUCTOR LENGTH (INCHES)";LENGTH
  102. 1020  REM
  103. 1030  REM FIGURE OUT # OF CYLINDRICAL INDUCTOR TURNS
  104. 1040  REM
  105. 1050  NCYL = (SQR(IND*(9*RADIUS+10*LENGTH)))/RADIUS
  106. 1060  REM
  107. 1070  REM OUTPUT RESULTS
  108. 1080  REM
  109. 1090  GOSUB 2920
  110. 1100  PRINT "CYLINDRICAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  111. 1110  PRINT "  NUMBER TURNS = ";INT(NCYL*10)/10
  112. 1120  PRINT "  DIAMETER = ";INT(DIA*100)/100;" INCHES"
  113. 1130  PRINT "  LENGTH = ";INT(100*LENGTH)/100;" INCHES"
  114. 1140  PRINT
  115. 1150  PRINT "TOROIDAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  116. 1160  PRINT "  PERMEABILITY =";ASUBL;" uH/100 turns"
  117. 1170  PRINT "  NUMBER TURNS = ";INT(NTOR*10)/10
  118. 1180  GOSUB 2920
  119. 1190  PRINT "WHAT'LL IT BE:"
  120. 1200  PRINT "   1 - ENTER ANOTHER CYLINDRICAL INDUCTOR"
  121. 1210  PRINT "   2 - DEFINE ANOTHER TOROIDAL INDUCTOR"
  122. 1220  PRINT "   3 - PRINT"
  123. 1230  PRINT "   4 - MAIN MENU"
  124. 1240  INPUT ANS
  125. 1250  IF ANS = 1 THEN GOTO 1000
  126. 1260  IF ANS = 2 THEN GOTO 840
  127. 1270  IF ANS = 3 THEN GOSUB 2960:GOTO1040
  128. 1280  IF ANS = 4 THEN GOTO 200
  129. 1290  BEEP:GOTO 1190
  130. 1300  REM
  131. 1310  REM
  132. 1320  REM
  133. 1330  REM
  134. 1340  REM  CYLINDRICAL INDUCTOR DESIGN
  135. 1350  REM
  136. 1360  REM
  137. 1370  GOSUB 2920
  138. 1380  PRINT"CYLINDRICAL INDUCTOR DESIGN":PRINT
  139. 1390  GOSUB 2840
  140. 1400  GOSUB 2860
  141. 1410  GOSUB 2880
  142. 1420  REM
  143. 1430  REM FIGURE OUT NUMBER OF TURNS NEEDED
  144. 1440  REM
  145. 1450  NCYL = (SQR(IND*(9*RADIUS+10*LENGTH)))/RADIUS
  146. 1460  REM
  147. 1470  REM OUTPUT RESULTS
  148. 1480  REM
  149. 1490  GOSUB 2920
  150. 1500  PRINT "CYLINDRICAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  151. 1510  PRINT "  NUMBER TURNS = ";INT(NCYL*10)/10
  152. 1520  PRINT "  DIAMETER = ";INT(100*DIA)/100;" INCHES"
  153. 1530  PRINT "  LENGTH = ";INT(100*LENGTH)/100;" INCHES"
  154. 1540  GOSUB 2920
  155. 1550  PRINT "WHAT'LL IT BE:"
  156. 1560  PRINT "   1 - CHANGE INDUCTOR DIAMETER"
  157. 1570  PRINT "   2 - CHANGE INDUCTOR LENGTH"
  158. 1580  PRINT "   3 - CHANGE INDUCTANCE"
  159. 1590  PRINT "   4 - START A NEW INDUCTOR"
  160. 1600  PRINT "   5 - PRINT"
  161. 1610  PRINT "   6 - MAIN MENU"
  162. 1620  INPUT ANS
  163. 1630  IF ANS = 1 THEN GOSUB 2840:GOTO 1420
  164. 1640  IF ANS = 2 THEN GOSUB 2860:GOTO 1420
  165. 1650  IF ANS = 3 THEN GOSUB 2880:GOTO 1420
  166. 1660  IF ANS = 4 THEN GOTO 1300
  167. 1670  IF ANS = 5 THEN GOSUB 3070:GOTO 1540
  168. 1680  IF ANS = 6 THEN GOTO 200
  169. 1690  BEEP:GOTO 1540
  170. 1700  REM
  171. 1710  REM
  172. 1720  REM
  173. 1730  REM
  174. 1740  REM  TOROIDAL INDUCTOR DESIGN
  175. 1750  REM
  176. 1760  REM
  177. 1770  GOSUB 2920
  178. 1780  PRINT"TOROIDAL INDUCTOR DESIGN":PRINT
  179. 1790  GOSUB 3500
  180. 1800  GOSUB 3520
  181. 1810  REM
  182. 1820  REM FIGURE OUT NUMBER OF TURNS NEEDED
  183. 1830  REM
  184. 1840  NTOR = 100*(SQR(IND/ASUBL))
  185. 1850  REM
  186. 1860  REM OUTPUT RESULTS
  187. 1870  REM
  188. 1880  GOSUB 2920
  189. 1890  PRINT "TOROIDAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  190. 1900  PRINT "  PERMEABILITY =";ASUBL;" uH/100 turns"
  191. 1910  PRINT "  NUMBER TURNS = ";INT(NTOR*10)/10
  192. 1920  GOSUB 2920
  193. 1930  PRINT "WHAT'LL IT BE:"
  194. 1940  PRINT "   1 - ENTER ANOTHER TOROID PERMABILITY"
  195. 1950  PRINT "   2 - ENTER ANOTHER DESIRED INDUCTANCE VALUE"
  196. 1960  PRINT "   3 - PRINT"
  197. 1970  PRINT "   4 - MAIN MENU"
  198. 1980  INPUT ANS
  199. 1990  IF ANS = 1 THEN GOSUB 3520:GOTO 1820
  200. 2000  IF ANS = 2 THEN GOSUB 3500:GOTO 1820
  201. 2010  IF ANS = 3 THEN GOSUB 3140:GOTO 1920
  202. 2020  IF ANS = 4 THEN GOTO 200
  203. 2030  BEEP:GOTO 1920
  204. 2040  REM
  205. 2050  REM
  206. 2060  REM
  207. 2070  REM
  208. 2080  REM  CYLINDRICAL INDUCTOR VERIFICATION
  209. 2090  REM
  210. 2100  REM
  211. 2110  GOSUB 2920
  212. 2120  PRINT"CYLINDRICAL INDUCTOR VERIFICATION":PRINT
  213. 2130  GOSUB 2900
  214. 2140  GOSUB 2840
  215. 2150  GOSUB 2860
  216. 2160  REM
  217. 2170  REM FIGURE OUT INDUCTANCE
  218. 2180  REM
  219. 2190  IND = (RADIUS*RADIUS*NCYL*NCYL)/((9*RADIUS)+(10*LENGTH))
  220. 2200  REM
  221. 2210  REM OUTPUT RESULTS
  222. 2220  REM
  223. 2230  GOSUB 2920
  224. 2240  PRINT "CYLINDRICAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  225. 2250  PRINT "  NUMBER TURNS = ";INT(NCYL*10)/10
  226. 2260  PRINT "  DIAMETER = ";INT(DIA*100)/100;" INCHES"
  227. 2270  PRINT "  LENGTH = ";INT(LENGTH*100)/100;" INCHES"
  228. 2280  GOSUB 2920
  229. 2290  PRINT "WHAT'LL IT BE:"
  230. 2300  PRINT "   1 - CHANGE INDUCTOR DIAMETER"
  231. 2310  PRINT "   2 - CHANGE INDUCTOR LENGTH"
  232. 2320  PRINT "   3 - CHANGE NUMBER OF TURNS"
  233. 2330  PRINT "   4 - START A NEW INDUCTOR"
  234. 2340  PRINT "   5 - PRINT"
  235. 2350  PRINT "   6 - MAIN MENU"
  236. 2360  INPUT ANS
  237. 2370  IF ANS = 1 THEN GOSUB 2840:GOTO 2170
  238. 2380  IF ANS = 2 THEN GOSUB 2860:GOTO 2170
  239. 2390  IF ANS = 3 THEN GOSUB 2900:GOTO 2170
  240. 2400  IF ANS = 4 THEN GOTO 2130
  241. 2410  IF ANS = 5 THEN GOSUB 3070:GOTO 2170
  242. 2420  IF ANS = 6 THEN GOTO 200
  243. 2430  BEEP:GOTO 1540
  244. 2440  REM
  245. 2450  REM
  246. 2460  REM
  247. 2470  REM
  248. 2480  REM     TOROIDAL INDUCTOR VERIFICATION
  249. 2490  REM
  250. 2500  REM
  251. 2510  GOSUB 2920
  252. 2520  PRINT"TOROIDAL INDUCTOR VERIFICATION":PRINT
  253. 2530  GOSUB 3190
  254. 2540  GOSUB 3210
  255. 2550  REM
  256. 2560  REM FIGURE OUT INDUCTANCE OF TOROID
  257. 2570  REM
  258. 2580  IND = ASUBL*NTOR*NTOR/10000
  259. 2590  REM
  260. 2600  REM OUTPUT RESULTS
  261. 2610  REM
  262. 2620  GOSUB 2920
  263. 2630  PRINT "TOROIDAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  264. 2640  PRINT "  PERMEABILITY =";ASUBL;" uH/100 turns"
  265. 2650  PRINT "  NUMBER TURNS = ";INT(NTOR*10)/10
  266. 2660  GOSUB 2920
  267. 2670  PRINT "WHAT'LL IT BE:"
  268. 2680  PRINT "   1 - ENTER ANOTHER TOROID PERMEABILITY"
  269. 2690  PRINT "   2 - ENTER NEW NUMBER OF TURNS"
  270. 2700  PRINT "   3 - ENTER BOTH"
  271. 2710  PRINT "   4 - PRINT"
  272. 2720  PRINT "   5 - MAIN MENU"
  273. 2730  INPUT ANS
  274. 2740  IF ANS = 1 THEN GOSUB 3190:GOTO 2560
  275. 2750  IF ANS = 2 THEN GOSUB 3210:GOTO 2560
  276. 2760  IF ANS = 3 THEN GOTO 2530
  277. 2770  IF ANS = 4 THEN GOSUB 3140:GOTO 2660
  278. 2780  IF ANS = 5 THEN GOTO 200
  279. 2790  BEEP:GOTO 2660
  280. 2800  REM
  281. 2810  REM
  282. 2820  REM SUBROUTINES
  283. 2830  REM
  284. 2840  INPUT "ENTER INDUCTOR DIAMETER (INCHES)";DIA:RADIUS=DIA/2:RETURN
  285. 2850  REM
  286. 2860  INPUT "ENTER INDUCTOR LENGTH (INCHES)";LENGTH:RETURN
  287. 2870  REM
  288. 2880  INPUT "ENTER DESIRED INDUCTANCE (uH)";IND:RETURN
  289. 2890  REM
  290. 2900  INPUT "ENTER NUMBER OF TURNS ON CYLINDRICAL INDUCTOR";NCYL:RETURN
  291. 2910  REM
  292. 2920  PRINT "--------------------------------":RETURN
  293. 2930  REM
  294. 2940  LPRINT "--------------------------------":RETURN
  295. 2950  REM
  296. 2960  GOSUB 2940
  297. 2970  LPRINT "CYLINDRICAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  298. 2980  LPRINT "  NUMBER TURNS = ";INT(NCYL*10)/10
  299. 2990  LPRINT "  DIAMETER = ";INT(DIA*100)/100;" INCHES"
  300. 3000  LPRINT "  LENGTH = ";INT(LENGTH*100)/100;" INCHES"
  301. 3010  LPRINT
  302. 3020  LPRINT "TOROIDAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  303. 3030  LPRINT "  PERMEABILITY =";ASUBL;" uH/100 turns"
  304. 3040  LPRINT "  NUMBER TURNS = ";INT(NTOR*10)/10
  305. 3050  GOSUB 2940:RETURN
  306. 3060  REM
  307. 3070  GOSUB 2940
  308. 3080  LPRINT "CYLINDRICAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  309. 3090  LPRINT "  NUMBER TURNS = ";INT(NCYL*10)/10
  310. 3100  LPRINT "  DIAMETER = ";INT(100*DIA)/100;" INCHES"
  311. 3110  LPRINT "  LENGTH = ";INT(100*LENGTH)/100;" INCHES"
  312. 3120  GOSUB 2940:RETURN
  313. 3130  REM
  314. 3140  GOSUB 2940
  315. 3150  LPRINT "TOROIDAL INDUCTOR (L = ";INT(IND*1000)/1000;" uH):"
  316. 3160  LPRINT "  PERMEABILITY =";ASUBL;" uH/100 turns"
  317. 3170  LPRINT "  NUMBER TURNS = ";INT(NTOR*10)/10
  318. 3180  GOSUB 2940:RETURN
  319. 3190  INPUT "ENTER TOROID PERMEABILITY (uH/100 turns)";ASUBL:RETURN
  320. 3200  REM
  321. 3210  INPUT "ENTER NUMBER OF TURNS ON TOROID";NTOR:RETURN
  322. 3220  REM
  323. 3500  INPUT "ENTER DESIRED INDUCTANCE (uH)";IND:RETURN
  324. 3510  REM
  325. 3520  INPUT "ENTER TOROID PERMEABILITY (uH/100 turns)";ASUBL:RETURN
  326.