go_away

Author Topic: Controller: Sharing Connections? Multiple Profiles?  (Read 1675 times)

0 Members and 1 Guest are viewing this topic.

Offline GrimBotTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 4
Controller: Sharing Connections? Multiple Profiles?
« on: March 01, 2015, 11:07:14 AM »
Hello, I'm still pretty new and have an electronics question.


If I have a handful of controller/feedback slots, would there be a way to share those connections with multiple pieces of hardware and then select through hardware profiles to choose which piece of hardware on that pins chain I want to mess with?

If it could be done I'd love to know what additional electronic bits I would need to make it work like that.

Below is the controller I have and would like to expand on, if possible.

ATmega328P Arduino Compatible Nano V3 Improved Version With USB Cable

Specification:

Change the USB chip, improve the download speed and stability of WIN7/WIN8

Microcontroller Atmel ATmega328
Operating Voltage (logic level): 5V
Input Voltage (recommended): 7V ~ 12V
Input Voltage (limits): 6V ~ 20 V
Digital I/O Pins: 14 (of which 6 provide PWM output)
Analog Input Pins: 8
DC Current per I/O Pin: 40mA
Flash Memory: 32KB (ATmega328) (of which 2 KB used by bootloader)
SRAM: 2KB (ATmega328)
EEPROM: 1KB (ATmega328)
Clock Speed: 16MHz

Offline GrimBotTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 4
Re: Controller: Sharing Connections? Multiple Profiles?
« Reply #1 on: March 01, 2015, 11:27:34 AM »
Maybe it would be a "positive" and "negative" selection..  Since the hardware being messed with need both of those connections to be selected, maybe there is a piece of hardware where I plug the negative (or positive?) wires of each of the pieces on the chain into a hub and then use a control to tell it which one of those negatives (or positives?) gets the power.  I don't think it would need to be selected on both ends since the hardware connected to the non-powered lines would be ignored, right?

I don't even know if it is possible but if anyone here knows about this stuff, let me know if I'm barking up the wrong tree.

Offline mklrobo

  • Supreme Robot
  • *****
  • Posts: 525
  • Helpful? 14
  • From Dream to Design at the speed of Imagination!
Re: Controller: Sharing Connections? Multiple Profiles?
« Reply #2 on: March 01, 2015, 03:04:30 PM »
 :) Hello!
I would offer an opinion, based on what I interpret
of your question(s).
If you have the controller board, and want to activate other items,
to expand the control, use a 4 to 16 controller chip.(forget the name at this
time). You put in a bianary input (the 4) and the chip activates one of the
16 outputs that it has. A fifth line can be used to turn the item on or off, like
a control line. (Have used this myself, to expand the possibilities of an MCU)
In regards to the positive or negative control, I would recommend to use
the positive to control, unless you are using RF, in which case, you will
need more attention to grounding; but still doable.
But, with 10 lines, you could control 32 items, using the bianary control.
Good Luck!     ;D ;D ;D

Offline GrimBotTopic starter

  • Jr. Member
  • **
  • Posts: 22
  • Helpful? 4
Re: Controller: Sharing Connections? Multiple Profiles?
« Reply #3 on: March 02, 2015, 07:09:32 AM »
Am I looking for something like this? 

"Servo / PWM controller. Use 2 microcontroller pins (I2C) to drive up to 16 RC servos or any user that requires a PWM signal. based on the chip PCA9685


Product page: Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685

http://www.robot-italy.com/en/adafruit-16-channel-12-bit-pwm-servo-driver-i2c-interface-pca9685.html 



Details
You want to make a cool robot, maybe a hexapod walker, or maybe just a piece of art with a lot of moving parts. Or maybe you want to drive a lot of LEDs with precise PWM output. Then you realize that your microcontroller has a limited number of PWM outputs! What now? You could give up OR you could just get this handy PWM and Servo driver breakout.

When we saw this chip, we quickly realized what an excellent add-on this would be. Using only two pins, control 16 free-running PWM outputs! You can even chain up 62 breakouts to control up to 992 PWM outputs (which we would really like to see since it would be glorious)

It's an i2c-controlled PWM driver with a built in clock. That means that, unlike the TLC5940 family, you do not need to continuously send it signal tying up your microcontroller, its completely free running!
It is 5V compliant, which means you can control it from a 3.3V microcontroller and still safely drive up to 6V outputs (this is good for when you want to control white or blue LEDs with 3.4+ forward voltages)
6 address select pins so you can wire up to 62 of these on a single i2c bus, a total of 992 outputs - that's a lot of servos or LEDs
Adjustable frequency PWM up to about 1.6 KHz
12-bit resolution for each output - for servos, that means about 4us resolution at 60Hz update rate
Configurable push-pull or open-drain output
Output enable pin to quickly disable all the outputs
We wrapped up this lovely chip into a breakout board with a couple nice extras

Terminal block for power input (or you can use the 0.1" breakouts on the side)
Reverse polarity protection on the terminal block input
Green power-good LED
3 pin connectors in groups of 4 so you can plug in 16 servos at once (Servo plugs are slightly wider than 0.1" so you can only stack 4 next to each other on 0.1" header
"Chain-able" design
A spot to place a big capacitor on the V+ line (in case you need it)
220 ohm series resistors on all the output lines to protect them, and to make driving LEDs trivial
Solder jumpers for the 6 address select pins
This product comes with a fully tested and assembled breakout as well as 4 pieces of 3x4 male straight header (for servo/LED plugs), a 2-pin terminal block (for power) and a piece of 6-pin 0.1" header (to plug into a breadboard). A little light soldering will be required to assemble and customize the board by attaching the desired headers but it is a 15 minute task that even a beginner can do.

We don't have a detailed tutorial up yet, but you can get our documented Arduino library which has both PWM and Servo examples from github!

 
Dimensions (no headers or terminal block) 2.5" x 1" x 0.1" (62.5mm x 25.4mm x 3mm)
Weight (no headers or terminal block): 5.5grams
Weight (with 3x4 headers & terminal block): 9grams
 
PCA9685 datasheet
- See more at: http://www.robot-italy.com/en/adafruit-16-channel-12-bit-pwm-servo-driver-i2c-interface-pca9685.html#sthash.BbxgewAu.dpuf

 


Get Your Ad Here