Show Posts
Pages: 1 [2] 3 4 ... 20
16  Using Arduino / LEDs and Multiplexing / Re: Fading an RGB LED on and off on: August 02, 2014, 09:04:01 am

But first things first, let's get that LED dimmed without the color shifting noticeably.

That can be quite a difficult task!

1. As suggested before you could employ an algorithm that draws a line through a 3-Dimensional space, with the three axis being the three colors. An algorithm that does this very effectively with integer math is the bresenham algorithm as it only deals with integer arithmetic. So google 3D Bresenham and adapt the code fragments to work on an Arduino.
That will allow you to draw a line through a rasterized 3D space. so on an Arduino that would be a 256 x 256 x 256 large space.

This will allow you to smoothly fade from any given coordinate to zero, without any color dropping out too early. If thats what you are trying to accomplish I can dig out work I've done to get that accomplished.

2. However, the algorithm above will NOT keep the color consistent. That is difficult to do in the RGB coordinate system. In order to keep the color consistent in terms of Hue and saturation you'd have to adapt a HSV (Hue, saturation, Value) color model. You'd fade down the Value to dim the LED while keeping the color constant. Well, more or less. the non-linearity explained earl will come into play here as well and can further complicate the situation. I've got code for that a well.
17  Using Arduino / Networking, Protocols, and Devices / Re: Controlling Arduino with iPhone on: August 01, 2014, 10:34:17 pm
You can connect an Ethernet shield to the Arduino and then connect a little WiFi pocket router like the TPLink TL WR702n (or 703n) to the Ethernet Shield. the T Router has the ability to function and an AP so you can connect to it directly from the iPhone without needing a router.
If the solution needs to be small then you could use a CC3000 (WiFi) breakout board or shield e.g. from Adafruit ( That however will require a router to connect through.

On the iPhone side you could use TouchOSC ( You can create your own interface on the PC (or mac) that defines what OSC messages you want to send and receive and then upload the interface to the TouchOSC app on the iPhone.
On the Arduino side you'd use the Oscuino library (

I use a Teensy 3, with WIZ820io for Ethernet connected to a TPLink WR702n for WiFi and Oscuino and Touch OSC on the iPhone. I know that works and is not just wild theory ;-)

I am looking forward to a complete description of your project!
18  Using Arduino / LEDs and Multiplexing / Re: Fading an RGB LED on and off on: August 01, 2014, 10:01:03 pm
The limitation to 8-bit PWM or 256 steps only applies to the Arduino boards. The Arduino compatible Teensy 3.x boards have 16 bit PWM pins and the PWM frequency on those is easy to modify and allows a greater range than what you'd find on a normal Arduino.

The reason for the large visible "steps" in brightness can be attributed to the low 8-bit PWM resolution.
The fact that a step from say 210 to 211 does not result in a visible step, but a change from 4 to 5 is clearly visible is explained by the non-linear response of the human eye to brightness. It describes approximately a logarithmic curve or more precisely the CIE lab curve. The human eye is more sensitive at low light values.

All this can be taken care of by fancier hardware and algorithms.
19  Using Arduino / LEDs and Multiplexing / Re: Lost with 50w LEDs + PWM on: June 28, 2014, 03:44:15 pm
A couple more questions:
1. how many of these LEDs are you going to use and how far are these apart ?
2. If you are going to use this on a boat, will this ultimately below the water line or will it be installed in a dry area ?
20  Using Arduino / LEDs and Multiplexing / Re: Lost with 50w LEDs + PWM on: June 27, 2014, 09:34:19 pm
You will need two power supplies, one for the Arduino and a separate one or the LED shield. The LED shield would receive the output from your boats battery that is stepped up by the boost converter you have referenced before.

The boost converter has a 32-35 V output and that is within the range of input voltage (6V-39V) the shield can take.
It is also higher than the forward voltage Vf of the LEDs. Good!

You don't need to set a constant voltage for the LED as LEDs are constant current devices. You will need to set the constant current. That particular shield allows three different constant currents 0.35A, 0.7A and 1A. The voltage that drops across the LEDs will change as they get hot during operation, but the current will remain constant.

Speaking about the LEDs getting hot. Do not operate these 50W monster LEDs before you have mounted them to a massive heat sink!

I would have to make one disclaimer though. I have not worked with that particular shield but with the very similar 1-channel version of that LED driver which has a smaller input voltage range.
Also that shield is directly driven by the Arduino's PWM pins and if I understand the one review on Tindie correctly it does not come with any documentation. Also the Arduino pins only do 8-bit dimming so 256 steps. for Very slow, smooth dimming that's too little.
21  Using Arduino / LEDs and Multiplexing / Re: Lost with 50w LEDs + PWM on: June 26, 2014, 07:57:32 pm
To answer the original question of how the pt4115 drivers work, they are constant current, switched power supplies.
The constant current is set by means of a selecting a specific value for the current sense resistor. Some of these drivers have a selection of several of these on board and the selection happens by means of solder jumpers.

There are a few interesting boards on that are possibly better than the small single channel ebay drivers linked in this thread:
22  Using Arduino / LEDs and Multiplexing / Re: Lost with 50w LEDs + PWM on: June 25, 2014, 07:36:23 pm
I am assuming you are referring to the pt4115 drivers available from ccc suppliers (cheap Chinese crap  smiley-grin ) on eBay.
These drivers are essentially a constant current switching power supply in buck configuration, meaning that the input voltage must be higher than the output voltage.
If you rapplication requires a higher output voltage (28V) than input voltage(12V) you need a boost configuration.
However, assuming by how you asked the question that you don't know too much about LED drivers, why don't you post your application and then we can see what alternatives are available ?
23  Using Arduino / Interfacing w/ Software on the Computer / Re: Arduino Nano + ENC28J60 + MQTT on: June 12, 2014, 08:45:18 pm
Were you going to post more detail so we would have an idea of what you a even hoping to accomplish ?
24  Using Arduino / Networking, Protocols, and Devices / Re: communication for small robotics projects on: June 01, 2014, 04:06:19 pm

I am wanting to get to arduinos to communicate with each other. I have heard of i2c and pwm signal and that pwm can be transmitted from an fm transmitter. What is the best communication method for wired and wireless communication. I have heard of xbees and other wireless communication modules but would like to build my own transmitters and receivers. Also if any one could explain to me how i2c and pwm SIGNAL work it would be appreciated.

Any help will appreciated.

How about you try to google some of that stuff. Do some homework. When you have more specific questions come back and ask!
25  Using Arduino / Networking, Protocols, and Devices / Re: Ethernet and OSC on: May 14, 2014, 09:17:45 pm
The matter of fact is that  simply don't know whether a non-W5199/W5200 based Ethernet Shield will actually work at all. the danger is that you possibly spend weeks debugging something that at this time you don't have the necessary expertise to do so and then still are left with a non-working project.

Currently I can get a W51000 Ethernt Shield at Newegg for $10.34 Actual availability and pricing depends on where you live.

You mentioned that you have the three  receiving computers connected via wireless  LAN (I assume WiFi). Do you have the computers connected through a WiFi Access Point / Router ?
How would you want your Arduino to connect to the WiFi LAN? Per Ethernet Cable ?

Another thing you may want to do is to post your existing Arduino Code (in code prackets please. Use the # button above to do so.)

In general for my projects I don't use original Arduinos anymore as there are fully compatible, less expensive, more powerful and smaller product available with the Teensy boards
26  Using Arduino / Networking, Protocols, and Devices / Re: Ethernet and OSC on: May 11, 2014, 07:10:19 pm
If you post material that helps us better understand what your project entails then maybe. smiley-wink

I believe  the ENC28J60  based Ethernet Shield is not the best choice. Most of my devices communicate via OSC/Ethernet but I have never used an Ethernet Shield with the ENC28J60 Chip. I'd suggest you get yourself either an original Ethernet Shield, or a clone using either the Wiznet W5100 or W5200 chip.
That'll greatly help getting your project completed. Using an Ethernet Shield that is not supported by the normal Arduino Ethernet library will only make things more difficult to debug, particularly for a beginner.!!!
27  Using Arduino / LEDs and Multiplexing / Re: Tiny Led driver/controller for 3watt leds on: April 23, 2014, 09:58:36 pm
There are several 3-channel high power constant current LED drivers available at Form the simple to the high tech
28  Using Arduino / Networking, Protocols, and Devices / Re: what is the best protocol to connect more than 512 devices to an arduino?? on: April 20, 2014, 11:15:17 am
I2C only has 127 addresses and some of those are reserved for other purposes and really aren't available.
The limitation of I2C comes from bus capacitance. That includes also the capacitance each device on the bus adds. Even with a bus extender you have to find a balance between overall bus length and number of devices 100+ devices AND 300 ft of bus lengt is rather unrealistic aside from falling sort for the number of devices you want to connect.

 I am not aware of any low cost bus system that can accommodate 512 devices.
29  Using Arduino / Networking, Protocols, and Devices / Arduino Ethernet Bonjour / ZeroConf Networking Library on: April 19, 2014, 07:34:25 am
Over the last few months I've been updating the Arduino EthernetBonjour library still available online at The original library was written for Arduino 0017 and required separate libraries for DNS and DHCP. With Arduino 1.x these are not required anymore as they are part of the Arduino Ethernet library.

The main reason for the overhaul is that the original library made 50+ calls directly to the W5100 Ethernet chip and as such was very hardware dependent. I had already upgraded it to work with Arduino 1.x and also to work  with the W5200  Ethernet Chip found for example on the WIZ820io Ethernet Module.

The new library is more or less hardware independent. Bonjour and its underlying mechanisms mDNS and DNS-SD use UDP as its base protocol. As such the overhauled library only works with calls to the read/write methods from the EthernetUDP. This should greatly help to adapt it to other hardware and I am hoping for support from the community. The CC3000 from Texas Instruments would be a good candidate.

The changes to the Bonjour library also necessitated the addition of a routine to the EthernetUDP library in order to allow sending UDP multicast messages, required to implement mDNS and DNS-SD. This has been very similarly discussed on the Arduino forum over a year ago

EthernetUDP.h needs these lines aded in the sensible places:

virtual uint8_t beginMulti(IPAddress, uint16_t); // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use Sending UDP packets
friend class EthernetBonjourClass;

EthernetUDP.cpp need this added routine:

/* Start EthernetUDP socket, listening at local port PORT */
uint8_t EthernetUDP::beginMulti(IPAddress ip, uint16_t port) {

  for (int i = 0; i < MAX_SOCK_NUM; i++) {
    uint8_t s = W5100.readSnSR(i);
    if (s == SnSR::CLOSED || s == SnSR::FIN_WAIT) {
      _sock = i;

  if (_sock == MAX_SOCK_NUM)
    return 0;

  byte mac[] = {  0x01, 0x00, 0x5E, 0x00, 0x00, 0x00 };

  mac[3] = ip[1] & 0x7F;
  mac[4] = ip[2];
  mac[5] = ip[3];

//  byte mac[] = { 0x01, 0x00, 0x5e, 0x00, 0x00, 0xfb };

  W5100.writeSnDIPR(_sock, rawIPAddress(ip));
  W5100.writeSnDPORT(_sock, port);

  _remaining = 0;

  socket(_sock, SnMR::UDP, port, SnMR::MULTI);

  return 1;

As noted in the documentation on the original web site, the library compiles to a relatively large chunk of code and is aimed at bigger boards with more flash and ram memory. I don't own an Arduino Mega and in recent projects only have used Paul Stoffregen's Teensy boards .
The Examples provided in the library compile and work out of the box with a Teensy++2 <-> WIZ812MJ  and with a Teensy 3 <-> WIZ820io.

The new library is available here:
30  Using Arduino / LEDs and Multiplexing / Re: 10 W LED with Tinkerkit MOSFET on: March 05, 2014, 07:32:11 pm
8,4V DC - regulated ?  (should be)
Put a capacitor parallell to led.
PWM dutycycle out to MOSFET is 0/255..255/255
Post code and schematic..

It is the current that needs to be kept constant, not the voltage. Otherwise you'll kill the LED in time.
Pages: 1 [2] 3 4 ... 20