For your NXT or EV3
Sensors
Accelerometer, Compass & Gyro
Motor Multiplexers & Controllers
Wireless Control
Sensor Adapters & Multiplexers
RC Servos, Mountings & Pneumatics

Sensor Kits
Flexi-Cables & Cable Extenders
Classroom packs of Flexi-Cables
Plugs and Connectors
Power Options
Other Robotics accessories

EV3 Console Adapter
EV3 Sensor Adapter for NXT or Arduino
EV3 Compatibility Info

Android App for NXT/EV3

Arduino Products
Shields and Controllers

Raspberry Pi Products
For your Raspberry Pi

Connect with us
Google+
Shopping Cart
Your cart is empty.

Ordering Information
Our Distributors
World Wide Shipping
How to Order and Pay
Paying by Credit Card
Your satisfaction is important to us
About mindsensors.com
Site Map

Yondering ...
Forums
FAQ
Videos
Coming Soon ...
End of Life Products
Robotics related Links

Downloads
NXT Product Docs and Software
User Guides
EV3 Blocks
API's and Sample Programs
NXT-G Blocks
All Downloads

EV3 Programming Environment
Which Programming Environment do you prefer for EV3?
EV3 Home Edition
EV3 Edu Edition
LeJOS
MonoBrick
RobotC
ev3dev
Other



[View Result]

Votes: 1225
Translate this site
Translate this site: (Courtesy of Google™)
Search Web Pages



Need Quote for your School?
Write e-mail to:
info
Need Technical Support?
Write e-mail to:
support
Note your order number in the support request.
You can find order number on your Packing-slip or Order confirmation e-mail.


Proud Supporter of:
Robofest


Trinity College Fire Fighting Robot Contest.

Contact:
E-mail:
info
Address:
mindsensors.com

8623 Mayland Drive
Henrico, VA 23294-4703 USA.
Phone: (804) 767-8116
Fax: (804) 747-5303
Official PayPal Seal
Active Sensor Multiplexer
Features
AMUX03Active Sensor Multiplexer - Discontinued.The RCX has only 3 sensor input connectors. Most of the sophisticated robot designs need more than three sensors. Active Sensor Multiplexer lets you connect extra 3 Actively Powered sensors to single input port. Thus giving designer the power of total 9 sensors for each RCX. This permits you to connect Light, Angle or any other custom sensor at a time to single RCX sensor input port.
RCX sensor port has just enough power to drive single sensor, hence this multiplexer not only switches signal, but also switches the power to sensor ON and OFF, while giving you the flexibility of three extra sensors and still conserving the battery. You can change from one sensor to another sensor by changing the sensor type momentarily, say from light sensor to touch sensor. Example of NQC program is included at the bottom of this page.
Channel selection sequence:
Pulse DiagramActive Sensor Multiplexer has three channels Ch1, Ch2 & Ch3 and RCX input. RCX is connected to the RCX position and sensor type is set to the Light. On power on channel 1 (Ch1) is selected. When you change the sensor type momentarily to the touch sensor and back to light sensor,(refer the pulse diagrams below). You can select any desired channel. Switching of sensors is achieved by using ultra low power Microcomuter.
Technical Specifications
  • Total power consumption: 4mW (less than 3% of total available power)
  • Current consumption: 500mA with no sensor attached.
  • Voltage drop: 50mV with Light sensor attached.
  • Channel selection time: 75 ms
  • Channel access logic: Random access to any channel.
  • Size: 2 by 8 by 2 Plate with 2 by 4 block with plate at the bottom.
  • Connector: Standard Mindstorms electric connector plate on top of 2 by 8 for sensor connection.
  • Devices used: High Reliability solid state SMT and Low power Microcontroller.

Limitations:
Active sensor Multiplexer needs to be connected to your Lego RCX only in one polarity way. Reversing this will cause the malfunction of multiplexer (This does not damage Multiplexer). To determine the correct polarity follow these steps:
  1. Connect the multiplexer to your RCX.
  2. Connect light sensor to Ch2.
  3. Switch on your RCX.
  4. If Light sensor is ON, reverse the polarity of RCX connection by rotating connecting wire by 180 degree.
NQC Program:
NQC
task main()
{
  Ch1();
  Wait(100);
  Ch2();
  Wait(100);
  Ch3();
}

sub Ch1()
{
  SetSensorType(SENSOR_2,SENSOR_TYPE_TOUCH);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_LIGHT);
}

