Introduction: Ultrasonic Range Finder With an ATtiny85 (With Shield)
I’m here to show you how to use a HC-SR04 Ultrasonic Range Finder with an ATtiny85 as well as programming the ATtiny85 using the wonderful shield that randofo created.
List of materials:
ATtiny85 Programming Library
Arduino Uno
HC-SR04 Ultrasonic Range Finder and Library
Jumper Wires
Breadboard
ATtiny85
Step 1: Program the Arduino
Before you connect your shield to the Arduino Uno, you’ll want to make sure you’ve put your Arduino Uno into it’s ISP mode, to do this load up your Arduino IDE and once it’s loaded go to File > Examples > ArduinoISP, now connect your Arduino up to your PC and upload the ISP sketch.
Step 2: Connect the Shield
Take your Arduino Uno and clip the shield in place, then take your ATtiny85 IC and put it in the correct way into the DIP-8 Socket on the shield.
Step 3: Program the ATtiny85
Now that you’ve put the Arduino into its Programming state, and connected the shield, it’s time to program the ATtiny85 chip, now I’ll show you how to make the LED on the board blink.
Go to this link and follow those instructions to get the core library for ATtiny’s loaded into the Arduino IDE, Once you’ve done that then copy the code below into the IDE and upload it (Once you’ve selected the correct board.)
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(0, OUTPUT); } void loop() { digitalWrite(0, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(0, LOW); // set the LED off delay(1000); // wait for a second }
Step 4: The Real Magic
If you managed to get this far without causing any issues or having any problems you’re doing good, it’s time to hook up the HC-SR04 now.
We’ll start off with the power circuit first.
Connect jumpers from VCC (Pin 8 on the ATtiny) and Ground (Pin 4) to the breadboard, make sure they’re 2 holes apart (See image 7 for reference).
Now connect two more jumpers between the VCC and Ground and hook one up to Analogue Input 3 (Pin 2) and another to Analogue Input 1 (Pin 7).
Now connect your HC-SR04 Ultrasonic Range Finder, having the ‘eyes’ facing you the four pins should read “VCC, TRIG, ECHO, GND” TRIG goes to Analogue Input 1 and ECHO goes to Analogue Input 3.
Step 5: The Code
You’ll need to get the HC-SR0R Library, Once you’ve gotten the library install it (Make sure the Arduino IDE is closed).
Once everything is configured and wired up, upload the following sketch.
#include "Ultrasonic.h" int LED1 = 0; // LED1 Pin int TRIG = 2; // Trigger Pin int ECHO = 3; // Echo Pin int Range; // The range of the object from the HC-SR04 Ultarsonic Module int Dist; // The Distance value Ultrasonic ultrasonic(TRIG,ECHO); // Create and initialize the Ultrasonic object. void setup() { pinMode(LED1, OUTPUT); Dist = 2; } void loop() { //Range = ultrasonic.Ranging(CM); // Range is calculated in Centimeters. Range = ultrasonic.Ranging(INC); // Range is calculated in Inches. if (Range < Dist) { digitalWrite(LED1, HIGH); } else if (Range > Dist) { digitalWrite(LED1, LOW); } }
If an object comes within 2 inches of the range finder the LED will light up.
There is a lot of room for improvement like for example every now and again the LED will light up for no reason, I believe this could be from a false reading from the range finder, but all in all, this is a pretty good ATtiny85 Project to get you started.