Difference between revisions of "Blog 16"

From BitWizard Wiki
Jump to navigation Jump to search
Line 5: Line 5:




How to find the second 7FETs( on spi1 ). The other 7FETS also of course has 88 as address.
How to find the second 7FETs( on spi1 ). The other 7FETS also of course has 88 as address. ( On the 2 dots there has to be a hexadecimal number. )
But when you also send
But when you also send
bw_tool -s 50000 -a 88 -W 42:..:i
bw_tool -s 50000 -a 88 -W 42:..:i
Line 22: Line 22:


This should make the stepper motor rotate 90 degrees.
This should make the stepper motor rotate 90 degrees.



== 2 7FETs rotating plateaus ==
== 2 7FETs rotating plateaus ==

Revision as of 13:03, 9 November 2015

Working with 2 7FETs Stepper motors

Talking to the second 7FETs ( stepper motor )

How to find the second 7FETs( on spi1 ). The other 7FETS also of course has 88 as address. ( On the 2 dots there has to be a hexadecimal number. ) But when you also send

bw_tool -s 50000 -a 88 -W 42:..:i

nothing will happen, only the other stepper motor will rotate.

The second spi (spi1) is named spidec0.1.

bw_tool -S -D /dev/spidev0.1

( If you are sending commands on I2C you have to use -I instead of -S (SPI) )

Result:

88: spi_7fets 1.1

To try it out:

bw_tool -S -D /dev/spidev0.1 -a 88 -W 42:0x200:i

This should make the stepper motor rotate 90 degrees.

2 7FETs rotating plateaus

Now I want to show how you can make it possible to let with the previous script let 2 7FETs rotate and stop a special amount of seconds.

#!/bin/bash

Address="bw_tool -s 50000 -a 88"
Address2="bw_tool -S -D /dev/spidev0.1 -a 88" 

Rot=-400
Target=`$Address -R 41:i`
#Speed=200
#$Address -W 43:$Speed:b`
#$Address2 -W 43:$Speed:b` 

Current="" 

while true; do
  $Address -W 42:$Rot:i
  $Address2 -W 42:$Rot:i
  Target=`$Address -R 41:i`
  while [ "$Current" != "$Target" ] ; do
    sleep 0.2
    Current=`$Address -R 40:i`
  done
  sleep 10
done 

What I did with the code I add a second address that leads to the second 7FETs. I made is possible to also change the speed from the second stepper motor. You of course have to make them both as fast otherwise one of them will keep spinning around. I also make it that they both run the command of rotating 90 degrees after the while do loop had ended.


2 7FETs stepper motors controlled by pushbuttons

Now lets control the 2 7FETs with the pushbuttons.

#!/bin/bash

Address="bw_tool -s 50000 -a 88"
Address2="bw_tool -S -D /dev/spidev0.1 -a 88" 
AddressI="bw_tool -I -D /dev/i2c-1 -a 94" 

#SpeedX=0x25
#bw_tool -s 50000 -a 88 -W 43:$SpeedX:b
#SpeedY=0x25
#$Address2  -W 43:$SpeedY:b 

$AddressI  -W 10:00:b
$AddressI  -W 11:00:b
$AddressI  -t "1=1+  2=1- 3=12+"
$AddressI  -W 11:20:b
$AddressI  -t "4=12- 5=2+ 6=2-"

Rot=0x200
#Rot2=0x400
#Rot3=0x100 
  
while true; do
   Button=`$AddressI -R 30:b` 

  if [ $Button  = "20" ]; then
    $Address -W 42:$Rot:i
  fi 

  if [ $Button  = "10" ]; then
    $Address -W 42:-$Rot:i
 fi 

  if [ $Button  = "08" ]; then
    $Address -W 42:$Rot:i
    $Address2 -W 42:$Rot:i
  fi 

  if [ $Button  = "04" ]; then
    $Address -W 42:-$Rot:i
    $Address2  -W 42:-$Rot:i
  fi 

  if [ $Button  = "02" ]; then
    $Address2  -W 42:$Rot:i
  fi 

  if [ $Button  = "01" ]; then
     $Address2 -W 42:-$Rot:i
  fi 

  sleep 1
done


27FETsStepperMotorsV.jpg