sub Ch2()
{
  SetSensorType(SENSOR_2,SENSOR_TYPE_TOUCH);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_LIGHT);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_TOUCH);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_LIGHT);
}

sub Ch3()
{
  SetSensorType(SENSOR_2,SENSOR_TYPE_TOUCH);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_LIGHT);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_TOUCH);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_LIGHT);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_TOUCH);
  Wait(1);
  SetSensorType(SENSOR_2,SENSOR_TYPE_LIGHT);
}
Lejos driver for Active Sensor Multiplexer
lejos
import josx.platform.rcx.*;
/**
* Basic test class to use the active sensor multiplexer with lejos.
* It has been tested with lejos 2.1.0 * (should work with earlier versions since 1.4.0).
*
* @author Jean-Michel Gaudin
* @version 26-January-2004
*
* @see josx.platform.rcx.Sensor
*/

public class ActiveMpxTest implements SensorConstants
{
  // Connect the active multiplexor output to rcx input 2
  private static Sensor rcxInput = Sensor.S2;

  public static void main(String [] args)
  {
    int i; //loops
    int chValue; // active multiplexer ch values

    // select active multiplexer ch1 input
    selectCh1();
    // display ch label
    displayChlabel("ch1");
    // read and display ch1 value
    for (i=0;i<10;i++)
    {
      // read active multiplexer ch1 values
      chValue = rcxInput.readValue();
      // display it
      displayChValue(chValue);
    }

    // select active multiplexer ch2 input
    selectCh2();
    // display ch label
    displayChlabel("ch2");
    // read and display ch2 values
    for (i=0;i<10;i++)
    {
      // read active multiplexer ch2 value
      chValue = rcxInput.readValue();
      // display it
      displayChValue(chValue);
    }

    // select active multiplexer ch3 input
    selectCh3();
    // display ch label
    displayChlabel("ch3");
    // read and display ch3 value
    for (i=0;i<10;i++)
    {
      // read active multiplexer ch3 value
      chValue = rcxInput.readValue();
      // display it
      displayChValue(chValue);
    }

  }

  // Select the ch1 input of the active multiplexer
  private static void selectCh1()
  {
    rcxInput.passivate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_TOUCH,SENSOR_MODE_BOOL);
    sleep10ms();

    rcxInput.activate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_LIGHT,SENSOR_MODE_PCT);
  }

  // Select the ch2 input of the active multiplexer
  private static void selectCh2()
  {
    rcxInput.passivate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_TOUCH,SENSOR_MODE_BOOL);
    sleep10ms();

    rcxInput.activate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_LIGHT,SENSOR_MODE_PCT);
    sleep10ms();

    rcxInput.passivate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_TOUCH,SENSOR_MODE_BOOL);
    sleep10ms();

    rcxInput.activate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_LIGHT,SENSOR_MODE_PCT);
  }


  // Select the ch3 input of the active multiplexer
  private static void selectCh3()
  {
    rcxInput.passivate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_TOUCH,SENSOR_MODE_BOOL);
    sleep10ms();

    rcxInput.activate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_LIGHT,SENSOR_MODE_PCT);
    sleep10ms();

    rcxInput.passivate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_TOUCH,SENSOR_MODE_BOOL);
    sleep10ms();

    rcxInput.activate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_LIGHT,SENSOR_MODE_PCT);
    sleep10ms();

    rcxInput.passivate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_TOUCH,SENSOR_MODE_BOOL);
    sleep10ms();

    rcxInput.activate();
    rcxInput.setTypeAndMode(SENSOR_TYPE_LIGHT,SENSOR_MODE_PCT);
  }

  // Current thread sleeps for 10 ms
  private static void sleep10ms()
  {
    try {Thread.sleep(10);}
    catch(InterruptedException ie){}
  }

  // Display the ch label on the rcx LCD for 0.5 s
  private static void displayChlabel(String chLabel)
  {
    LCD.clear();
    TextLCD.print (chLabel);
    try{Thread.sleep(500);}
    catch(InterruptedException ie){}
  }

  // Display the ch value on the rcx LCD for 250 ms
  private static void displayChValue(int chValue)
  {
    LCD.clear();
    LCD.showNumber(chValue);
    try{Thread.sleep(250);}
    catch(InterruptedException ie){}
  }
}
Schematic for Active Sensor Multiplexer
Schematic Diagram of Active Sensor MultiplexerThis is the schematic we have developed for Active Sensor Multiplexer