Resetting Arduino via Code

I’m imagining a circumstance where I might want my arduino to reset itself if a condition occurs.  Right now the program is alerting me of this condition, then I have to go and press the reset button.  Not hard, but annoying.

The reset pin is how I’ve wired an external reset button:  a momentary switch grounds the reset pin (making it LOW), and the board resets.  I think I can create the same thing with code

Here’s what I’ll use:

int led = 13;//pin 13 as OUTPUT LED pin
int resetPin = 12;

I’ll connect my reset pin to a digital pin.  Then the code will use a digital.write to bring that pin low, resetting the board.  Here’s a fritzing.org diagram:

reset arduino without manual button

Follow and Like Us:

Understanding Hydroponic Nutrient Levels (PPMs, EC)

Understanding Hydroponic Nutrient Levels (PPMs, EC)

Knowing and controlling the nutrient levels in your water is a key component of proper hydroponic growing.

This can be difficult when different products, probes, and growers seem to be speaking different languages.  Some measure in PPMs (usually in the USA), EC (usually in europe or the scientific community).

Strap in  for a whirlwind introduction from Just4Growers.com:

Follow and Like Us:

16×2 LCD with I2C configuration

16×2 LCD with I2C configuration

Here’s the LCD I’ve started with for my data display.

I got it on ebay for a couple dollars.

After working on the 12-wire configuration for a while, and never figuring out how to shield the noise that was goofing up the letters, I found an example with the I2C configuration.

Life. Saver.

Check out this write-up/walk-through for finding your device’s address and correctly initializing the LCD.  This post saved hours, possibly days, of my life.

http://forum.arduino.cc/index.php?topic=128635.0

 

Here’s the I2c scanner that you’ll need.

http://playground.arduino.cc/Main/I2cScanner

Follow and Like Us:

While troubleshooting my LCD problem, I found this super guide to finding and correcting soldering problems.  You’ll see picture examples for each and every problem, causes, and solutions.  Can’t get much better than this!

Check out Adafruit’s Guide to Excellent Soldering here.

 

Follow and Like Us:

Throwback: My Electronics Box from Fourth Grade

During my last trip home, this mammoth had been uncovered in our garage. I brought it home with me and just decided to pull it out.

Going through the drawers I found ruptured batteries, parts from all kinds of electronics I gutted, and even my windshield wiper glasses! This box represents many memories, countless hours of creating, and an early indicator of my attraction to electronics.
electronics tinker box

Follow and Like Us:

Long-Range Blink

Now that I’ve completely built my arduino garden controller, I need to get it in place. That involves extending all of the sensors and the display away from the controller, and mounting them in boxes.

In an effort to make this unit modular, I’ve decided to use Cat5e cable to connect the display/sensor box to the main controller. To this end, today I’m practicing with punch-down Cat5 jacks. See?

Follow and Like Us:

Simple arduino sketch to test DS18B20 waterproof sensor

Simple arduino sketch to test DS18B20 waterproof sensor

I purchased 5 DS18b20 waterproof sensors on Amazon.  The first one I hooked up I couldn’t get a reading from.  I spent hours trying different libraries, sample sketches, etc.

Finally I decided to try a different sensor and it worked the first try.  Turns out four of the five sensors I bought were bad.

So, if you need to diagnose a bad sensor, here’s the simplest sketch you can use.  I found it here.

#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 7

// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");

// Start up the library
sensors.begin();
}


void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");

Serial.print("Temperature for Device 1 is: ");
Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?
// You can have more than one IC on the same bus.
// 0 refers to the first IC on the wire

}

Enjoy!

Follow and Like Us:

3.2 TFT LCD Displays Live Garden Data

My LCD finally arrived! (It takes a long time to get things from China.)

Soon I’ll have a dashboard completed that will constantly display sensor readings right at the garden!

TFT LCD 3.2 display for arduino garden

Follow and Like Us:

Vertical structure for Hydroponic Cucumbers

A few of my cucumbers are sending out scouts to look for structure!

hydroponic cucumber arduino

So, I obliged them:

cucumber structure wire twine

Here’s a neat gif (pronounced JIF, seriously. Get it right.) showing a vine that is searching for vertical structure. Neat, eh?

vine gif vertical growing

Follow and Like Us: