David Connolly

Electronics have always been fascinating to me. Things that get my attention are clocks, lamps, motion activated devices, light activated devices, laser intruder alert systems,solar and wind power, voltage inversion and lots more. I was lucky enough to be born in 1957 which has allowed me to watch so much history as the years have passed. The NASA space program in the 1960s was so unbelievably exciting as they worked towards the goal of putting a man on the moon.

Interests: Astronomy, Astrophysics, Theoretical Physics, Technology, Solar Power, Retro-tech, General Science, Lock picking, Linux, SCUBA Diving, Mountain Climbing,

Location: Austin TX

Aug 262017
 

Hello everyone from Day 1 of Hurricane Harvey here in Austin Texas. Wild windy and wet. Just want to mention plans are being made to cover a monitor repair video and a How-To on using the 74HC595 shift register. I love this chip! Be well!

May 062017
 

Using a pushbutton that completes the circuit only while being pressed can turn an LED on while the button is being held down. But what if you wanted to press it once and have the LED light up and then press it again and turn off the LED? Well you can do this. It is done with an Arduino using State Change Detection (also known as edge detection). This tutorial will teach you how to do it and you will see the Arduino send a message to the Serial Monitor with that information and it will display the count of the state changes that turn on and off the LED. This can also be adapted to use with a relay to turn on and off an appliance such as a stereo amplifier, fan, or floor lamp. And with even further development  you can do this using an infrared remote control. So let’s learn more!

To make this project you will need:

  • An Arduino Uno, Nano, Pro-Mini etc.
  • LED
  • Momentary button or switch
  • 10k ohm resistor
  • Jumper wires
  • Breadboard

You Can Download The Arduino Sketch Here

And here is how you wire it up.

image developed using Fritzing. For more circuit examples, see the Fritzing project page @ http://fritzing.org/projects/

 

 

 

 

 

 

Connect three wires to the board. The first goes from one leg of the pushbutton through a pull-down resistor (here 10k ohm) to ground. The second goes from the corresponding leg of the pushbutton to the 5 volt supply. The third connects to a digital I/O pin (here pin 2) which reads the button’s state.

When the pushbutton is open (unpressed) there is no connection between the two legs of the pushbutton, so the pin is connected to ground (through the pull-down resistor) and we read a LOW. When the button is closed (pressed), it makes a connection between its two legs, connecting the pin to voltage, so that we read a HIGH. (The pin is still connected to ground, but the resistor resists the flow of current, so the path of least resistance is to +5V.)

If you disconnect the digital I/O pin from everything, the LED may blink erratically. This is because the input is “floating” – that is, not connected to either voltage or ground. It will more or less randomly return either HIGH or LOW. That’s why you need a pull-down resistor in the circuit.

click the image to enlarge

 

 

 

 

 

 

 

 

 

