aUCBLogo Demos and Tests / steppermotorlayout


to steppermotorlayout
   
elements=
   
[   [yellow5 
         
14  minus 13
         
18  minus 18
         
23  minus 23
         
28  minus 28
         
17  15
         
21  24
         
18  22
      
]
      
[orange4
         
2j 15  2plus 15
         
19  19
      
]
      
[blue6
         
23  29
         
2minus 5  pin 20
      
]
      
[violet7
         
2j 17  17
         
2j 19  19
         
2j 21  21
         
2j 23  23
      
]
      
[brown10
         
22  32
      
]
      
[red20
         
13  pin 2
         
17  pin 3
         
minus 3  black -10
         
plus 40  2plus 40
         
minus 39  2minus 39
      
]
      
[orange30
         
22  pin 4
         
27  pin 5
         
2plus 10  red -10
      
]
      
[Resistor_1KOhm
         
2plus 13  13
         
2plus 16.8  17
         
2plus 27  22
         
2plus 28  27
         
2plus 33  32
      
]
      
[redLED         ;long wire is first point, short second
         
18  17
      
]
      
[greenLED
         
18  19
      
]
      
[yellowLED
         
22  23
         
22  21
      
]
      
[Diode_1N4001         ;ring (minus) is second point
         
2i 17  2plus 16
         
2i 19  2plus 18
         
2i 21  2plus 21
         
2i 23  2plus 24
      
]
      
[PNP_Transistor_2N6489   ;first is basis
         
13  15
         
17  19
         
22  24
         
27  29
      
]
      
[Clamp
         
2f 15  2f 15   ;stepper motor brown 
         
2f 17  2f 17   ;stepper motor red
         
2f 19  2f 19   ;stepper motor blue
         
2f 21  2f 21   ;stepper motor white
         
2f 23  2f 23   ;stepper motor yellow
      
]
   
]
   
pr [Small diskette stepper motor: brown(=Plusred blue white yellow]
   
   
cs ht WindowMode
   
size=14
   
y0=280
   
red=rgb 1 0 0
   
blue=rgb 0 0 1
   
grey=rgb .5 .5 .5
   
drawClampboard
   
   
xt=Table 20
   
xt'a=1  xt'b=2  xt'c=3  xt'd=4  xt'e=5
   
xt'f=8  xt'g=9  xt'h=10 xt'i=11 xt'j=12
   
xt'plus=15  xt'minus=16
   
xt'2a= -17 xt'2b= -16 xt'2c= -15 xt'2d= -14 xt'2e= -13
   
xt'2f= -10 xt'2g= -9  xt'2h= -8  xt'2i= -7  xt'2j= -6
   
xt'2plus= -3  xt'2minus= -2
   
xt'pin=0
   
xt'red= -10  xt'black=10
   
   
foreach elements
   
[   proc=first ?
      
coors=bf ?
      
while [not empty? coors]
      
[   x=xt.(coors.1)
         
y=coors.2
         
x2=xt.(coors.3)
         
y2=coors.4
         
run proc
         
coors=bf bf bf bf coors
      
]
   
]
end

to drawwire
   
setPS (list size*0.2 size*0.2)
   
setXY size*x y0-size*y
   
pd 
   
setFC pc
   
fillCircle size*0.25
   
setXY size*x2 y0-size*y2 
   
fillCircle size*0.25
   
pu
end

to drawblock
   
setPS (list size*0.7 size*0.7)
   
setXY size*x y0-size*y
   
pd setXY size*x2 y0-size*y2 pu
end

to yellow5
   
setPC "yellow
   
drawwire
end

to orange4
   
setPC "orange
   
drawwire
end

to blue6
   
setPC "blue
   
drawwire
end

to violet7
   
setPC "violet
   
drawwire
end

to brown10
   
setPC "brown
   
drawwire
end

to red20
   
setPC "red
   
drawwire
end

to orange30
   
setPC "orange
   
drawwire
end

to Resistor_1KOhm
   
setPC "grey
   
drawwire
   
sx=x sx2=x2 sy=y sy2=y2
   
x=(2*sx+sx2)/3
   
y=(2*sy+sy2)/3
   
x2=(sx+2*sx2)/3
   
y2=(sy+2*sy2)/3
   
setPC rgba .8 .5 .3 .5
   
drawblock
end

to redLED
   
setPC rgba 1 0 0 .5
   
drawwire
   
drawblock
end

to greenLED
   
setPC rgba 0 1 0 .5
   
drawwire
   
drawblock
end

to yellowLED
   
setPC rgba 1 1 0 .5
   
drawwire
   
drawblock
end

to Diode_1N4001
   
setPC rgba 0 0 0 .5
   
drawwire
   
sx=x sx2=x2 sy=y sy2=y2
   
x=(2*sx+sx2)/3
   
y=(2*sy+sy2)/3
   
x2=(sx+2*sx2)/3
   
y2=(sy+2*sy2)/3
   
setPC rgba 0 0 0 .5
   
drawblock
end

to PNP_Transistor_2N6489
   
setPC rgba 0 0 0 .5
   
drawblock
end

to Clamp
   
setPC rgba 0 1 0 .5
   
drawblock
end

to pix c
   
pu 
   
setXY x*size y0-y*size  
   
setPC c
   
pd
   
Circle 0.25*size
   
pu
end

to connect
   
pu 
   
setXY (x+0.25)*size y0-y*size  
   
pd
   
setXY (x+0.75)*size y0-y*size  
   
pu
end

to lab ch
   
pu setXY x*size y0-y*size  Label ch
end

to ybse
   
for [5 40 5][lab y]
end

to drawClampboard
   
for [1 40]
   
[   for [1 4] [pix grey  connectx=pix grey
      
for [8 11] [pix grey  connectx=12 pix grey
      
for [--10] [pix grey  connectx=-pix grey
      
for [-14 -17] [pix grey  connectx=-13 pix grey
   
]
   
for [0 6]
   
[   for [3+n*6 3+n*6+4]
      
[   x=15 pix red
         
x=16 pix blue
         
x=-pix red
         
x=-pix blue
      
]
   
]
   
setPC "black
   
home
   
right 90
   
y=0   
   
for [-13 -17][lab char 96+18+x]
   
for [--10][lab char 96+16+x]
   
for [1 5][lab char 96+x]
   
for [8 12][lab char 94+x]
   
x=-18.5 ybse
   
x=-11.5 ybse
   
x=-4.5 ybse
   
x=-0.5 ybse
   
x=6.5  ybse
   
x=13.5 ybse
end