|
556
|
Using Arduino / General Electronics / Re: Data cable issues - problem goes away when touching cable with my hand!
|
on: January 21, 2012, 09:53:23 am
|
|
Another option is to go to a driver chip with a different interface and use a communications standard like RS485 that is inherently a bit more tolerant of interference to communicate among the daisy-chain of your LED assemblies. I doubt that these chips can handle SPI speeds reliably over long distances but serial should be OK and your LEDs can't blink as fast as the SPI bus and still do something useful, right?
|
|
|
|
|
557
|
Topics / Science and Measurement / Re: High Resolution Thermocouple and Data Log
|
on: January 20, 2012, 02:19:33 pm
|
Honestly, if you *really* need 1000 samples per second, the only tool that would do readily do that is an oscilloscope or a dedicated data acquisition system. Nothing really converts and sample that fast, nor does it make sense to in an industrial control setting, which is what most of these tools are. Allow me to disagree a bit. One approach is to find an external ADC that samples quickly, with a high enough resolution, and which interfaces easily to an Arduino. Circuit #3 on this page may fit the bill, up to 12 bits of resolution with 11ksamples/s. You may be able to boost to 13 bits of resolution through decimation on the Arduino and still enjoy a faster than 1ksample/s rate. McSarge even wrote a program to interface with the LTC1298 for you. Not sure what the maximum sampling rate is, but you could time it and see how quickly the code executes. I think the bigger challenge is what to do with the deluge of data. The serial bus is likely too slow to transfer such a quantity without significantly reducing the sampling rate at standard transmission rates. Non-standard serial transfer rates (i.e. about 115kbaud) are possible, but not with the Arduino IDE (i.e. you'll have to use PuTTy, etc.) I've transferred at 1Mbit/s between arduinos but couldn't monitor said transfer in the Serial Monitor.
|
|
|
|
|
558
|
Topics / Device Hacking / Re: Harvesting components from devices
|
on: January 19, 2012, 01:28:15 pm
|
I too love to take dead devices apart... first with the hope towards arepair, second with an interest in how it was made, third to harvest components if it's truely dead. If you're looking for high-voltage transformers, BTW, microwave ovens are a great source for them unless it's an "inverter" model. Some folk have used multiple microwave transformers in series to do stick welding projects.  I expect these analog devices to disappear from microwaves over time thanks to the commodity price increases combined with a steady decrease in transistor prices. Just like the classic transformer/bridge rectifier/linear VR/smoothing cap circuit we used to see in all appliances..
|
|
|
|
|
559
|
Using Arduino / General Electronics / Re: How to calculate what capacitors to use?
|
on: January 19, 2012, 01:06:44 pm
|
|
Read the datasheets carefully. One linear voltage regulator I used was not happy when it only encountered a ceramic capacitor on its output. Not only did I blow a voltage regulator, but the downstream SD card too (4.5VDC vs. 3.5VDC max allowable will do that for you). Other voltage regulators I have used subsequently specifically stated that they are safe for use with ceramic output capacitors. But they tend to sell at a premium and you have to confirm (via datasheet or inquiries with the manufacturer) that the regulator will be stable using only a (or several) ceramic output capacitor(s).
More often than not, linear voltage regulators are specified to use a large Alumimum Electrolytic or Tantalum capacitor along with a 100nF ceramic one. Data sheets and application examples by the manufacturer are invaluable to beginners like myself, they take a lot of guesswork (and magic smoke) out of the equation.
|
|
|
|
|
560
|
Using Arduino / Sensors / Re: Current Sensing
|
on: January 19, 2012, 12:47:58 pm
|
A couple of suggestions: - Determine the maximum voltage you may be measuring. Add a safety factor (I use 25%) and then see if you can either use the internal voltage reference (1.1VDC, 2.56VDC, etc. depending on the model of your Atmel microprocessor) or whether it makes sense to apply an external voltage reference to the AREF pin. The latter approach is preferable, IMO, especially if you use a voltage reference or a small voltage regulator because variability in the power supply voltage won't propagate into your measurements as easily. However, many people use a cheaper approach using voltage divider networks that also do the trick (but which are more prone to be influenced by other devices attached to your Arduino).
- Keep in mind: Once you set a alternate AREF voltage (through software or hardware) do not try to sample a higher-voltage signal on a analog input channel or you will blow your ADC. Here, the software approach of setting the internal reference is more flexible, you can easily switch back and forth between reference voltages though you have to add some settling time between measurements.
- Consider using decimation for your signal. Keep the analogread results in their original integer format, oversample, decimate, and enjoy results of up to 16 bits or so. Atmel has a nice paper on this topic, just google atmel and decimate.
|
|
|
|
|
561
|
Using Arduino / Sensors / Re: Connecting 24V inductive sensors to Arduino
|
on: January 19, 2012, 07:45:44 am
|
|
I'd recommend a optocoupler with a drop-down resistor to make it safe. In case the signal is AC, use a AC optocoupler. That's what I have used here with my air conditioning system (the signals for most residential AC control systems in America are 24VAC). Attach the opto to a digital input and then count the pulse train. Given how slow the signal is, you could use a ISR to do the counting and then let your Arduino refer back to the count whenever you want.
|
|
|
|
|
562
|
Using Arduino / Project Guidance / Re: need more accuracy out of my 60Hz frequency meter
|
on: January 19, 2012, 06:23:28 am
|
|
FWIW, I'd go a different route. If you need a really accurate dedicated pulse counter, I'd hook up the SQW output of an inexpensive RTC to one of the interrupt pins (using DS1307, for example). Then program a 1Hz signal output on the RTC and set up an Arduino interrupt to set a flag or increment a counter for every second that goes by. In the meantime, read the frequency as fast as possible.
Since you don't really need amplitude, you may even do this at a ADC lower resolution, i.e. you can adjust the ADC pre-scaler to a lower value like 16 (vs. the default 128) to get tens of thousands of readings a second. If you want to speed up things further, you can read analog values directly from the relevant port and thus get another reading about every 13 ADC clock cycles (so CPU speed / pre-scaler / 13 = max theoretical sampling rate).
I wouldn't count frequency with an ISR... every time the CPU has to go into ISR mode, you lose 51 CPU clock cycles as I recall. OK if your code has lots of idle time, maybe not so OK if you have time-sensitive stuff going on. Instead, I would dedicate a small period of time (let's say a second out of every minute) to just count the frequency and then dedicate the CPU to other tasks.
RTCs also feature other output frequencies. You could avoid the ISR altogether and do frequency measurements on demand by sampling the frequency signal with the ADC output while sampling the RTC output with a digital input. Since you can sample very quickly using a small pre-scaler, you can set up a for loop that increments every time a RTC signal drops low, then measure a known number of increments at a given frequency to determine your other frequency. Thus, you might be able to determine your frequency with a high degree of accuracy, as needed.
|
|
|
|
|
563
|
Using Arduino / General Electronics / Re: How important is a ground pour, or am I asking the right question?
|
on: January 18, 2012, 11:25:44 pm
|
|
Looks awesome.
But if you want to consider going down this path of creating bigger and bigger pour areas, did you consider putting the driver chips on each of the vertical "legs"? That could save you space on the main PCB without increasing cost significantly. Another option is to find a vendor for flexible PCBs... the only downside being that flexible PCBs are even worse than FRP re: heat dissipation. Though given your application, you probably would be OK. You've probably thought of all this already, I was just thinking aloud.
Congrats again on a neat project.
|
|
|
|
|
566
|
Topics / Product Design / Re: PCB make+assemble service
|
on: January 18, 2012, 08:05:04 pm
|
Thanks for making holland sound like a pile of weed and strippers btw  Well, the truth hurts! (just kidding!) The Swiss enjoy similar hospitality in German border towns in establishments that are happy to take Swiss as well as EU currency. That way, the Swiss can indulge in all sorts of naughty stuff that is banned in Switzerland without having to change currency.  Coming back to the subject at hand, thanks for the mention of the Seeedstudio assembly services! I will have to keep that in mind for my current project, Seedstudio costs about a quarter of what I would pay for similar services performed in the States. Makes sense, I guess, the PCB fabrication cost discrepancy is similar.
|
|
|
|
|
568
|
Using Arduino / Microcontrollers / Re: ATmega1284P: End to End using 1.0 IDE
|
on: January 18, 2012, 07:17:13 pm
|
|
Adi, nice looking board. The big solid ground pours and the signal, etc. lines show great attention to detail to keep things looking that 'simple'. I have spent many long hours optimizing my layouts too in order to minimize signal-line vias, etc. I am also very happy with the quality and cost of iteadstudio, now if only their PCB factories weren't on vacation until February!
CrossRoads, your solution to the much-debated question of whether to or not to include a USB interface is simply brilliant, especially since those of use who have an FTDI cable can use it too.
|
|
|
|
|
569
|
Using Arduino / General Electronics / Re: How important is a ground pour, or am I asking the right question?
|
on: January 18, 2012, 07:03:35 pm
|
A couple of observations... For one, you appear to be using the Eagle(?) autorouter. As others have suggested, the autorouter usually doesn't do very well (and the one in Eagle has not impressed me). For component layouts (to gauge how efficient a layout is) I have had great luck with the http://www.freerouting.net/ project. Frequently, designs with few tweaks can be adopted and integration is pretty simple for Eagle users (i.e. run a DSN, route, then run a script to lay the board out). Just remember to define your polygons up front (i.e. not only draw the polygon, but name it GND as well) and then to connect polygons that have fallen apart after the fact. Ground planes (and positive rail grids) can simplify layouts significantly since one connection is always taken care of. The key is to review carefully what the optimum connection pattern is (and the auto-router may or may not discover that) and then to replicate it for assemblies like yours. Last but not least, another option for a power hungry board is to have a positive polygon on one side and a negative one on the other side. Then use Eagle to determine what polygons still need connections, etc. As CrossRoads mentioned, using vias to connect polygons is the way to go. See how small you can go (your PCB factory should be able to tell you) in order to maximize the effectiveness of your vias. Laen's dorkbot PDX service allows 15 mil drills, while iteadstudio goes as low as 12 mils, for example.
|
|
|
|
|
570
|
Using Arduino / Sensors / Re: Help with DHT11
|
on: January 18, 2012, 05:32:21 pm
|
|
Try opening a new file, copy and paste your existing code into the new file, then try and compile.
I had the same issue with Easy Transfer on a file that had worked in the past and the copy and paste did the trick for me.
|
|
|
|
|