/*
State change detection (edge detection)
Often, you don’t need to know the state of a digital input all the time,
but you just need to know when the input changes from one state to another.
For example, you want to know when a button goes from OFF to ON. This is called
state change detection, or edge detection.
This example shows how to detect when a button or button changes from off to on
and on to off.
The circuit:
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground
* LED attached from pin 13 to ground (or use the built-in LED on
most Arduino boards)
created 27 Sep 2005
modified 30 Aug 2011
by Tom Igoe
The original sketch modified May 6, 2017 Volthuas Electronic Laboratory Austin, TX
http://volthauslab.com/led-on-and-off-one-button
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/ButtonStateChange
*/
// this constant won’t change:
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int ledPin = 13; // the pin that the LED is attached to
// Variables will change:
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
void setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}
void loop() {
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then when the button
// is pressed the LED will change from off to on:
buttonPushCounter++;
Serial.println(“on”);
Serial.print(“number of button pushes: “);
Serial.println(buttonPushCounter);
} else {
// if the current state is LOW then when the button
// is pressed the LED will change from on to off:
Serial.println(“off”);
}
// Delay a little bit to avoid bouncing
delay(50);
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;
// turns on or off the LED every time the button is pushed by
// checking the button push counter.
if (buttonPushCounter % 2 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
Apr 222017
 

This eBook on Arduino Robotics is really worth your time to look over as it deals with all sorts of fun projects like a wall following robot, segway type robots (list below) and just so much more. If you like it I hope you track down a real copy that you can hold in your hands.


Paperback is just $13.95

Click here to sample this book.

 

 

Linus the Line-Bot
Wally the Wall-Bot
Making PCBs
The Bug-Bot
Explorer-Bot
RoboBoat
Lawn-Bot 400
The Seg-Bot
The Battle-Bot
Alternate Control

Check out all our Arduino eBooks

Mar 092017
 

Phase One of the Volthaus Labs 433MHz remote weather station project is completed. The data currently being sent to the RX (receiver) is Temperature and Humidity. The 1602 LCD display is showing the temperature data in both Fahrenheit and Celsius. While you’re reading this I have moved on to Phase Two which includes adding the BMP180 to the TX (transmitter) and displaying the data inside the lab on the receiver’s 1602 LCD display.

The receiver’s display rotates three screens in a loop.

– Screen One –

– Screen Two –

– Screen Three –

The first screen displays the project name. The second screen show the temperature in Celsius with the humidity and the third screen show the temperature in Fahrenheit and the humidity again. I have it working but there are bugs somewhere preventing the correct data being displayed. All that will be covered in the Phase two tutorial. Building this system has been a learning experience. The goal is to have a solar powered remote sensor array that transmits data including temperature, humidity, wind speed and direction, barometric pressure, altitude, and rain indicator. Instead of using an Arduino I am using an ATMEL ATMEGA328P-PU on both my transmitter and my receiver. Using the Rocket Scream Low Power Library is part of the plan. The loop gathers data from the sensors, transmits them using the radio, then goes back to sleep.  But the unused pins on the Atmega 328 need to be sent to ground using a resistor. I did not do that on the current TX so the Solar panel is not keeping the 18650 charged for more than a few days. In other words it’s working well but I am having power issues. So I will share my progress to this point with you.

The only receiver changes planned for the future will be code updates.

 

 

 

 

 

 

 

In developing this project I have found these online articles to be very helpful.

Mini weather station by indigod0g

 

SOLAR POWERED ARDUINO WEATHER STATION by deba168

 


The best one of all is by a young man named Vlad who lives in Canada. It would be much simpler to just use his system but I really want to develop my own and learn as much as possible in the process. Here is a link to Vlad’s well documented system.

http://denialmedia.ca/weather-station/


First test of the 433MHz solar powered transmitter layout. Using Arduino Uno.

The start of the Atmega 328 based receiver. The 10K potentiometer has not been added yet. Once it is it will allow for contrast control of the LCD 1602 display.

 

 

 

 

 

 

 

 

Facing to the south the panel receives plenty of sunlight

This case is temporary. Mounted in the shady dry location.

433MHz receiver uncovered.

 If you are interested in building a version of this project for yourself you will need:

  • Two Arduino Unos (buy) or Two ATMEL ATMEGA328P-PU (buy) barebones setups.
  • 433MHz RF Transmitter-Receiver pair (buy)
  • One DHT11 (buy) or DHT22 (buy) temp/humidity sensor
  • One 0.9V-5V to 5V dc Boost Step-up Power Supply Module (buy)
  • Li-Ion battery charging module (buy)
  • 1602 LCD display (buy)
  • Solar Panel – 1.6w 5.5v 266ma  (Amazon)

The Arduino code for the project’s transmitter and receiver can be downloaded HERE

 

Weather Station Assembly:

 

 

Transmitter Side:

Connecting DHT11
When using the DHT11 module there is no need to add a resistor between the Data and Voltage pins on the DHT11 as called for when using the bare sensor.

Connect:
– The VCC pin on Arduino’s 5V output or if you are using the barebones Atmega328 just connect to your 5VDC source.

– The Negative/Ground pin to Arduino’s GND or your projects ground point.

– The DATA pin to Arduino/Atmega328 digital pin 4

Connecting RF433 transmitter

Connect:

– VCC pin on Arduino’s 5V output or if you are using the barebones Atmega328 just connect to your 5VDC source.

– The GND pin to Arduino’s GND  or your projects ground point.

– The DATA pin to Arduino/Atmega328 digital pin 12

Receiver Side:

Connecting RF433 receiver

Connect:

– VCC pin on Arduino’s 5V output or if you are using the barebones Atmega328 just connect to your 5VDC source.

– The GND pin to Arduino’s GND  or your projects ground point.

– The DATA pin to Arduino’s digital pin 11 – If you have two data pins you only need to connect one of them.

Connecting the LCD display

To properly connect the LCD display, you will need to connect the following:

– LCD VCC pin to 5V pin

– LCD GND pin to GND pin

– LCD RS pin to digital pin 7

– LCD Enable pin to digital pin 6

– LCD D4 pin to digital pin 5

– LCD D5 pin to digital pin 4

– LCD D6 pin to digital pin 3

– LCD D7 pin to digital pin 2

– LCD backlight: Pin A to 5VDC and pin K to GND/Ground

Connecting the potentiometer

Connect:

– one of the outer pins to Arduino’s 5V output

– the opposite outer pin to Arduino’s GND and

– the middle pin to LCD’s VO

The potentiometer is used to control the LCD’s contrast

This completes phase one of the Volthaus Electronics Laboratory 433MHz Weather Station. Questions, comments, etc. are welcome. 

Feb 282017
 

Volthaus Bluetooth Controller Android App

My second Instructable on remote control using Arduino, Bluetooth, and a relay. The first Instructable in this series was designed using the serial communication software PuTTY for turning off and on the remote device from your computer. This one will be quite similar in the setup of the project but we will be using the Volthaus Lab Bluetooth Controller Android phone app for control. The Bluetooth Controller App was designed using the MIT App Inventor and the source code is available below so you can import it into your own MIT App Inventor account console to adapt it to your needs if you wish to extend its capabilities, or just study how it works.

Check it out at:

https://www.instructables.com/id/Remote-Control-Bluetooth-Arduino-Android/

QUICK LINK-All project files here

Jan 132017
 

Using remote control for projects is always fun and gives your project that pro touch. One area of much debate is antenna design and use. I found this article that really does a great job of explaining the design and use of antennas with 433MHz modules. I found this at HOPERF. They make a wide variety of RF products.

Click here to view the PDF.

 

Oct 262016
 

article_header

This is the first installment of what I hope will be a complete and easy to understand series of tutorials on remote control using Arduino, Bluetooth, and free software that allows you to control just about any electrical device from an LED all the way to 110 volt AC lamps, fans, etc.

Check it out at:Instructables

http://www.instructables.com/id/Remote-Control-Bluetooth-Arduino-PuTTY/

And the video:

Oct 122016
 

Hey Volthaus Lab,

A friend of the lab who bicycles to work has asked if something could be designed for help with clearing the road of various animals. A device triggered by a small button on the handlebars. He also pulls a small trailer to which the device and a battery could be placed for power. Lights and siren with 433MHz com from switch to unit.

Imagine an incident like this happening on pavement in the dark.

UPDATE Nov 9, 2016:

The components are coming together. I reflow soldered six three-watt white LEDs to heatsinks and wired them up in parallel to 18650 3.7 volt Li-Ion battery and am getting fair amount of brilliance. And also bought two full fledged sirens from AllElectronics  I did make a couple of Arduino based sirens with a small speaker and they were not what I had in mind. With the new sirens this is shaping up to be quite a road clearing device.

The six 3 watt LEDs

The six 3 watt LEDs

Powered up LEDs.

Powered up LEDs.

 

 

 

 

 

 

 

 

EXTRA-LOUD MINI PIEZO SIREN (left) 2-TONE 12VDC SIREN, WAVE 2 (right)

EXTRA-LOUD MINI PIEZO SIREN (left)
2-TONE 12VDC SIREN, WAVE 2 (right)

The on/off transmitter button will be housed in a small container that I’m planning to have mounted using velcro possibly. For communication 433MHz RX-TX modules will more than transmit the signal the few feet from the handlebars to the actual device.

2-TONE 12VDC SIREN, WAVE 2

EXTRA-LOUD MINI PIEZO SIREN