Dec 142017
  

A fun project kit for learning hobby electronics. This kit (amazon link) (ICStation) is suitable for almost any age hobbyist but if younger than 12 it would be wise if someone older and with a little more experienced helped.


On the big track.

Put together and ready to test.

Really enjoyed putting this little line following robot car kit together. Instructions in English are available here in PDF: WHDTS Smart Intelligent Robot Tracking Car Assembly Manual

LM353 Dual Operational Amplifier

The magic for this little robot is performed by an LM353 IC. It’s a sweet little Dual Op-Amp processor.
DUAL OPERATIONAL  AMPLIFIER 8 DIP. The LF353 is a JFET input operational amplifier with an internally
compensated input offset voltage. The JFET input device provides with bandwidth, low input bias currents and offset currents.

Kit Parts

One little detail is the assembly manual shows the LM353 installed incorrectly. Here’s a picture of the right orientation.

The parts come loose in a plastic bag so step one can be identifying what are the parts are and where they go on the Printed Circuit Board (PCB) chassis. If you’re helping a youngster put this kit together you can instruct them in reading the resistor codes or using a multimeter to identify the ratings of the resistors so placement on the PCB is correct. The PCB is really well marked so placement of the components is readily obvious as to the correct location even without referring to the instructions. The one-and-only critique I have is in the English instructions the picture of the LM353 in the socket is wrong. The right way is pin one (marked with a small circle) facing to the front. I’ve attached a picture above of the LM353 IC correctly placed. You can have a lot of fun and learning putting this kit together and understanding the theory behind the way the LDRs (Light Dependent Resistors) detect the difference between the black of the line and the white of the area outside the line. And the way this information is used to keep the Robot Car on the right path.

Well marked component locations.

 

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
https://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. 

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:

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

Powered up LEDs.

 

 

 

 

 

 

 

 

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

 

 

 
 

 

 

Sep 102016
  

Do you ever use a transistor in an electronic project then pull all the components back off the breadboard and put them back in stock. And then when you’re ready to use them again you’re just not really sure it’s still in working condition. It’s a frustrating learning situation when building an electronic project and for one reason or another it just doesn’t work, and you’re not confident all your components are working as they should.

Well here’s a project you might find handy to have on your workbench. It’s a simple transistor tester and if you have a dead 9VDC battery lying around then that would be the perfect power source for this project.

Components:

  • LED
  • 10K ohm Resistor
  • 680 ohm Resistor
  • 180 ohm resistor
  • SPST tactile momentary button/switch
  • Breadboard
  • 3VDC – 9VDC power source
  • Transistor to test

Schematic:

Here is how you connect the components

 

 

 

 

 

 

Tester laid out on the breadboard.

 

 

 

 

 

 

 

 

 

Tester in action. Showing the NPN 2N2222 transistor is fully functional.

 

 

 

 

 

 

 

 

 

Assorted buttons you can use.

Basic momentary tactile button is perfect for this project

Bottom view of NPN 2N2222 pins

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This project requires  less than $1 worth of components and can save you from much frustration. I hope you find it helpful. Now I need to make one that will test PNP transistors. So much to learn.

Happy electronic project building!

 

 

Sep 082016
  

If you’re looking for a robotics project to build. And if you want to be fun, quick, and easy this is the robot project for you. I found it at https://www.hackster.io/lovelyideas-in/arduino-remote-car-using-bluetooth-hc-05-android-app-control-3da97d  Mr. Jones Kys did a wonderful job developing this. Everything you need is available for download, including the Arduino sketch, schematic, and Android app.

Bill Of Materials:

  • Arduino – Uno,Nano, or Pro-Mini will work. Possibly others as well.
  • HC-05 Bluetooth module
  • Two DC motors and a chassis (you can be creative with the chassis)
  • L293D Dual H-Bridge motor driver
  • Power source (I used two 18650 Lithium Ion Rechargeable Batteries)
  • The Arduino IDE software (available for free at https://www.arduino.cc/en/Main/Software)

The rough prototype.

I put this together using an Arduino Pro-Mini and HC-05 Bluetooth module. An Arduino Nano would also work perfectly. I powered this using two Lithium Ion rechargeable batteries. I ran the hot lead to the RAW pin on the Arduino Pro-Mini. And the 5 volts for the Bluetooth module came from the VCC pin on the Arduino Pro-Mini. I am looking forward to cleaning it up as well as possibly including encoders on each wheel to solve the issue of one motor turning faster than the other, which causes the bot to veer off a straight line.

 

Motor with encoder wheel and two encoders.

 

 

 

 

 

 

 

 

You can see in the picture what an encoder looks like and also pictured is the encoder wheel you mount to your axle that spins inside the two protrusions on the encoder. Also you might notice the 0.1uF capacitor I soldered between the two terminals on the motor. That cuts down on theEMF emissions from the motor that can interfere with the radio signal.

Here’s a short video of the robot/car in action.

 

You can download everything you need and check out the project at:

https://www.hackster.io/lovelyideas-in/arduino-remote-car-using-bluetooth-hc-05-android-app-control-3da97d