Story  

This motor board can control two different DC motors and their respective cross-by-zero encoders. It also offers two small pushbuttons on board so that it is possible to program functions that include the use of those

The circuit board has been designed by Diego and David Cuartielles, and tested on different motors both new and recycled from several old devices

The original brief included to realize a study of the use of DC motors with encoders as part of haptic devices. We developed a whole collection of C libraries that can be uploaded to the Wiring i/o board making use of an ISP. Anyway it is possible to program the board making use of the original Wiring programming language developed by Hernando Barragan, we have included some examples on how to do so


Characteristics  

The board can be divided in two main parts, the logics and the motor control. Both parts are powered differently. The logics get 5 volts directly from the i/o board through it's JTAG connector, while the motor needs of an external power supply to be plugged on the power connector at the top-right side of the board

The power connector has 4 pins: Motor's Vcc, 2 x GND, Logic's Vcc

There is also a connector for the motors' terminals, it is situated to the left of the power connector. This one has also pins, two for driving motor A and another two for driving motor B

Finally there is a column of pin-headers on the right side of the board, where we can connect up to two different encoders with cross-by-zero capabilities

Summarizing, the motor board can control two similar (in their electric characteristics) motors and sense data from their respective encoders simultaneously


   
Pin Out  
PWM MOTOR A  

Controls the speed for the motor A plugged to the board. For the i/o board is the equivalent to analog pin nr. 1. We will select different int values to assign to this pin, possible values go between 0 and 255

 

   
PWM MOTOR B  

Controls the speed for the motor B plugged to the board. For the i/o board is the equivalent to analog pin nr. 2. We will select different int values to assign to this pin, possible values go between 0 and 255

 

   
BUTTON 1  

Attached to pin nr. 38 of the i/o board, this corresponds to S1, or pushbutton nr. 1 on the motor board

 

   
BUTTON 2  

Attached to pin nr. 39 of the i/o board, this corresponds to S2, or pushbutton nr. 2 on the motor board

 

   
MOTOR
OUT A.1
 

Connector for one of the motor's pins, meant for motor A

 

   
MOTOR
OUT A.2
 

Connector for one of the motor's pins, meant for motor A

 

   
MOTOR
OUT B.1
 

Connector for one of the motor's pins, meant for motor B

 

   
MOTOR
OUT B.2
 

Connector for one of the motor's pins, meant for motor B

 

   
MOTOR's VCC  

This is where you will connect the power supply for the motor. By default the boards can handle up to 25 volts (DC). The electronics on the board could eventually handle up to 36 volts, value that could be achieved through changing one capacitor

 

   
GND  

There are two GND pins, when connecting the external power supply for the motor you should remember to also plug in the ground. One of the most common errors in physical computing is to forget that different circuits when connected together need to share the ground level

 

   
LOGIC'S VCC  

This pin can be used to take 5 volts from the motor board to power up an external component. DO NOT CONNECT POWER TO THIS PIN!

 

   
DIRECTION MOTOR A  

For the i/o board is always digital pin nr. 9. Determines whether the motor placed at connector-set A should spin in one or the other direction. Possible values are TRUE and FALSE


   
DIRECTION MOTOR B  

For the i/o board is always digital pin nr. 8. Determines whether the motor placed at connector-set B should spin in one or the other direction. Possible values are TRUE and FALSE

 

   
ENCODER 1 INDEX  

Dedicated to count the cross-by-zero signal of the first encoder. Typically the first encoder should correspond to motor A

 

   
ENCODER 1 LINE A  

Dedicated to count the line A signal of the first encoder. Typically the first encoder should correspond to motor A

 

   
ENCODER 1 LINE B  

Dedicated to count the line B signal of the first encoder. Typically the first encoder should correspond to motor A

 

   
ENCODER 2 INDEX  

Dedicated to count the cross-by-zero signal of the second encoder. Typically the second encoder should correspond to motor B

 

   
ENCODER 2 LINE A  

Dedicated to count the line A signal of the second encoder. Typically the second encoder should correspond to motor B

 

   
ENCODER 2 LINE B  

Dedicated to count the line B signal of the second encoder. Typically the second encoder should correspond to motor B