[PD] electro-mechanical piano (player piano) - Arduino, Solenoid Issue

Epic Jefferson jeffreyconcepcion at gmail.com
Fri Aug 16 05:10:50 CEST 2013


Roman Haefeli,

It turns out, your solenoiduino code was useful in this project. the
handshake stuff is very convenient and all i had to modify was the duty
cycle in the arduino code. Instead of "how many milliseconds will the
solenoid be activated?", i just re-purposed the data for the pwm values
(velocity) in the Tlc5940 library's Tlc.set(pin,pwmValue); function. If you
don't mind, i would like to release the code as part of the project's
documentation, giving you credit for you contribution, of course.


On Thu, Aug 8, 2013 at 5:59 PM, Epic Jefferson
<jeffreyconcepcion at gmail.com>wrote:

> it works! i had forgotten to ground the arduino to the circuit. Here's the
> circuit.[image: Inline image 1]
>
> 2 practical maker pwmshields > Arduino's 5 volts through PNP 4403
> transistors > TIP102 transistors to drive the solenoids with ~18 volts. I
> still have to check the resistors because I'm only getting about 4 or 5
> volts at the end (it drives the motor but not the solenoids). Getting
> closer.
>
> If anyone's interested, I'll be posting photos and updates on twitter and
> fb as 'Epic Jefferson'. Full documentation will be released a bit later.
>
> Thanks again, you guys are the greatest. Special thanks to Charles Goyard
> for the PNP tip.
>
>
> On Wed, Aug 7, 2013 at 8:21 PM, Martin Peach <martin.peach at sympatico.ca>wrote:
>
>> It depends on the colour and the LED technology. The energy of red light
>> is about 1.5eV and blue is 3eV. Add to that internal resistance of the
>> device. An ordinary diode (not a LED) emits infrared around .6eV, which is
>> the voltage drop of a silicon junction.
>>
>> Martin
>>
>>
>> On 2013-08-07 20:02, Ed Kelly wrote:
>>
>>> Oh, thanks.
>>>
>>> That was dumb I didn't remember that!
>>>
>>> Is it really 2 volts drop for an LED? I should know this stuff...
>>> Ed
>>> Ninja Jamm - a revolutionary new music remix app from Ninja Tune and
>>> Seeper, for iPhone and iPad
>>> http://www.ninjajamm.com/
>>>
>>>
>>> Gemnotes-0.2: Live music notation for Pure Data, now with dynamics!
>>> http://sharktracks.co.uk/
>>>
>>>     ------------------------------**------------------------------**
>>> ------------
>>>     *From:* Mikael Fernström <mikael.fernstrom at ul.ie>
>>>     *To:* Ed Kelly <morph_2016 at yahoo.co.uk>
>>>     *Cc:* Charles Z Henry <czhenry at gmail.com>; Epic Jefferson
>>>     <jeffreyconcepcion at gmail.com>; pd-list <pd-list at iem.at>
>>>     *Sent:* Thursday, 8 August 2013, 0:26
>>>     *Subject:* Re: [PD] electro-mechanical piano (player piano) -
>>>
>>>     Arduino, Solenoid Issue
>>>
>>>     note that you have to subtract the voltage drop over the LED, hence
>>>     it's R = (Vsupply - Vled)/ Iled, e.g. (5-2)/0.02 = 150 Ohm
>>>
>>>     /Mikael
>>>
>>>
>>>     On 8 Aug 2013, at 00:19, Ed Kelly <morph_2016 at yahoo.co.uk
>>>     <mailto:morph_2016 at yahoo.co.uk**>> wrote:
>>>
>>>      Check Ohm's law.
>>>>
>>>>     V=IR, so the resistor you choose is the voltage you provide to the
>>>>     LED divided by the current it draws.
>>>>
>>>>     e.g. if the LED draws 20mA and you power it from 5V, then the
>>>>     resistor you need is 5/0.02 = 250 ohms in series with the LED.
>>>>     This current is drawn from the positive voltage supply through the
>>>>     resistor and then the LED, and then the transistor.
>>>>
>>>>     This is a fairly good tutorial:
>>>>     http://www.ehobbycorner.com/**pages/tut_transistors.html<http://www.ehobbycorner.com/pages/tut_transistors.html>
>>>>     Ninja Jamm - a revolutionary new music remix app from Ninja Tune
>>>>     and Seeper, for iPhone and iPad
>>>>     http://www.ninjajamm.com/
>>>>
>>>>
>>>>     Gemnotes-0.2: Live music notation for Pure Data, now with dynamics!
>>>>     http://sharktracks.co.uk/
>>>>
>>>>         ------------------------------**------------------------------*
>>>> *------------
>>>>         *From:* Charles Z Henry <czhenry at gmail.com
>>>>         <mailto:czhenry at gmail.com>>
>>>>         *To:* Epic Jefferson <jeffreyconcepcion at gmail.com
>>>>         <mailto:jeffreyconcepcion@**gmail.com<jeffreyconcepcion at gmail.com>
>>>> >>
>>>>         *Cc:* pd-list <pd-list at iem.at <mailto:pd-list at iem.at>>
>>>>         *Sent:* Wednesday, 7 August 2013, 20:41
>>>>         *Subject:* Re: [PD] electro-mechanical piano (player piano) -
>>>>
>>>>         Arduino, Solenoid Issue
>>>>
>>>>         On Wed, Aug 7, 2013 at 12:05 AM, Epic Jefferson
>>>>         <jeffreyconcepcion at gmail.com
>>>>         <mailto:jeffreyconcepcion@**gmail.com<jeffreyconcepcion at gmail.com>>>
>>>> wrote:
>>>>
>>>>             Hey Charles,
>>>>
>>>>             it seems like this might work. i got some pnp transistors
>>>>             and built the circuit from julianvogels site.
>>>>             The only problem is that the LED on the test circuit
>>>>             barely lit up. I think it's because the transistors are
>>>>             not for 20mA, none were available. i'll check another
>>>>             electronics store to see if i find some.
>>>>
>>>>
>>>>         I think you just need smaller resistors.  Every transistor in
>>>>         a 3-pin package I've ever seen could run 20mA or much
>>>>         greater.  Swapping the transistors will have no effect on the
>>>>         amount of current.
>>>>
>>>>         Chuck
>>>>
>>>>
>>>>                 There are two ways to solve your problem:
>>>>
>>>>                 The proper one is to use PNP transistors or P-channel
>>>>                 mosfets (remember
>>>>                 I already told you about that ? :))
>>>>
>>>>                 See this document, you can find the wiring at the end:
>>>>                 http://julianvogels.de/wp-**content/uploads/2013/06/**
>>>> stromkreis_**transistorschaltung_final-**1024x627.png<http://julianvogels.de/wp-content/uploads/2013/06/stromkreis_transistorschaltung_final-1024x627.png>
>>>>
>>>>                 http://julianvogels.de/**extending-pwm-output-pins-**
>>>> with-a-texas-instruments-**tlc5940-led-driver/<http://julianvogels.de/extending-pwm-output-pins-with-a-texas-instruments-tlc5940-led-driver/>
>>>>
>>>>
>>>>                 The good enough one is to put a pull-up resistor (10k
>>>>                 works) on every
>>>>                 NPN transistor base, and use the TLC as a pull down.
>>>>                 In this case, the
>>>>                 on-time on the TLC corresponds to the off-time on the
>>>>                 solenoid. Also
>>>>                 when the arduino reboots and every time the BLANK is
>>>>                 issued, every
>>>>                 solenoid will act for a veeeeery short time. This can
>>>>                 be a big problem
>>>>                 in your project. I did this for a 96 channels
>>>>                 motor+led strip system,
>>>>                 and I regret not using PNPs instead.
>>>>
>>>>
>>>>                 Enjoy,
>>>>
>>>>                 --
>>>>                 Charles
>>>>
>>>>
>>>>
>>>>                 Epic Jefferson wrote:
>>>>                 > Hey guys,
>>>>                 >
>>>>                 > updating on this project. I got the pwm shields and
>>>>                 i've hit a wall. The
>>>>                 > driver circuit I'm using to control the solenoids
>>>>                 via arduino is this one
>>>>                 > from instructables
>>>>                 >
>>>>                 (link<http://www.**instructables.com/id/**
>>>> Controlling-solenoids-with-**arduino/<http://www.instructables.com/id/Controlling-solenoids-with-arduino/>
>>>> )>)
>>>>                 > and
>>>>                 > it uses a single pin to control the pwm signal.
>>>>                 >
>>>>                 > The pwm shield
>>>>                 (link<http://www.**practicalmaker.com/products/**
>>>> arduino-shields/pwm-shield-**assembled<http://www.practicalmaker.com/products/arduino-shields/pwm-shield-assembled>
>>>> >)
>>>>                 > is
>>>>                 > based on the tlc5940 which requires each pin to have
>>>>                 it's own ground
>>>>                 > instead of a common ground across all drivers. This
>>>>                 is a problem because
>>>>                 > all of the information i've found suggest that the
>>>>                 signal from the pin
>>>>                 > controls the gate (transistor - TIP102). But i
>>>>                 think, in the case of the
>>>>                 > tlc5940, the 5v supply is constant and the ground is
>>>>                 being controlled,
>>>>                 > that's why it works perfectly for LED's but seems to
>>>>                 be ill suited for this
>>>>                 > circuit.
>>>>                 >
>>>>                 > Any suggestions on how to modify the instructables
>>>>                 circuit for use with the
>>>>                 > shields? or would the circuit have to completely
>>>> change?
>>>>
>>>>                 ______________________________**_________________
>>>>                 Pd-list at iem.at <mailto:Pd-list at iem.at> mailing list
>>>>
>>>>                 UNSUBSCRIBE and account-management ->
>>>>                 http://lists.puredata.info/**listinfo/pd-list<http://lists.puredata.info/listinfo/pd-list>
>>>>
>>>>
>>>>
>>>>
>>>>             --
>>>>             www.epicjefferson.com <http://www.epicjefferson.com/**>
>>>>             www.avmachinists.org <http://www.avmachinists.org/> Puerto
>>>>
>>>>             Rico based Art Collective/ Non-Profit Org
>>>>
>>>>             ______________________________**_________________
>>>>             Pd-list at iem.at <mailto:Pd-list at iem.at> mailing list
>>>>
>>>>             UNSUBSCRIBE and account-management ->
>>>>             http://lists.puredata.info/**listinfo/pd-list<http://lists.puredata.info/listinfo/pd-list>
>>>>
>>>>
>>>>
>>>>         ______________________________**_________________
>>>>         Pd-list at iem.at <mailto:Pd-list at iem.at> mailing list
>>>>
>>>>         UNSUBSCRIBE and account-management ->
>>>>         http://lists.puredata.info/**listinfo/pd-list<http://lists.puredata.info/listinfo/pd-list>
>>>>
>>>>
>>>>     ______________________________**_________________
>>>>     Pd-list at iem.at <mailto:Pd-list at iem.at> mailing list
>>>>
>>>>     UNSUBSCRIBE and account-management ->
>>>>     http://lists.puredata.info/**listinfo/pd-list<http://lists.puredata.info/listinfo/pd-list>
>>>>
>>>
>>>
>>>
>>>
>>>
>>> ______________________________**_________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/**
>>> listinfo/pd-list <http://lists.puredata.info/listinfo/pd-list>
>>>
>>>
>>
>> ______________________________**_________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/**
>> listinfo/pd-list <http://lists.puredata.info/listinfo/pd-list>
>>
>
>
>
> --
> www.epicjefferson.com
> www.avmachinists.org Puerto Rico based Art Collective/ Non-Profit Org
>



-- 
www.epicjefferson.com
www.avmachinists.org Puerto Rico based Art Collective/ Non-Profit Org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20130815/351e8a99/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 356906 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20130815/351e8a99/attachment-0001.jpeg>


More information about the Pd-list mailing list