tag:blogger.com,1999:blog-47022879557997199582024-02-07T23:10:34.179-05:00Arduino Your Home & EnvironmentLearn to monitor and control your home & environment with self contained, inter-communicating microprocessors. Arduino / Raspberry Pi DAQ and IOT Applications include ham radio, robotics, weather stations, model railroading, toys and more. Unknownnoreply@blogger.comBlogger498125tag:blogger.com,1999:blog-4702287955799719958.post-86961511139021962472019-03-20T16:27:00.001-04:002019-04-01T21:55:54.304-04:00Get Started with Arduino in 1 Day<h2 style="text-align: center;"><span style="color: #3d85c6;"><span style="color: #3d85c6;"><span style="color: #0580ad; font-size: x-large;">Introducing a 12-Step System to Take You From 'Zero to Sixty' with Arduino in One Day</span></span></span></h2><div style="font-size: 18px; font-style: normal; font-weight: normal;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhyphenhyphenElaxr_50zKg_gkjjjC1aAZo8WAcKBMIkEjiqIlRdOOZGFIX-4wKtDxIk9Z7IzDdRlkTjkubVHvVUhVL3shmeKR0hClRVeEhpKoPzDWm0Ayz-N0KFh2BNvmq8VB99hW5nXg4qr7nvbL1/s1600/Banzi+Quote.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhyphenhyphenElaxr_50zKg_gkjjjC1aAZo8WAcKBMIkEjiqIlRdOOZGFIX-4wKtDxIk9Z7IzDdRlkTjkubVHvVUhVL3shmeKR0hClRVeEhpKoPzDWm0Ayz-N0KFh2BNvmq8VB99hW5nXg4qr7nvbL1/s640/Banzi+Quote.jpg" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"></div>Do you want to start creating with Arduino?</div><div style="font-size: 18px; font-style: normal; font-weight: normal;"><br />
</div><div style="font-size: 18px; font-style: normal; font-weight: normal;">Are you overwhelmed or confused by the massive amount of information (and miss-information) out there?</div><div style="font-size: 18px; font-style: normal; font-weight: normal;"><br />
</div><div style="font-size: 18px; font-style: normal; font-weight: normal;">Don't let this stop you from being the Maker <i><b>you were born to be</b></i> any longer. You can create some amazing things with Arduino and I'm going to show you how to quickly and effortlessly get started.</div><div style="font-size: 18px; font-style: normal; font-weight: normal;"><br />
</div><div style="font-size: 18px; font-style: normal; font-weight: normal;">Not only am I an electrical engineer, I've been an electronics hobbyist and Arduino enthusiast for a while.</div><div style="font-size: 18px; font-style: normal; font-weight: normal;"><br />
</div><div style="font-size: 18px; font-style: normal; font-weight: normal;">And I've developed a <i><b>step-by-step system</b></i> to help you quickly get started making with Arduino. Now I want to share that system with you...including...</div><div style="font-size: 18px; font-style: normal; font-weight: normal;"><br />
</div><ul><li><span style="font-size: large;"><b><i>Get started quickly</i> </b>- 4 crucial things you NEED to know about the Arduino and how to easily master them </span></li>
<span style="font-size: large;"> </span>
<li><span style="font-size: large;"><i><b>Start writing code in no time</b></i> - learning to program doesn't have to be complicated or require a college degree. You'll start coding right away with these top programming "hacks"</span></li>
<span style="font-size: large;"> </span>
<li><span style="font-size: large;"><i><b>Start creating NOW</b></i> with these 12 proven steps hundreds of Makers have used to go from 0 to 60 with Arduino in no time flat</span></li>
</ul><h3>Find out more: <a href="https://www.circuitcrush.com/arduino-get-started-now/">How to Get Started with Arduino in 1 Day or Less </a></h3>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-38638816781867992422019-03-13T12:52:00.002-04:002019-03-27T18:01:31.209-04:00Arduino Intermediate Model Railroad Projects<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBXrOO6dXWQs1BfCH1x3YLb_7h8t4U447iqv7mC-1Cxq3IbaJxHSg8oP6KsH4iJEgwgYiKi3lzLoizcmKqfBdLVcEWo-4XaUtiFQE9SrBOcgsOinLMV_o5oZ3bP48zQTqjTu8ZiFYxXRg/s1600/arduinoMRR.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="500" data-original-width="311" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBXrOO6dXWQs1BfCH1x3YLb_7h8t4U447iqv7mC-1Cxq3IbaJxHSg8oP6KsH4iJEgwgYiKi3lzLoizcmKqfBdLVcEWo-4XaUtiFQE9SrBOcgsOinLMV_o5oZ3bP48zQTqjTu8ZiFYxXRg/s320/arduinoMRR.jpg" width="199" /></a></div>
Want Arduino projects for your Model Railroads? Learn about object / block detection sensors, signaling, servo control, inter-Arduino communications, JMRI integration, speed measurement, turntable indexing and sound projects. All code and schematics included, as well as step-by-step instructions.<br />
<br />
<a href="https://www.amazon.com/gp/product/B07PF119C8/ref=as_li_tl?ie=UTF8&tag=circuitcrush-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B07PF119C8&linkId=92b69f588df20c6bd18ba54eaebd3c69" rel="nofollow" target="_blank">Arduino Intermediate Model Railroad Projects</a><br />
<br />
Additional Resources:<br />
<br />
<a href="https://www.amazon.com/gp/product/1537577158/ref=as_li_tl?ie=UTF8&tag=circuitcrush-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=1537577158&linkId=5f576a814adc9a554dd48e6436258e4d" rel="nofollow" target="_blank">Arduino Model Railroad Animation</a><br />
<br />
<a href="https://www.amazon.com/gp/product/B016FJO0XW/ref=as_li_tl?ie=UTF8&tag=circuitcrush-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B016FJO0XW&linkId=079b8b405d971b082ff935e0ec852416" rel="nofollow" target="_blank">Arduino Model Railroad Signals</a><br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-3408179313071677652019-02-27T16:45:00.000-05:002019-03-27T18:40:38.449-04:00Flyback Diodes<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYTgAs6cII_FN6p2b-6FiCauFVWT5X5qgPd_92Fv_MmDdi16cWDVqwVEBIFgpZJGK4hzUzIYuQyDGYSyNUluRBYxjVnE7Jhi9VScxjSfLtEnl9K3M07_qrR5LrimhtEApDuD07SVf2zFc/s1600/flyback+diode.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="449" data-original-width="642" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYTgAs6cII_FN6p2b-6FiCauFVWT5X5qgPd_92Fv_MmDdi16cWDVqwVEBIFgpZJGK4hzUzIYuQyDGYSyNUluRBYxjVnE7Jhi9VScxjSfLtEnl9K3M07_qrR5LrimhtEApDuD07SVf2zFc/s320/flyback+diode.JPG" width="320" /></a></div>
Flyback Diodes are used with inductive loads like dc motors and relays. Lets use a relay for an example. A common relay has a 12v 120 ohm coil. In use it draws .1 Amps. When you turn off the power, energy is pumped back into the circuit briefly as the field in the coil collapses, equal to the energy used while energized. A reverse diode across the load absorbs this spike, preventing damage to the circuit powering the load. In our example, 12 Volts / 120 Ohms = .1 Amps, so we need a diode capable of handling .1 Amps at 12v. The common <a href="https://www.diodes.com/assets/Datasheets/ds28002.pdf" rel="nofollow" target="_blank">1N4001</a> is rated for 1 Amp at 50 Volts, so this is more than adequate for this application.<br />
<br />
Remember the diode is installed "backwards", with the stripe facing the positive, not the negative as a diode would typically be used.<br />
<br />
<a href="https://en.wikipedia.org/wiki/Flyback_diode" rel="nofollow" target="_blank">Additional Info</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-90701726983330411372019-01-23T08:33:00.000-05:002019-03-27T19:08:30.573-04:00Charging Lithium Ion Batteries with the Arduino<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhlIXGl7-mZS7uGr2I9irzM3tQFJ1161zCnS58zFX-TCl4X8m2S0cbJyCkbX34s1BUdRdKBhQsmxMu0fGSrUEiCspc8X-mwQBPQ_6E8a51a4PHWT5hSqjrt45zCOW-P4DEYjynI-rwVKc/s1600/7.4V-Two-Step-Lithium-Battery-Charger-Circuit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="429" data-original-width="750" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhlIXGl7-mZS7uGr2I9irzM3tQFJ1161zCnS58zFX-TCl4X8m2S0cbJyCkbX34s1BUdRdKBhQsmxMu0fGSrUEiCspc8X-mwQBPQ_6E8a51a4PHWT5hSqjrt45zCOW-P4DEYjynI-rwVKc/s320/7.4V-Two-Step-Lithium-Battery-Charger-Circuit.jpg" width="320" /></a></div>
Many of our projects are running off the common <a href="https://amzn.to/2Ytzt1A" rel="nofollow" target="_blank">18650 Lithium Ion battery</a>, so today we wanted to talk about the math of charging, and of course we want to use an Arduino to manage that charge.<br />
<br />
Lithium Ion batteries need a Constant Current (CC) / Constant Voltage (CV) charge. It starts out in CC, then switches to CV to finish once the battery comes up to a specified voltage.<br />
<br />
If you have a 2000mah battery, you typically want a charge current of half that, so multiply .5 * 2000mah = 1000 ma charge current (check your battery datasheet for recommended charge current).<br />
<br />
We are charging 4 batteries in series, so 4 * 4.2v = 16.8v is our maximum charge voltage.<br />
<br />
We will be using two <a href="https://amzn.to/2WrIuX6" rel="nofollow" target="_blank">LM317 regulators</a>, one in CC mode, and one in CV mode. The LM317 has a 1.5A maximum with a <a href="https://amzn.to/2WsyCMC" rel="nofollow" target="_blank">heat sink</a>. If you need more current, use the LM338 (5A).<br />
<br />
To determine the correct resistor for the CC regulator, we divide 1.25v by the desired current (1A), and get 1.25 ohms. We also need to determine the resistor wattage, so multiply 1.25v * 1A and we get 1.25W (use a 2W resistor).<br />
<br />
R1 (Ohms) = 1.25v / 1A<br />
R1 (Watts) = 1.25v * 1A<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif_EB8wLZxpx4RANiaj1rWHOwyGLKJrMIvh0zV7sJ73aJolY_ornIWhPEmyXPVX4LJtJcvFtPZKzVb1LoMA9JVEa8FVrWarAg5DbDrjt_PYB_pW9-vP8zf63G0dWn-ZCC8tzb4Lb3TQ4Q/s1600/lm317t-current-regulation-circuit.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="97" data-original-width="390" height="79" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif_EB8wLZxpx4RANiaj1rWHOwyGLKJrMIvh0zV7sJ73aJolY_ornIWhPEmyXPVX4LJtJcvFtPZKzVb1LoMA9JVEa8FVrWarAg5DbDrjt_PYB_pW9-vP8zf63G0dWn-ZCC8tzb4Lb3TQ4Q/s320/lm317t-current-regulation-circuit.gif" width="320" /></a></div>
<br />
<br />
To determine the correct resistors for the CV regulator, we need our desired output voltage (I will use 16.4v to give more life to the batteries, and less stress on an optional inverter) . We will use 220 Ohms for R1 and 2700 Ohms for R2.<br />
<br />
R2 = R1 * ((Vout - 1.25)/1.25)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn8mw8BRAgzDZXsWdkW6UiVAVGF6F6N8SFFH_mhQbHOEprzircgSk7_RKL2CZ_o5vSMTS2VO_4Zo_CY6fulnjc6Qmt13bDrJ-CyEaFsp5Z_DJ_MfbbjhAR730vruxNVXJ7tYyf0lzLmAwy/s1600/lm317t-voltage-regulation-circuit.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="203" data-original-width="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn8mw8BRAgzDZXsWdkW6UiVAVGF6F6N8SFFH_mhQbHOEprzircgSk7_RKL2CZ_o5vSMTS2VO_4Zo_CY6fulnjc6Qmt13bDrJ-CyEaFsp5Z_DJ_MfbbjhAR730vruxNVXJ7tYyf0lzLmAwy/s1600/lm317t-voltage-regulation-circuit.gif" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
The Arduino is used to monitor voltage and current, and toggle two relays, disabling the CC regulator and enabling the CV regulator when the voltage hits 80% of target, then shutting down the CV regulator when current drops below 50ma. Active mode as well as voltage and current can be displayed on a LCD. See the <a href="https://circuitdigest.com/microcontroller-projects/two-step-lithium-battery-charger-circuit-with-cc-cv-mode" rel="nofollow" target="_blank">tutorial</a>.<br />
<br />
A future upgrade will be a temperature sensor that stops charging (and discharging) when the battery temperature exceeds a predetermined value. We can also drop the load when the battery discharges to a predetermined value.<br />
<br />
References:<br />
<br />
<a href="https://circuitdigest.com/calculators/lm317-resistor-voltage-calculator" rel="nofollow" target="_blank">https://circuitdigest.com/calculators/lm317-resistor-voltage-calculator</a><br />
<a href="http://www.reuk.co.uk/wordpress/electric-circuit/lm317-current-calculator/" rel="nofollow" target="_blank">http://www.reuk.co.uk/wordpress/electric-circuit/lm317-current-calculator/</a><br />
<a href="http://www.reuk.co.uk/wordpress/electric-circuit/lm317-voltage-calculator/" rel="nofollow" target="_blank">http://www.reuk.co.uk/wordpress/electric-circuit/lm317-voltage-calculator/</a><br />
<a href="http://www.learningaboutelectronics.com/Articles/LM317-resistor-and-voltage-calculator.php" rel="nofollow" target="_blank">http://www.learningaboutelectronics.com/Articles/LM317-resistor-and-voltage-calculator.php</a><br />
<br />
<a href="https://www.electricbike.com/introduction-lithium-18650-batteries/" rel="nofollow" target="_blank">https://www.electricbike.com/introduction-lithium-18650-batteries/</a><br />
<a href="http://www.rfcafe.com/references/electrical/resistor-values.htm" rel="nofollow" target="_blank">http://www.rfcafe.com/references/electrical/resistor-values.htm</a><br />
<br />
<a href="http://www.ti.com/lit/ds/slvs044x/slvs044x.pdf" rel="nofollow" target="_blank">LM317 Datasheet</a><br />
<a href="https://www.powerstream.com/p/INR18650-25R-datasheet.pdf" rel="nofollow" target="_blank">Samsung 18650 Datasheet</a><br />
<br />
<br />Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-4702287955799719958.post-52844136338056069932018-12-13T10:16:00.001-05:002019-03-27T19:14:33.809-04:00ESP8266 / DS18B20 Temperature; Ajax Web Updates<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIDRFigWYVbCXxUBmsna2k0Zupi9liAySFiGJvSJvNl8Wybrlb7qJ9PEFSdQ5n6V9ZWUH7YesyHQO49bSHBn3-kxy9Phn_c3zTqg578O_gzyqjyJRPJ4QDQESbugbjNtzO1lyGvmy0jSY/s1600/20181213_094850.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIDRFigWYVbCXxUBmsna2k0Zupi9liAySFiGJvSJvNl8Wybrlb7qJ9PEFSdQ5n6V9ZWUH7YesyHQO49bSHBn3-kxy9Phn_c3zTqg578O_gzyqjyJRPJ4QDQESbugbjNtzO1lyGvmy0jSY/s320/20181213_094850.jpg" width="240" /></a></div>
I wanted to monitor temperature with a <a href="https://amzn.to/2WyAjbH" rel="nofollow" target="_blank">ESP8266</a>, and display the results on a web page. I grabbed a <a href="https://amzn.to/2UXqOSM" rel="nofollow" target="_blank">DS18B20</a> temperature sensor, and created a web server to display the results. I decided to use Ajax, so that the results would autoupdate without having to reload the page. The question came up, what IP address did the ESP8266 grab, so I know where to point my browser. I had a <a href="https://amzn.to/2Ww2t79" rel="nofollow" target="_blank">I2C LCD</a>, so I connected that to show the IP address. I probably should have assigned a static IP so that it never changes, but hey, now you will know how to use a LCD with a ESP8266.<br />
<br />
I have the I2C LCD connected to the ESP8266 I2C pins, GPIO5 (SCL), and GPIO4 (SDA). The LoLin calls these D1 & D2 respectively. You can specify other pins in the Wire.begin() statement, but the library I'm using doesn't expose that command. My LCD does not run on 3.3v, so I have it connected to the USB Power pin, labeled VU on the LoLin.<br />
<br />
The DS18B20 I connected to GPIO14 (D5), GND, and 3.3v, with a <a href="https://amzn.to/2U0VFSe" rel="nofollow" target="_blank">4.7k Ohm resistor</a> across the D5 and 3.3v.<br />
<br />
When I put the IP address displayed on the LCD (or in serial monitor if you are not using a LCD) in my browser, I get the following display:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz2H3gMZL2HPE9IMEqgzjU4CEgzJU0QuwJZHZbzKMB2QdHdKbmbAL360eWwjv2_UFJqKjHltDT5nKsD5oweVSXbT_UW62WNa621bMbmd1pfksDaCkD-AqqKFjbSLcknv5-QyTdY9bu3T8/s1600/wifi+temp.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="277" data-original-width="665" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz2H3gMZL2HPE9IMEqgzjU4CEgzJU0QuwJZHZbzKMB2QdHdKbmbAL360eWwjv2_UFJqKjHltDT5nKsD5oweVSXbT_UW62WNa621bMbmd1pfksDaCkD-AqqKFjbSLcknv5-QyTdY9bu3T8/s320/wifi+temp.JPG" width="320" /></a></div>
My next modification will be to email me when the temperature climbs above or drops below my preset "acceptable range", indicating a problem with my HVAC system.<br />
<br />
<div style="text-align: center;">
<a href="https://pastebin.com/Q20S4Chy" rel="nofollow" target="_blank">Download the code</a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Libraries:</div>
<div style="text-align: center;">
OneWire and DallasTemperature found in Library Manager</div>
<div style="text-align: center;">
<a href="https://github.com/marcoschwartz/LiquidCrystal_I2C" rel="nofollow" target="_blank">I2C LCD - Marco Schwartz</a></div>
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4702287955799719958.post-74636051293613740862018-12-05T08:04:00.003-05:002019-03-27T21:25:09.081-04:00Build a $200 Computer for Christmas<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE1ZohIWgbmtWhzQI1UYd-xj5BQulfYigZ9aU7b2Aq8s2zP2eqV1w7qd9-Zt-m4aXC-z6p_JLyvgwAejLdd3nvFj5so-jabezog2qGfN1rdZYsXGL8ueP20fBwp0b3jlJMT7wg11mpacjr/s1600/rpi3bplus.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="291" data-original-width="348" height="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE1ZohIWgbmtWhzQI1UYd-xj5BQulfYigZ9aU7b2Aq8s2zP2eqV1w7qd9-Zt-m4aXC-z6p_JLyvgwAejLdd3nvFj5so-jabezog2qGfN1rdZYsXGL8ueP20fBwp0b3jlJMT7wg11mpacjr/s320/rpi3bplus.JPG" width="320" /></a></div>
Do you want to learn Computers, Electronics, and Programming?<br />
<br />
For the last 40+ years kids and adults alike have been building their own computers instead of buying prebuilt, preloaded systems. Times have changed, and so has hardware and software. Some of the coolest tech comes in kit form, so not a lot of building is required, but you can still put it together, and customize it the way you want.<br />
<br />
For the budding programmer or electronics engineer, one of the least expensive ways to put together a full blown linux and IOT programming environment is with the <a href="https://www.raspberrypi.org/" rel="nofollow" target="_blank">Raspberry Pi</a>. The new 3B+ is more powerful than previous versions of the $35 computer, and with onboard WiFi and Bluetooth, very flexible.<br />
<br />
You can build a media server, a VPN device, firewall / router, security system, phone system, automated home control, and much more. Learn to program in Python, or even C/C++. Build web based apps with PHP and MySQL. The I/O pins allow you to read sensors and control relays and LED's. Your imagination is the limit! See <a href="https://randomnerdtutorials.com/build-a-home-automation-system-for-100/" rel="nofollow" target="_blank">Build a Home Automation System</a>!<br />
<br />
Let's see if we can build a complete computer system for $200 or less!<br />
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=webconx&language=en_US&marketplace=amazon&region=US&placement=B07BCC8PK7&asins=B07BCC8PK7&linkId=293faba3c6f5523a09a12abc2ee0c33b&show_border=true&link_opens_in_new_window=true" style="float: left; height: 240px; padding-right: 30px; width: 120px;"></iframe><a href="https://amzn.to/2TB2Zil" rel="nofollow" target="_blank">Raspberry Pi 3B+</a><br />
The heart of the system, this single board computer includes the processor, ram, drive (sd card), video and audio, ethernet, WiFi and Bluetooth. A complete starter kit with power supply, case, sd card, HDMI cable, etc.<br />
Costs about $85<br />
<br />
Raspberry Pi 3 B+ (B Plus) with 1.4 GHz 64-bit Quad-Core Processor<br />
1 GB RAM<br />
Dual Band 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac Wireless LAN<br />
10/100 Ethernet<br />
32 GB Samsung EVO+ Micro SD Card (Class 10) Pre-loaded with NOOBS<br />
USB MicroSD Card Reader<br />
CanaKit 2.5A USB Power Supply with Micro USB Cable and Noise Filter<br />
Premium Raspberry Pi 3 B+ Case and more<br />
<br />
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=webconx&language=en_US&marketplace=amazon&region=US&placement=B079HR85C3&asins=B079HR85C3&linkId=5923e35278473eb009986a961df3dc6a&show_border=true&link_opens_in_new_window=true" style="float: left; height: 240px; padding-right: 30px; width: 120px;"></iframe><a href="https://amzn.to/2TK4b32" rel="nofollow" target="_blank">Wireless Keyboard / Mouse Combo</a><br />
This wireless keyboard and mouse combo makes it easy to use your new Raspberry Pi without wire clutter, and allows some distance between the units.<br />
Costs about $40<br />
<br />
Comfortable palmrest<br />
Single usb wireless receiver<br />
Over 2 year battery life<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=webconx&language=en_US&marketplace=amazon&region=US&placement=B07743412C&asins=B07743412C&linkId=b9ca1c9b2ec87cc7740acd9981fb38f4&show_border=true&link_opens_in_new_window=true" style="float: left; height: 240px; padding-right: 30px; width: 120px;"></iframe><a href="https://amzn.to/2CKpTy1" rel="nofollow" target="_blank">HDMI Monitor</a><br />
You can use your existing HDMI enabled TV, or you can get this 20" LED HDMI monitor with built in speakers. This monitor gets the audio over the HDMI cable, so no external speaker / wire clutter. VESA wall mount ready. 2x HDMI ports, so another HDMI device can also be connected.<br />
Costs about $70<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=webconx&language=en_US&marketplace=amazon&region=US&placement=B01EURJ7XY&asins=B01EURJ7XY&linkId=be5e8c237d8faf9fbaf310d0e2a00587&show_border=true&link_opens_in_new_window=true" style="float: left; height: 240px; padding-right: 30px; width: 120px;"></iframe><a href="https://amzn.to/2Wr3HAv" rel="nofollow" target="_blank">Sensor Kit</a><br />
For the electronics experimenter, add an optional project pack that includes 38 I/O gadgets, including temperature, relay, joystick, sound, and much more, with convenient solderless breadboard and Raspberry Pi I/O connector. Costs about $45Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-41715937620665729542018-11-27T11:27:00.000-05:002018-11-27T11:27:03.940-05:00Python: Floating Point vs. DecimalIn our Arduino projects (programmed in C/C++), we often use a Raspberry Pi for collecting data, and the Python programming language.<br />
<br />
Math with floating point is inherently risky, because a decimal number does not store exactly in binary.<br />
<br />
in python,<br />
1.1+2.2 = 3.3000000000000003<br />
<br />
not the 3.3 you might expect.<br />
<br />
we can force the result we are looking for by importing the Decimal module, and setting the desired precision (2 in this example):<br />
<br />
>>>from decimal import *<br />
>>> getcontext().prec = 2<br />
>>> Decimal(1.1)+Decimal(2.2)<br />
Decimal('3.3')<br />
<br />
Arduino doesn't have a Decimal function, it uses floating point, but you can work around this by using <a href="https://en.wikipedia.org/wiki/Fixed-point_arithmetic" target="_blank">Fixed Point Arithmetic</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-86686080238567306632018-11-16T13:41:00.000-05:002019-03-27T21:26:59.459-04:00Why can't I upload to my Arduino Nano?<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-BSdVGdDICeGK-67D_v5gZFvfHepr39Z0g1w8l0LbF8DV6k0OMAM1wojsKNh4Xsykg5TJx4RyYabi1WSMbICDenoNYF90b76lEJnBVaN0TW8oqxoHhMa4JpXRhDv45QLN7uwXN2eOiHI/s1600/chinese+nano.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1001" data-original-width="1001" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-BSdVGdDICeGK-67D_v5gZFvfHepr39Z0g1w8l0LbF8DV6k0OMAM1wojsKNh4Xsykg5TJx4RyYabi1WSMbICDenoNYF90b76lEJnBVaN0TW8oqxoHhMa4JpXRhDv45QLN7uwXN2eOiHI/s320/chinese+nano.jpg" width="320" /></a></div>
For all of you out there with Chinese <a href="https://amzn.to/2Wm9F5E" rel="nofollow" target="_blank">NANO</a> clones, or older Arduino NANO's, there has been a recent change. The upload baud rate has been bumped up from 57600 to 115200, and that causes a upload error.<br />
<br />
<pre style="background-color: #eff0f1; border: 0px; box-sizing: inherit; color: #242729; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;"><code style="border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xf6</code></pre>
The solution is at hand!
<br />
<br />
Go to<br />
<br />
Tools > Processor > Atmega328P (Old Bootloader)<br />
<br />
and your upload woes should be solved!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-80824564101618589712018-09-26T13:26:00.000-04:002018-10-02T08:19:19.267-04:00Electrolysis Issues with Soil Moisture Sensor<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihTyDIiCskq_6aeLcrnwTQsUb7NsVPRJd9gekxp-T9Wf6Y0IYqv1nf22C48sFYshocBu_CDOAxz_lWfKjp13fy7wV4X7g-NlNoyKjZiyjJuHBWj630TbXrxDZqdYJZdUkViuq94Lx1tcI/s1600/moisture+probe.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="330" data-original-width="664" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihTyDIiCskq_6aeLcrnwTQsUb7NsVPRJd9gekxp-T9Wf6Y0IYqv1nf22C48sFYshocBu_CDOAxz_lWfKjp13fy7wV4X7g-NlNoyKjZiyjJuHBWj630TbXrxDZqdYJZdUkViuq94Lx1tcI/s320/moisture+probe.JPG" width="320" /></a></div>
One problem with testing for moisture in soil or for free water is electrolysis of the electrodes. As material is removed from one electrode and deposited on the other (a byproduct of using a dc current), the resistance changes, and the values coming from the sensor start to drift.<br />
<br />
One way to solve this is to flip the polarity of the current each time you do a read. The following code will change the polarity of the pins (and the equation evaluation) each time through the loop.<br />
<br />
This circuit will print the word "Triggered" if it senses moisture (even skin moisture) and light up the onboard LED. You could have additional sections of code for varying levels of moisture (very wet, wet, dry, very dry), based on the analog results.<br />
<br />
Wiring:<br />
<br />
Probe pin 1 - A0 //analog input<br />
Probe pin 2 - A5 //digital output<br />
2M ohm resistor between A0 (analog input) and A4 (digital output)<br />
<br />
Code:<br />
<br />
int state=0;<br />
int aValue=0;<br />
<br />
<br />
void setup() {<br />
// put your setup code here, to run once:<br />
pinMode(A4, OUTPUT);<br />
pinMode(A5, OUTPUT);<br />
<br />
Serial.begin(9600);<br />
}<br />
<br />
void loop() {<br />
// put your main code here, to run repeatedly:<br />
<br />
if (state==0){<br />
digitalWrite(A4, HIGH);<br />
digitalWrite(A5, LOW);<br />
aValue=analogRead(A0);<br />
Serial.println(aValue);<br />
if (aValue<200){<br />
Serial.println("Triggered");<br />
digitalWrite(13, HIGH);<br />
} else {<br />
digitalWrite(13, LOW);<br />
}<br />
<br />
state=1;<br />
delay(500);<br />
} else if (state==1){<br />
digitalWrite(A4, LOW);<br />
digitalWrite(A5, HIGH);<br />
aValue=analogRead(A0);<br />
Serial.println(aValue);<br />
if (aValue>800){<br />
Serial.println("Triggered");<br />
digitalWrite(13, HIGH);<br />
} else {<br />
digitalWrite(13, LOW);<br />
}<br />
state=0;<br />
delay(500);<br />
}<br />
<br />
<br />
}Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-325977021210801282018-09-20T15:09:00.000-04:002019-03-27T21:28:52.224-04:00Long Distance Serial with RS-422<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4YUuOdh2H2qs-VtKbtbpyJ-FPJuP-Yvf9RpKZEpF3bP2uJItnZtoyU8hE_JLBKlmqqwMbPgJNNZSdMxwrG6DjkvEKA4easuCq4K7oyCWAyuWF-9DBo7r3b0qVyIpH8y_C0WPSySSYE9u8/s1600/yl-128+rs_422.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1024" data-original-width="1024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4YUuOdh2H2qs-VtKbtbpyJ-FPJuP-Yvf9RpKZEpF3bP2uJItnZtoyU8hE_JLBKlmqqwMbPgJNNZSdMxwrG6DjkvEKA4easuCq4K7oyCWAyuWF-9DBo7r3b0qVyIpH8y_C0WPSySSYE9u8/s320/yl-128+rs_422.jpg" width="320" /></a></div>
PC's used to have RS-232 ports to connect things like mice, modems, printers, etc. Then technology moved on to USB. RS-232 had a maximum distance of 50', and USB is 9' (USB 3.0) to 16' (USB 2.0). If you really need to send data a long distance, RS-422 might be the trick. It uses two pair of wires, and CAT 5 is just fine. You communicate up to <b>4900'</b>. Arduino's and other microcontrollers use TTL logic (3v to 5v for a HIGH, 0v for a low), and need a converter to work with other signals. We are using a inexpensive TTL to RS-422 converter called a <a href="https://amzn.to/2YrY5HT" rel="nofollow" target="_blank">YL-128</a>. This module uses a Maxim 490 chip.<br />
<br />
By connecting a Arduino to a YL-128 on each end of the wire, you can communicate as if the two Arduino's were side by side and connected directly.<br />
<br />
Connect one Arduino RX1 to the YL-128 RXD pin (RO), and the Arduino TX1 to the YL-128 TXD pin (DI). Connect a second Arduino and YL-128 on the other end of the cable in the same manner.<br />
<br />
Connect the two YL-128 modules Y-A, Z-B, A-Y. and B-Z.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8tcLveftvYgyUR9kLynsgaS9-LNug3SHNVD5EVBz7mpUPCRDhymToJRDy3oxf7VU4GxWmS_VZ0A6FkBRyhahZDK-rd0xb7rLqEjQQ1KMzRnr8-IhyEVuR1P-bXwufzevZObuSnmJ8X4Q/s1600/max490+rs422.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="514" data-original-width="1285" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8tcLveftvYgyUR9kLynsgaS9-LNug3SHNVD5EVBz7mpUPCRDhymToJRDy3oxf7VU4GxWmS_VZ0A6FkBRyhahZDK-rd0xb7rLqEjQQ1KMzRnr8-IhyEVuR1P-bXwufzevZObuSnmJ8X4Q/s320/max490+rs422.JPG" width="320" /></a></div>
<br />
<br />
You can then load a serial test sketch like the one at <a href="https://www.hackster.io/harshmangukiya/serial-communication-between-two-arduino-boards-d423e9" rel="nofollow" target="_blank">https://www.hackster.io/harshmangukiya/serial-communication-between-two-arduino-boards-d423e9</a>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4702287955799719958.post-79062489673917624222018-08-31T09:07:00.000-04:002019-03-27T21:35:16.006-04:00Driving Relays with the ESP8266<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZhrpRIqZmgFUQovzjEf_wr4pDI5QXhGifdIibmhlRIGnXdgVGXgyn98Fl1caloRGFHsavE4ymqbGPy4apyQ-jI4TjOFUfHBj9xLSl7u7snujFF6Q6-mePT1P1AOLrK8i_oGwzSa1onPk/s1600/relay+board.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="578" data-original-width="1099" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZhrpRIqZmgFUQovzjEf_wr4pDI5QXhGifdIibmhlRIGnXdgVGXgyn98Fl1caloRGFHsavE4ymqbGPy4apyQ-jI4TjOFUfHBj9xLSl7u7snujFF6Q6-mePT1P1AOLrK8i_oGwzSa1onPk/s320/relay+board.JPG" width="320" /></a></div>
The ESP8266 has a current limit of 12ma, so we have to take care when driving relays.<br />
<br />
First I start with a <a href="https://amzn.to/2HJ4itT" rel="nofollow" target="_blank">817C Optoisolator</a>. The <a href="https://www.mouser.com/datasheet/2/239/LTV-8X7%20series%20201610%20-1218079.pdf" rel="nofollow" target="_blank">datasheet</a> says says the IR LED drops 1.2v, so I plug 3.3v source voltage, 1.2v forward voltage, and 12ma forward current into the calculator at <a href="http://led.linear1.org/led.wiz" rel="nofollow" target="_blank">http://led.linear1.org/led.wiz</a> and I get a 180 ohm resistor as the optimum value.<br />
<br />
Now, according to the datasheet for the 817C, the Current transfer ratio at 12ma is around 120%, so I can only conduct around 14-15ma through the photo transistor, not nearly enough to trigger a relay.<br />
<br />
Let's have the photo transistor trigger an additional transistor, one that can allow the full current needed by the coil of the relay. I have chosen a <a href="https://amzn.to/2HWMZF4" rel="nofollow" target="_blank">2N5551</a>, since the <a href="https://www.mouser.com/datasheet/2/308/2N5550-D-110417.pdf" rel="nofollow" target="_blank">datasheet</a> says it can handle 600ma and 5v.<br />
<br />
Now the relay. I chose a <a href="https://amzn.to/2TFeODU" rel="nofollow" target="_blank">HK19F</a> 5v 125ohm relay which, according to Ohm's law and the <a href="http://grobotronics.com/images/datasheets/HK19F-12V.pdf" rel="nofollow" target="_blank">datasheet</a>, draws 40ma. It's a DPDT relay (most commercial modules use a SPDT), but the contacts are only rated for 1A or so.<br />
<br />
Don't forget a flyback diode for that relay. I used a <a href="https://amzn.to/2WyKZXP" rel="nofollow" target="_blank">1N4148</a>, which, according to the <a href="https://www.mouser.com/datasheet/2/308/1N4148-1118184.pdf" rel="nofollow" target="_blank">datasheet</a>, easily handles the current and voltage of the relay.<br />
<br />
If you want, you could add a LED / 150 ohm resistor across the coil of the relay as a visual indicator.<br />
<br />
Now a simple<br />
<br />
<i>digitalWrite(5, HIGH);</i><br />
<br />
makes it all happen!<br />
<br />
UPDATE: 3v MOSFET instead of optoisolator. Simpler and cheaper!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9_04jUzHbUfBqqpNqeEVUARyJBwkFnInB68g0t41tVI631ZF54mR2O-ATI-ZdU4AD3XnU7IVImOdIl5uzsocBFmVN2IHia5cZAcBkBriXmK7TQ-NwhVczebkDKDnKDOD0P_qU1FFwnd8/s1600/esp8266+mosfet+relay+_2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="531" data-original-width="1028" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9_04jUzHbUfBqqpNqeEVUARyJBwkFnInB68g0t41tVI631ZF54mR2O-ATI-ZdU4AD3XnU7IVImOdIl5uzsocBFmVN2IHia5cZAcBkBriXmK7TQ-NwhVczebkDKDnKDOD0P_qU1FFwnd8/s320/esp8266+mosfet+relay+_2.JPG" width="320" /></a></div>
<br />
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4702287955799719958.post-54362874696592422352018-08-30T08:18:00.000-04:002019-03-27T21:41:51.812-04:00Sync'ing ESP8266 GPIO Pins to Arduino Pin Numbers<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijqrSlZu-1R9ayeVO19pInemSyEIopqw9Nz8lP-ue8ICK6dx57RNlyvUr_rjWaRZjyFWAXdRDrpJ3w55otaArPfhsgZ5YaPfqak7kJ68tgkjel7MH96aN4XDO4fTJhaZ3Q0-PRLgOIZds/s1600/az+esp8266.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1500" data-original-width="1500" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijqrSlZu-1R9ayeVO19pInemSyEIopqw9Nz8lP-ue8ICK6dx57RNlyvUr_rjWaRZjyFWAXdRDrpJ3w55otaArPfhsgZ5YaPfqak7kJ68tgkjel7MH96aN4XDO4fTJhaZ3Q0-PRLgOIZds/s320/az+esp8266.jpg" width="320" /></a></div>
Many <a href="https://amzn.to/2FvGGFG" rel="nofollow" target="_blank">ESP8266 12E</a> Boards come with Arduino style pin numbers labeled on the boards, but you use the GPIO pin numbers in your code. If you include the following lines of code in your sketch before setup(), you can use the number silkscreened on your board (different boards may have different pin matchings).<br />
<br />
const byte D0 = 16;<br />
const byte D1 = 5;<br />
const byte D2 = 4;<br />
const byte D3 = 0;<br />
const byte D4 = 2;<br />
const byte D5 = 14;<br />
const byte D6 = 12;<br />
const byte D7 = 13;<br />
const byte D8 = 15;<br />
const byte D9 = 3;<br />
const byte D10 = 1;<br />
<br />
Now you can use something like<br />
<br />
<i>digitalWrite(D6, HIGH); //uses D6 on the ESP8266</i><br />
<br />
in your sketch.<br />
<br />
Of the above GPIO numbers, not all of them are easily available for use. Some are used for flash memory (GPIO 6 - 11), others are used for boot and flash purposes (GPIO 0, 2 & 15). GPIO 0-15 all have a built-in pull-up resistor (use INPUT_PULLUP), just like in an Arduino, while GPIO16 has a built-in pull-down resistor. The safe ones are GPIO 1, 3-5, 12-14, and 16. All GPIO pins can source about 12ma, and sink close to 20ma.<br />
<br />
The const keyword stands for constant. It is a variable qualifier that modifies the behavior of the variable, making a variable "read-only". This means that the variable can be used just as any other variable of its type, but its value cannot be changed. You will get a compiler error if you try to assign a value to a const variable (which is a good thing). Unlike #define, it types the "variable" instead of making the compiler guess. For these reasons it's preferable to use const instead of #define (<a href="https://www.arduino.cc/reference/en/language/structure/further-syntax/define/" rel="nofollow" target="_blank">https://www.arduino.cc/reference/en/language/structure/further-syntax/define/</a>).<br />
<br />
A byte stores an 8-bit unsigned number, from 0 to 255. This takes less space than an int, which takes up two bytes. You may see some code samples use uint8_t instead of byte. It means the same thing.<br />
<br />
Further reading:<br />
<br />
<a href="https://tttapa.github.io/ESP8266/Chap01%20-%20ESP8266.html" rel="nofollow" target="_blank">https://tttapa.github.io/ESP8266/Chap01%20-%20ESP8266.html</a><br />
<br />
<a href="http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/powering-the-esp-12e-nodemcu-development-board/" rel="nofollow" target="_blank">http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/powering-the-esp-12e-nodemcu-development-board/</a><br />
<br />
<a href="http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/arduino-esp8266-lolin-nodemcu-getting-started/" rel="nofollow" target="_blank">http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/arduino-esp8266-lolin-nodemcu-getting-started/</a><br />
<br />
<a href="http://esp8266.github.io/Arduino/versions/2.0.0/doc/reference.html" rel="nofollow" target="_blank">http://esp8266.github.io/Arduino/versions/2.0.0/doc/reference.html</a><br />
<br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-26190705877798187542018-07-05T15:25:00.002-04:002019-03-27T21:44:04.072-04:00ESP8266 Deep Sleep Mode<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgItcBtcEfhSauj_xQ4ZDLSu2hL_cPGu9PtZokf527ekysE4U0T33nI4egdTDJQVSaVwqFFZCr471ycqo9mHFJ2Qxma3Atd4GNWhvQ9ERCMDeIR6vfaT9DcsDPASIaLKFnWrklnjQsqS_4/s1600/adafruit_products_Huzzah_ESP8266_Pinout_v1.2-1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1132" data-original-width="1600" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgItcBtcEfhSauj_xQ4ZDLSu2hL_cPGu9PtZokf527ekysE4U0T33nI4egdTDJQVSaVwqFFZCr471ycqo9mHFJ2Qxma3Atd4GNWhvQ9ERCMDeIR6vfaT9DcsDPASIaLKFnWrklnjQsqS_4/s320/adafruit_products_Huzzah_ESP8266_Pinout_v1.2-1.png" width="320" /></a></div>
My <a href="https://amzn.to/2Wv3Hzd" rel="nofollow" target="_blank">Adafruit HUZZAH Feather ESP8266</a> consumes 0.080 amps (80 ma) in normal operation. With one wire and a single line of code, I can drop that to about 0.010 amps (10 ma), according to my <a href="https://amzn.to/2Ws79L8" rel="nofollow" target="_blank">USB power monitor</a>.<br />
<br />
I connected a wire from GPIO16 (pin 16) to RESET (RST).<br />
<br />
I'm using the Arduino IDE to program my ESP8266, so at the end of my loop, I insert<br />
<br />
void loop() {<br />
// other code in my sketch<br />
<br />
ESP.deepSleep(60e6);<br />
}<br />
<br />
Which puts the ESP8266 to sleep for 60 seconds, and then reboots, running through my code once more before going back to sleep. This greatly extends my battery life. You can change the 60 to whatever number of seconds you want the unit to sleep.<br />
<br />
With a <a href="https://www.adafruit.com/product/3435" rel="nofollow" target="_blank">Adafruit TPL5110 Low Power Timer</a> you can drop the power consumption of nearly any microcontroller or circuit to 20ua, for about $5.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-17111117820618646672018-06-27T10:26:00.001-04:002019-03-27T21:47:49.965-04:00ESP8266 Breakout Board<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXJGeYCUgqj-n60g-sDYV6ek4rHa5JZ2G7ebE1EuoX5q37Ozb7-eVcLBttli85hRb63ohd6Bg7TffiQCqJzR2g4Sqor1GAbUD0MfwTb3vpKFdnHqkBLt36bfRExzrPpx8E6FT0_HPjHvU/s1600/0627180950.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXJGeYCUgqj-n60g-sDYV6ek4rHa5JZ2G7ebE1EuoX5q37Ozb7-eVcLBttli85hRb63ohd6Bg7TffiQCqJzR2g4Sqor1GAbUD0MfwTb3vpKFdnHqkBLt36bfRExzrPpx8E6FT0_HPjHvU/s320/0627180950.jpg" width="240" /></a></div>
The <a href="https://amzn.to/2TE0TxV" rel="nofollow" target="_blank">bare ESP8266 chip</a> is cheap, but has non standard pin spacing, and isn't easy to work with. There is a "<a href="https://amzn.to/2HLDuZX" rel="nofollow" target="_blank">Bread Board Friendly</a>" breakout for it, but it has a couple of quirks.<br />
<br />
1. It's wide enough that it takes the outer rows of pins on a standard solderless breadboard, so you need to connect your wires underneath, then plug the breakout board on top. I'll post a picture of this shortly.<br />
<br />
2. Most descriptions for the board claim one of the included 10k ohm resistors (the right one) connect to GPIO2 (which would be wrong) when it's actually connected to GPIO15 (which is correct).<br />
<br />
3. The middle "0" ohm resistor is actually a jumper, and needs to be removed if attaching a 3.3v regulator on the back side.<br />
<br />
3. I recommend a external 3.3v supply of 600ma or more. As mentioned above, a 3.3v regulator can be attached to the back side, but ....<br />
<br />
A number of resources claim the regulator is a LM31117-3.3v 800ma (and some adapter board dealers even include one). That part will not work, as pins 2 & 3 are reversed. You need a <a href="https://www.digikey.com/product-detail/en/diodes-incorporated/AP7215-33YG-13/AP7215-33YG-13DICT-ND/2179740" rel="nofollow" target="_blank">AP7215</a> (<a href="https://www.mouser.com/datasheet/2/115/AP7215-59688.pdf" rel="nofollow" target="_blank">AP7215-33YG-13</a>) 600ma 3.3v SOT-89 regulator. I do wish input and output capacitors (1uf is fine) would have been preinstalled on the board, or at least pads for them. Place one between pin 2 and gnd, and the other between pin 3 and gnd. Alternatively, you can use a <a href="https://amzn.to/2UgK6Wi" rel="nofollow" target="_blank">external 3.3v regulator or module</a>, as I am doing.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8iYLPU1HMxK1plFernJitjYhMlKe8bkl7NZiIWCOW9i8-Z2mweJDQqFFn3sxtrDO4P1Q5lZClWzb9iEjf1ggWEgzIHynSHbCF0ASZkRfIckc8BcLax6lwTrTTEVmrRP8IYSOq1Pvekdk/s1600/3.3v+reg.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1000" data-original-width="1000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8iYLPU1HMxK1plFernJitjYhMlKe8bkl7NZiIWCOW9i8-Z2mweJDQqFFn3sxtrDO4P1Q5lZClWzb9iEjf1ggWEgzIHynSHbCF0ASZkRfIckc8BcLax6lwTrTTEVmrRP8IYSOq1Pvekdk/s320/3.3v+reg.jpg" width="320" /></a></div>
<br />
<br />
4. There are still a few more resistors you will have to add:<br />
GPIO0 to VCC with a 10k ohm<br />
RST to VCC with a 10k ohm<br />
RST to Gnd through a momentary (reset button)<br />
GPIO0 to Gnd through a momentary (program button) and a 470 ohm in series.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEive1ht-F5MkfIsu8MK1ZOn2M-a77dNMP4I5ZY8kRo1Effkq-1TMWuCbVHnQ940cBnlpRcdZbFWnPNCf2STjC0EQz5LKRi84Gc8OnoIS_bDUwYgctGGBpFmenKhKPwZWawdvgMNWdxfHR2E/s1600/esp8266+breakout.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="603" data-original-width="1057" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEive1ht-F5MkfIsu8MK1ZOn2M-a77dNMP4I5ZY8kRo1Effkq-1TMWuCbVHnQ940cBnlpRcdZbFWnPNCf2STjC0EQz5LKRi84Gc8OnoIS_bDUwYgctGGBpFmenKhKPwZWawdvgMNWdxfHR2E/s320/esp8266+breakout.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
5. You will need a <a href="https://amzn.to/2WnRr3u" rel="nofollow" target="_blank">ttl serial programmer</a>.<br />
<br />
The good news is that it's very easy to solder the ESP8266 to the adapter if you have a fine point soldering iron.<br />
<br />
Additional references:<br />
<br />
<a href="https://tttapa.github.io/ESP8266/Chap02%20-%20Hardware.html" rel="nofollow" target="_blank">https://tttapa.github.io/ESP8266/Chap02%20-%20Hardware.html</a><br />
<br />
<a href="https://www.esp8266.com/viewtopic.php?f=13&t=6505" rel="nofollow" target="_blank">https://www.esp8266.com/viewtopic.php?f=13&t=6505</a><br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-77269274105833351792018-06-26T15:37:00.000-04:002018-06-29T17:18:35.248-04:00Coulomb Counting and Amp Hours<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrwZjvMbPcFzXPDL1kN90IxWX2Y44tqlG52eRGs29AmMjYC7EvKVEkHjKRces4xqG4K6RZSV3r_WNa4p7kjY-xZmJ0HUDGCFJPYo80j2m2SrDIDf6rWV3yhv6HPK1IoBUf-X82v293h5u-/s1600/coulomb+counting.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="451" data-original-width="763" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrwZjvMbPcFzXPDL1kN90IxWX2Y44tqlG52eRGs29AmMjYC7EvKVEkHjKRces4xqG4K6RZSV3r_WNa4p7kjY-xZmJ0HUDGCFJPYo80j2m2SrDIDf6rWV3yhv6HPK1IoBUf-X82v293h5u-/s320/coulomb+counting.JPG" width="320" /></a></div>
Do you need to know how much Energy a device is consuming? How about producing? Maybe you want to keep track of how much juice is left in a battery pack? Now you can know!<br />
<br />
<b>Cliff Note version:</b><br />
Take a Amp reading every second (Coulombs). Add those readings together (running total). Divide total by 3600 gives you Amp Hours. Multiply by the Volts to get Watt Hours.<br />
<br />
Building battery "Fuel Gauges" is simple when you use Coulomb counting. A Coulomb is equal to 1A * 1s, so if your current sensor records a 5A draw this second, that's 5 Coulombs. If draw is steady for a minute, that would be 300 Coulombs (5 * 60), and if for an hour, 18000 Coulombs (5 * 60 * 60). 18000 / 60 / 60 = 5 Ah<br />
If over two hours, you count 36000 Coulombs, 36000 / 60 / 60 = 10 Ah. So take the total Coulombs you have counted for whatever period of time period you choose, and divide by 3600 (60 * 60), that gives you your Ah charge (or discharge).<br />
<br />
The following code simulates a current sensor reading as a fixed rate (0.5A). It prints the Coulomb totals every second, and the running Ah total.<br />
<br />
<a href="https://pastebin.com/JQKPsNfH" target="_blank">Code Link</a><br />
<br />
Stay tuned as we combine this with a current sensor and a voltage divider to get Amps, Volts, Ah, and Wh readings.<br />
<br />
<a href="http://arduinotronics.blogspot.com/2012/04/monitoring-power-consumption-with.html" target="_blank">ACS715 Current Sensor Project</a><br />
<br />
<a href="http://arduinotronics.blogspot.com/2015/07/arduino-acs712-current-sensor.html" target="_blank">ACS712 Current Sensor Project</a><br />
<br />
<a href="http://arduinotronics.blogspot.com/2015/05/reading-current-shunt-with-arduino.html" target="_blank">Current sensing with a shunt</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-76177480987284174942018-06-20T10:51:00.002-04:002019-03-27T21:55:58.584-04:00The ESP8266 doesn't have EEPROM?<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqzUvtjBVho18igHW-tJMDL2JuIJ3tcce7RNdru4HapGH8sSV_Kp25qZL7c4shmfuVbTOvM08x-8lygpLPPUqXmxw6_xw4JfKlD-5d3-9U5rxfdtSQejix8pHnBRmQkDssOI0gcXVCe5U/s1600/esp8266+hiletgo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1001" data-original-width="1035" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqzUvtjBVho18igHW-tJMDL2JuIJ3tcce7RNdru4HapGH8sSV_Kp25qZL7c4shmfuVbTOvM08x-8lygpLPPUqXmxw6_xw4JfKlD-5d3-9U5rxfdtSQejix8pHnBRmQkDssOI0gcXVCe5U/s200/esp8266+hiletgo.jpg" width="200" /></a>
Unlike the Arduino AVR based controllers, the <a href="https://amzn.to/2CDuMsE" rel="nofollow" target="_blank">ESP8266</a> does not have a dedicated EEPROM. We can however use a bit of flash memory as a emulated EEPROM, and we can use the Arduino EEPROM library to do it. Using the Arduino <a href="https://www.arduino.cc/en/Tutorial/EEPROMPut" rel="nofollow" target="_blank">Put</a> and <a href="https://www.arduino.cc/en/Tutorial/EEPROMGet" rel="nofollow" target="_blank">Get</a> code samples as they are doesn't work. However a simple<br />
<br />
EEPROM.begin(1024); // both the put and get code<br />
<br />
before the<br />
<br />
EEPROM.put(address, variable);<br />
or<br />
EEPROM.get(address, variable);<br />
<br />
<br />
and a<br />
<br />
EEPROM.commit(); // only on the put code<br />
<br />
after it makes everything work.<br />
<br />
In the linked code samples below, I'm saving 2 strings of text (wifi ssid and password) to the EEPROM in the put code, and retrieving them in the get code. If you put a slide switch in your project, and run the two pieces of code depending on the switch position, you can reset the credentials from a built in web form. I will cover that ability soon.<br />
<br />
<a href="https://pastebin.com/wQjbu7C3" target="_blank">ESP8266 EEPROM "PUT"</a><br />
<br />
<a href="https://pastebin.com/qr00bJnj" target="_blank">ESP8266 EEPROM "GET"</a><br />
<br />
Fore more info, see:<br />
<a href="http://esp8266.github.io/Arduino/versions/2.0.0/doc/libraries.html#eeprom" target="_blank">http://esp8266.github.io/Arduino/versions/2.0.0/doc/libraries.html#eeprom</a><br />
<br />
<a href="https://www.baldengineer.com/arduino-eeprom-stores-any-datatype.html" target="_blank">https://www.baldengineer.com/arduino-eeprom-stores-any-datatype.html</a>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4702287955799719958.post-34254973886670603782018-06-20T08:05:00.000-04:002019-03-27T21:56:34.011-04:00APRS Transmitter<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkaXKrEUWUJsO1-A7cEZSh6AxdJNFdjzwIVgKoFnJK6-tpB5UvgyJC25p-zN-zYxWFzMbvyz2TdxrQXpbldd0YgWIyt1Rblg_gwAqmfLOTKvcvYDEF31aqXfMNmPpdYV55swTW1XQONnI/s1600/14740-HX1_-_VHF_Narrow_Band_FM_APRS_Transmitter__144.39Mhz_-_NA_-01.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkaXKrEUWUJsO1-A7cEZSh6AxdJNFdjzwIVgKoFnJK6-tpB5UvgyJC25p-zN-zYxWFzMbvyz2TdxrQXpbldd0YgWIyt1Rblg_gwAqmfLOTKvcvYDEF31aqXfMNmPpdYV55swTW1XQONnI/s320/14740-HX1_-_VHF_Narrow_Band_FM_APRS_Transmitter__144.39Mhz_-_NA_-01.jpg" width="320" /></a></div>
The HX1 is a low-power amateur radio transmitter set to a fixed frequency of 144.390 MHz. In North America, this frequency is used for the Automatic Packet Reporting System, or <a href="https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System" target="_blank">APRS</a>.
<br />
<br />
APRS is a standard used by amateur-radio operators to broadcast live sensor data on a shared frequency. This data can be received by anyone with the proper equipment, and is aggregated on the internet through gateways run by members of the APRS community. APRS is commonly used to share real-time data including vehicle location (GPS), weather stations, high-altitude balloon tracking, remote sensor platforms, disaster relief coordination, and more. It’s effectively an open-source, open-data, community-run, free to use, IoT system with potentially worldwide coverage.<br />
<br />
The HX1 is a 5V, low-power (300mW), narrowband (3kHz) VHF FM transmitter module. With a simple antenna, the range will be around 6 miles. Since this is a “bare” transmitter, the data input must be properly modulated and formatted. There are several Arduino software packages that can do this, see the hookup guide for information.<br />
<br />
Note: Because it uses amateur radio frequencies, you will need an amateur radio license to use the HX1. It’s easy (and fun!) to get one.<br />
<br />
<div style="text-align: center;">
<a href="https://www.sparkfun.com/products/14740" rel="nofollow" target="_blank">https://www.sparkfun.com/products/14740</a></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-32189168369916355412018-06-05T11:47:00.000-04:002019-03-27T21:59:54.302-04:00Arduino connected Micro Epsilon Laser Micrometer<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEP5nMjuVaI62m0T6DqoodMmDoKfccxF3edFdcoTmYTzUaQr2LDwDvvUemFvyNhxrHfK68qalz62bgsNvYeulDAvtraU5n9Yd_y9eYvNHOKPjiDExAbK2Q86MRsefr16_e9zZnZqIDureK/s1600/micro_epsilon+%25282%2529.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1434" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEP5nMjuVaI62m0T6DqoodMmDoKfccxF3edFdcoTmYTzUaQr2LDwDvvUemFvyNhxrHfK68qalz62bgsNvYeulDAvtraU5n9Yd_y9eYvNHOKPjiDExAbK2Q86MRsefr16_e9zZnZqIDureK/s320/micro_epsilon+%25282%2529.jpg" width="286" /></a></div>
With the success of our <a href="http://arduinotronics.blogspot.com/2015/09/igaging-micrometers-and-calipers.html" target="_blank">Igaging / Mitutoyo</a> and <a href="http://arduinotronics.blogspot.com/2017/12/harbor-freight-pittsburgh-caliper.html" target="_blank">Harbor Freight</a> digital measuring devices projects, now it's time to turn our attention to the <a href="https://www.micro-epsilon.com/2D_3D/optical-micrometer/micrometer/optoCONTROL_2600/" rel="nofollow" target="_blank">Micro-Epsilon Laser Micrometer</a>, optoCONTROL 2600.<br />
<br />
There are several types of outputs, including analog, digital RS-232 and RS-422, and Binary or ASCII options. We chose BINARY on the RS-422 output (19200, 8N1), and connected a RS-422 to TTL converter to Arduino 2560 (originally a Arduino Nano, but the 2560 has 4 hardware UARTs).<br />
<br />
The program we selected is "EDGELH" "Standard edge dark-bright".<br />
<br />
Wiring is as follows:<br />
<br />
Micro Epsilon DB25 (Manual is wrong):<br />
Pin 8 (T+) to RS-422 A/R+<br />
Pin 7 (R+) to RS-422 Y/T+<br />
Pin 20 (R-) to RS-422 Z/T-<br />
Pin 21 (T-) to RS-422 B/R-<br />
<br />
<br />
RS422:<br />
<br />
<br />
if you are using the blue <a href="https://amzn.to/2TGg9ue" rel="nofollow" target="_blank">YL-128</a><br />
VCC to Arduino +5v<br />
Gnd to Arduino Gnd<br />
RSD to Arduino D19 (Rx1) // Serial1 Rx<br />
TXD to Arduino D18 (Tx1) // Serial1 Tx<br />
<br />
If you are using the orange <a href="https://amzn.to/2HHKlUl" rel="nofollow" target="_blank">2578-TTL</a><br />
VCC to Arduino +5v<br />
Gnd to Arduino Gnd<br />
TXD to Arduino D19 (Rx1) // Serial1 Rx<br />
RXD to Arduino D18 (Tx1) // Serial1 Tx<br />
<br />
I suggest a <a href="https://amzn.to/2HJ77er" rel="nofollow" target="_blank">DB-25 M to RJ-45 F adapter</a>, and make up (or cut down) a ethernet cable to connect to the screw terminals of the RS-422.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdcsg8_2sADrq-qFRtHoyo3EWlo-ZBrnpXdZsdjbiGRPEt6NShareexzOAklTeUdoYILUW537hnlhWyB5TKNIUAdD0M0tnhcOTiPq2uOTcpbotuaP_uE818lGO7THwjEDS2a2RD1qFLoU/s1600/db25+_+rj45.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1500" data-original-width="1500" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdcsg8_2sADrq-qFRtHoyo3EWlo-ZBrnpXdZsdjbiGRPEt6NShareexzOAklTeUdoYILUW537hnlhWyB5TKNIUAdD0M0tnhcOTiPq2uOTcpbotuaP_uE818lGO7THwjEDS2a2RD1qFLoU/s320/db25+_+rj45.jpg" width="320" /></a></div>
<br />
<br />
Code:<br />
<a href="https://pastebin.com/EufVX0AM" target="_blank">https://pastebin.com/EufVX0AM</a><br />
<br />
With no object in the beam, take your measurement, and subtract that in the code from the measured value. the "zero" function on the unit display only affects the display and analog output, the digital output shows the measurement from the bottom of the beam. I'll be adding a "zero" button and save that value to EEPROM.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggMT7Fkexq-0jtaWxxBUtwOTOjJK_52_Q3_BV-NH6VZpiIXmJ2eytrMPex3mfdGC4II5M0oM88HYzwz2A2bho25G2spRCvzWmIMCk2uyJ_4GrI0z4hYrQ6WeALd9PoTZ1j7cV7tOC0O3o/s1600/odc2600+arduino+output.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="468" data-original-width="880" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggMT7Fkexq-0jtaWxxBUtwOTOjJK_52_Q3_BV-NH6VZpiIXmJ2eytrMPex3mfdGC4II5M0oM88HYzwz2A2bho25G2spRCvzWmIMCk2uyJ_4GrI0z4hYrQ6WeALd9PoTZ1j7cV7tOC0O3o/s320/odc2600+arduino+output.JPG" width="320" /></a></div>
<br />
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="285" src="https://www.youtube.com/embed/fn5XHIGMZXQ" width="510"></iframe>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-88448970721794242802018-05-18T17:59:00.000-04:002019-03-27T22:01:18.646-04:00RPM into MPH? Building a Anemometer!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9LoLUWDdS2vmJOrmxSlsDWS3ADD5rMVZfrUjSwNxJ9SBGRs01at55uoDHppmlbSQSTvAcYq70lj0ErN26MRWLRGnV5es-ftpkMLrprFr3CdM9qLHhvnce9AHjmsP5S5hldEw43TITxzQ/s1600/anemometer.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1024" data-original-width="768" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9LoLUWDdS2vmJOrmxSlsDWS3ADD5rMVZfrUjSwNxJ9SBGRs01at55uoDHppmlbSQSTvAcYq70lj0ErN26MRWLRGnV5es-ftpkMLrprFr3CdM9qLHhvnce9AHjmsP5S5hldEw43TITxzQ/s320/anemometer.jpg" width="240" /></a></div>
I'm building an <a href="http://www.instructables.com/id/Data-Logging-Anemometer/" rel="nofollow" target="_blank">anemometer</a> to measure wind speed. I'm building the typical 3 cup style anemometer, and using a <a href="https://www.sparkfun.com/products/14709" rel="nofollow" target="_blank">hall effect sensor</a> (digital, non-latching) to trigger an arduino (or esp8266).<br />
<br />
It's a open collector unit (output pulls low when triggered with a magnet), and therefore uses a 10k ohm pull up resistor, or use<br />
<br />
pinMode(inPin, INPUT_PULLUP);
<br />
<br />
val = digitalRead(inPin); // read the input pin
<br />
<br />
and watch for a LOW (FALLING when using interrupts - <a href="https://playground.arduino.cc/Main/ReadingRPM" rel="nofollow" target="_blank">https://playground.arduino.cc/Main/ReadingRPM</a>)<br />
<br />
<br />
Inside the unit, I want to pass a small magnet across the sensor. I could use 1 or more magnets, and adjust the code for the number of pulses (triggers) per revolution. Let's assume 1 magnet, so one pulse per revolution.<br />
<br />
The math looks like this:<br />
<br />
RPM = cycles per second (Hz) * 60 seconds per minute / # of magnets<br />
<br />
(to count cycles per second or HZ - <a href="https://circuitdigest.com/microcontroller-projects/arduino-frequency-counter-circuit" rel="nofollow" target="_blank">https://circuitdigest.com/microcontroller-projects/arduino-frequency-counter-circuit</a>)<br />
<br />
FPM = Diameter (inches) / 12 * 𝝅 * RPM<br />
<br />
FPH = FPM * 60<br />
<br />
MPH = FPH / 5280<br />
<br />
So 3" / 12 * 3.14 * 100 RPM * 60 / 5280 = 7.14 MPH<br />
<br />
Where:<br />
RPM = Revolutions Per Minute<br />
FPM = Feet Per Minute<br />
FPH = Feet Per Hour<br />
MPH = Miles Per Hour<br />
𝝅 = 3.14 (pi)<br />
Diameter = inches from center of shaft to center of cup * 2<br />
<br />
More on this to come.<br />
<br />
<a href="https://www.instructables.com/id/Measure-RPM-DIY-Portable-Digital-Tachometer/" rel="nofollow" target="_blank">Optical Tach</a><br />
<br />
<a href="http://engineerexperiences.com/tachometer-using-arduino.html" rel="nofollow" target="_blank">Hall Effect Tach</a><br />
<br />
<a href="https://soldernerd.com/arduino-ultrasonic-anemometer/" rel="nofollow" target="_blank">Ultrasonic speed and direction, no moving parts</a>Unknownnoreply@blogger.com8tag:blogger.com,1999:blog-4702287955799719958.post-44732199407950654832018-04-26T10:26:00.000-04:002019-03-27T22:05:28.205-04:00The Arduino 18650 Lithium Ion Battery Charger<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbRZmGWJwe7demIn0NTtDQvqzDrXLo1_CyO4P6rqT9pBn8cpaGZjTFPSII5JihPT4129me1CUbOlmUSU0qP-kbur1N06Jr53Q7lpigPE8cauz0H1F7UnA19Nvggx4bva-0IiDnxTSQims/s1600/samsung30q.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbRZmGWJwe7demIn0NTtDQvqzDrXLo1_CyO4P6rqT9pBn8cpaGZjTFPSII5JihPT4129me1CUbOlmUSU0qP-kbur1N06Jr53Q7lpigPE8cauz0H1F7UnA19Nvggx4bva-0IiDnxTSQims/s320/samsung30q.jpg" width="320" /></a></div>
The <a href="https://amzn.to/2WsNTwW" rel="nofollow" target="_blank">18650 Lithium Ion Battery</a> is becoming the go to battery for rechargeable projects, from microcontrollers to skateboards and ebikes.<br />
<br />
We have been powering our Raspberry Pi, Arduino, and Ham Radio projects with them.<br />
<br />
Although soldering the tabs on these batteries have been difficult (and damaging) in the past, there are now <a href="https://vruzend.com/" rel="nofollow" target="_blank">solderless interlocking kits</a> that make them very easy to use.<br />
<br />
It's extremely important to make sure these batteries are charged properly! <a href="http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/arduino-18650-battery-charger-project-1/" rel="nofollow" target="_blank">Henry's Bench</a> comes to the rescue with a Arduino controlled charger for these batteries. Just add a LCD screen to see voltage, amps, and cell temperatures.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6-IlhDtQ4m8JfbcmqbHDcm9B3AGQSCHOWzTaPmcLyJs4FSS912vtHuqY0kUbzKC8Kpis111pHawp6bi0Kma-pENliu3gyTrEa6h3e83vgN6zfZ0veMYFrhjZ7s5yPe1fnWIaKPix8yNY/s1600/Arduino-18650-Charger-Tutorial.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="642" data-original-width="565" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6-IlhDtQ4m8JfbcmqbHDcm9B3AGQSCHOWzTaPmcLyJs4FSS912vtHuqY0kUbzKC8Kpis111pHawp6bi0Kma-pENliu3gyTrEa6h3e83vgN6zfZ0veMYFrhjZ7s5yPe1fnWIaKPix8yNY/s320/Arduino-18650-Charger-Tutorial.png" width="281" /></a></div>
<br />
<br />
Explanation of Lithium Ion charging profiles and dangers - <a href="http://batteryuniversity.com/learn/article/charging_lithium_ion_batteries" target="_blank">http://batteryuniversity.com/learn/article/charging_lithium_ion_batteries</a><br />
<br />
To learn more about building battery packs with the 18650, the master tome of all info is <a href="https://amzn.to/2HX9E4g" rel="nofollow" target="_blank">DIY Lithium Batteries</a> (How to build your own battery packs), by Micah Toll (subscribe to his <a href="https://www.youtube.com/channel/UCRMrqzsrPIWvY3PINkLKs-Q" rel="nofollow" target="_blank">YouTube channel</a>).<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc3YMl2H9I4XJ-_wJrZLxO34akfM2CKPyliBqM4BJwLhs_XjFqhyod-mrQaHowMsIetkfDP3ekEjwD9e45xkS7DOG43iG1wCxIii5WapMPD6tlBfXjTo0Dpcx6zkbmQWE8DBYHEtJ4YDU/s1600/diy18650book.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="499" data-original-width="386" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc3YMl2H9I4XJ-_wJrZLxO34akfM2CKPyliBqM4BJwLhs_XjFqhyod-mrQaHowMsIetkfDP3ekEjwD9e45xkS7DOG43iG1wCxIii5WapMPD6tlBfXjTo0Dpcx6zkbmQWE8DBYHEtJ4YDU/s320/diy18650book.jpg" width="247" /></a></div>
<br />
<center>
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="300" src="https://www.youtube.com/embed/clawhNsORts" width="500"></iframe></center>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-74330999745758185442018-04-17T08:57:00.001-04:002019-03-27T22:07:38.171-04:00Adding a LCD to a ESP8266<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCfZLbimGdfDabbAXX1gkyt32vvraA-GFoEPDDjILbv0dFCf4iJwB7lnMnilPc8_HOGDfXu_1-tga7iqE9OIIKSbxkzsB3bYrAr4XRBB_cIsMHPsdS2cjXjAVtiuFoLAO2IyLL3tfMSMcs/s1600/i2c_lcd_esp8266.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="1024" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCfZLbimGdfDabbAXX1gkyt32vvraA-GFoEPDDjILbv0dFCf4iJwB7lnMnilPc8_HOGDfXu_1-tga7iqE9OIIKSbxkzsB3bYrAr4XRBB_cIsMHPsdS2cjXjAVtiuFoLAO2IyLL3tfMSMcs/s320/i2c_lcd_esp8266.jpg" width="320" /></a></div>
Tutorials for adding a LCD to a Arduino are all over the net. It's pretty simple, and I2C makes the wiring even simpler, and libraries prevent complicating the code much. However, adding a LCD to a ESP8266 is not as common, and there is much misinformation posted about logic levels, and what not. So here is a <a href="https://www.instructables.com/id/I2C-LCD-ESP8266/" rel="nofollow" target="_blank">working project</a> using a <a href="https://amzn.to/2Oucb7b" rel="nofollow" target="_blank">I2C LCD</a>, and a <a href="https://amzn.to/2HJ7Hc7" rel="nofollow" target="_blank">ESP8266</a>. Wiring is very simple.<br />
<br />
SCL to SCL (D1 or GPIO5 on a LoLin)<br />
SDA to SDA (D2 or GPIO4 on a LoLin)<br />
(these two pins are redirectable to another set in the Wire.begin command:<br />
<br />
//Wire.begin(); default<br />
Wire.begin(0, 2); // specify different SDA, SCL pins<br />
<br />
Gnd to Gnd<br />
+5v to +5v (USB or Vin)<br />
<br />
Yes, the LCD prefers 5v, and it won't affect the 3.3v logic of the ESP8266, as the ESP8266 I2C is in output, not input mode.<br />
<br />
Some slower I2C devices won't work out of the box with the ESP8266 because of timing issues, and a stretch adjustment needs to be made. We found one I2C display that would not register on the I2C scanner sketch, but the rest did. If the scanner finds it when connected to a UNO, but not a ESP8266, place the following command after the Wire.begin line.<br />
<br />
Wire.setClockStretchLimit(500L);<br />
<br />
Make sure you run the I2C scanner first, to check what I2C address your display uses. Ours uses 0x27. See more in our Instructable at <a href="https://www.instructables.com/id/I2C-LCD-ESP8266/" rel="nofollow" target="_blank">https://www.instructables.com/id/I2C-LCD-ESP8266/</a><br />
<br />
If you don't have one already installed, you will need to install a I2C LCD Library. Those instructions are included in the Instructable.<br />
<br />Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4702287955799719958.post-68255908535100548012018-03-31T16:02:00.001-04:002019-03-27T22:08:35.307-04:00Controlling a ESP8266 with Alexa<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4frSV0b11znbGIYedUl6mFcYGTXAQZ2rW8-jE5JY8sszpgnbyV10vXLYNNepz_ZSORbtiieUEMHJJM-dBxOUT9Q9Hze1NebMd7SwKKRXA1FueuMJKejMYnx_BLno5gNduNiSraZX16A8/s1600/P1050187.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4frSV0b11znbGIYedUl6mFcYGTXAQZ2rW8-jE5JY8sszpgnbyV10vXLYNNepz_ZSORbtiieUEMHJJM-dBxOUT9Q9Hze1NebMd7SwKKRXA1FueuMJKejMYnx_BLno5gNduNiSraZX16A8/s320/P1050187.JPG" width="320" /></a></div>
Here is an easy project using a <a href="https://amzn.to/2U5HT0J" rel="nofollow" target="_blank">Echo Dot</a> (Alexa) to control my <a href="https://amzn.to/2HJGnL6" rel="nofollow" target="_blank">ESP8266</a>. I give it simple commands (Alexa, lights, off) and the command shows on the LCD screen attached to the ESP8266. Actual relays will be the next step to attach.<br />
<br />
The project is based on the Adafruit tutorial at <a href="https://learn.adafruit.com/easy-alexa-or-echo-control-of-your-esp8266-huzzah/overview" rel="nofollow" target="_blank">https://learn.adafruit.com/easy-alexa-or-echo-control-of-your-esp8266-huzzah/overview</a><br />
<br />
with LCD and other modifications made by me. My code is found at <a href="https://pastebin.com/NjMcsTRh" rel="nofollow" target="_blank">https://pastebin.com/NjMcsTRh</a><br />
<br />
Also see my ESP8266 LCD Project at <a href="https://www.instructables.com/id/I2C-LCD-ESP8266/" rel="nofollow" target="_blank">https://www.instructables.com/id/I2C-LCD-ESP8266/</a><br />
<br />
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/qznRzuOjj5Q?rel=0" width="480"></iframe><br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-7535137904805205592018-02-23T08:29:00.002-05:002019-03-27T16:59:00.377-04:005mm LED Holders<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpaPXjXZv4ZWy_u6wYjC5v0h_gg6nNP-oIz0nP1uVTeRDnlYeIxXrl0okDVckbWlLk4W7JWakd2xPac8H1jVF40yRUeFs1Xo2PlYUYVILRHWysyO3BWS4uqPX9k9JnnN9o4LkaOj_K-pI/s1600/led+holders.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1100" data-original-width="1100" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpaPXjXZv4ZWy_u6wYjC5v0h_gg6nNP-oIz0nP1uVTeRDnlYeIxXrl0okDVckbWlLk4W7JWakd2xPac8H1jVF40yRUeFs1Xo2PlYUYVILRHWysyO3BWS4uqPX9k9JnnN9o4LkaOj_K-pI/s320/led+holders.jpg" width="320" /></a></div>
One of the things I find myself making often, is plastic (plexiglass) control panels. I still have not made my <a href="https://openbuilds.com/" rel="nofollow" target="_blank">desktop cnc</a> yet, but when I do, I can stop drilling these panels by hand. Mounting LED's is always a task, and I started using these very nice <a href="https://amzn.to/2U0H9K4" rel="nofollow" target="_blank">chrome LED holders</a>. They come with a plastic plug for the 2 LED leads to stick through, and hold the LED securely. For my 4 lead <a href="https://amzn.to/2TzrxIo" rel="nofollow" target="_blank">RGB LED's</a>, I just use a spot of hot glue to hold the LED, and <a href="https://amzn.to/2TFep4D" rel="nofollow" target="_blank">heat shrink tubing</a> to insulate the leads. Use a silicone coated wire for flexibility and stress relief.<br />
<br />
<a href="http://amzn.to/2op7MGL" target="_blank">https://amzn.to/2U0H9K4</a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPXZWzLajci_pGdRNGAcddblsBxWIQ_hwmH3HlMHT_CLr9_hnkDPhBrfeBKSF1X6jpi6c7JffyrD9nTccM03cmfE1DT9hSW6JUg2fohXjM2XsTZDM7yl7H93C3pr1rVJ-ZRDQFD_17L24/s1600/heatshrink.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1500" data-original-width="1500" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPXZWzLajci_pGdRNGAcddblsBxWIQ_hwmH3HlMHT_CLr9_hnkDPhBrfeBKSF1X6jpi6c7JffyrD9nTccM03cmfE1DT9hSW6JUg2fohXjM2XsTZDM7yl7H93C3pr1rVJ-ZRDQFD_17L24/s320/heatshrink.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLqY-pKFRDhqL4JfqqyE-eq0QPDw3I8yi-oI71k8hwZI_J8HI4LTCpc5dASWVTuXI3tJBId0LiT9wi241zDzhsDAMS4X8kcm0wZDAxObWxyHmnfJhu1Vb0rP0HV9PaUQ1XgjDhgXNuamc/s1600/leds.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1000" data-original-width="1000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLqY-pKFRDhqL4JfqqyE-eq0QPDw3I8yi-oI71k8hwZI_J8HI4LTCpc5dASWVTuXI3tJBId0LiT9wi241zDzhsDAMS4X8kcm0wZDAxObWxyHmnfJhu1Vb0rP0HV9PaUQ1XgjDhgXNuamc/s320/leds.jpg" width="320" /></a></div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-26683047365723974732018-02-20T10:53:00.001-05:002019-03-27T17:07:53.626-04:00FreePBX - Open Source PBX Phone System<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiA18CvLYFH-xL3jhqG07Z3ZBldtCq0RQWmwDoyUHpdg6tmGBz6ieJwUj7xyfKfLkTHGJ40kR3WJioZCLPLwtYYkpAcKen4TonR-uRZPu9dSZVCO8lpPIrQacOXOnlmDkNvciRNps1CmY/s1600/freepbx.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="871" data-original-width="1600" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiA18CvLYFH-xL3jhqG07Z3ZBldtCq0RQWmwDoyUHpdg6tmGBz6ieJwUj7xyfKfLkTHGJ40kR3WJioZCLPLwtYYkpAcKen4TonR-uRZPu9dSZVCO8lpPIrQacOXOnlmDkNvciRNps1CmY/s320/freepbx.jpg" width="320" /></a></div>
I just installed FreePBX, a linux based open source phone system at work (12 SIP trunks, 40 extensions), and thought, why not a home / small office unit based on a Raspberry Pi? The Raspberry Pi can easily handle multiple SIP trunks, and enough IP phones for the whole family / small business to have a extension or even a private DID. The <a href="https://www.freepbx.org/" rel="nofollow" target="_blank">FreePBX software</a> is free, the <a href="http://amzn.to/2uuj5AX" rel="nofollow" target="_blank">Raspberry Pi</a> is inexpensive (about $80 for a complete kit) and <a href="https://amzn.to/2WpoFzC" rel="nofollow" target="_blank">PolyCom IP Phones</a> are readily available for around $80 each. Now you can have individual voicemail (email integrated), auto attendant, intercom, <a href="https://amzn.to/2FDwpHo" rel="nofollow" target="_blank">paging / bells</a>, and music on hold just like the big boys. The phones and paging adapter can be powered by a inexpensive <a href="https://amzn.to/2U1Ei3H" rel="nofollow" target="_blank">POE network switch</a>, as can the Raspberry Pi with a <a href="https://amzn.to/2utl4op" rel="nofollow" target="_blank">POE Hat</a>.<br />
<br />
<a href="http://arduinotronics.blogspot.com/2010/09/arduino-pbx-2-way-communication.html" target="_blank">Arduino integration</a>? Yes your Arduino can make outbound calls with prerecorded alerts!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4702287955799719958.post-56776657296644713892018-01-11T07:22:00.000-05:002019-03-27T17:11:14.830-04:00ATX Bench Power Supply<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDdY_5tPLhSO-KbJBKP4DwxovWFNaockLenuxw92EvWM7UbJiir6-VlepRunq2uhUNUqwLCTrJl3pS_iSbUq0FhADcFlVugA1UXOE1Jd0rMnPSy-jThIaU4U2HkcNN7o0hHBveNbxBHvU/s1600/my+bench+power.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="960" data-original-width="540" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDdY_5tPLhSO-KbJBKP4DwxovWFNaockLenuxw92EvWM7UbJiir6-VlepRunq2uhUNUqwLCTrJl3pS_iSbUq0FhADcFlVugA1UXOE1Jd0rMnPSy-jThIaU4U2HkcNN7o0hHBveNbxBHvU/s320/my+bench+power.jpg" width="180" /></a></div>
As a Ham Radio operator and a electronics / programming fanatic, I'm always on the lookout to improve my bench equipment. This weeks upgrade is a multi voltage bench power supply. For those that have been looking, bench power supplies can be very pricey, but many people overlook the ubiquitous computer power supply. It has +12v, -12v, 5v, and 3.3v taps, but not in a easy to use form. That changes with a ATX power adapter. Now you can easily add a variety of voltages to your projects, in some hefty current ratings, up to 36 amps or more.<br />
<br />
The next stage is to add a Arduino voltage and current display for each output, and maybe some MOSFET's for adjustable output for testing motor speed.<br />
<br />
<a href="https://amzn.to/2OwDfm2" rel="nofollow" target="_blank">ATX Power Supply</a> $49<br />
<br />
<a href="https://amzn.to/2uu881o" rel="nofollow" target="_blank">ATX Power Distribution Board</a> $12<br />
includes solderless breadboard and breadboard power supply adapter.
<br />
<br />
See <a href="http://www.electronics-tutorials.ws/blog/convert-atx-psu-to-bench-supply.html" rel="nofollow" target="_blank">http://www.electronics-tutorials.ws/blog/convert-atx-psu-to-bench-supply.html</a> for notes on cooling, regulation, and other voltage combinations.Unknownnoreply@blogger.com0