11. Input devices¶
For my final project: HC-SR04 ultrasonic sensor¶
This week I made a board to read my first input device, soldering and programming an HC-SR04 ultrasonic sensor.
I choose this type of sensor to approach to the gesture input I’m going to make for my final project, about a levitating lamp.
Test¶
1st First I made some practice using Arduino uno r3 board, connecting it to an hc-sr04 distance sensor and programming it in Arduino IDE;
2nd I uploaded the default program and I included its library too…
It works as a small radar of 5 volts through 4 pins respectively defined as echo, trig, VCC and GND. It calculates the distance sending signals and reading its return.
3rd So in the program I set respective pins, the respective function and the data rate in bits per second (baud) for serial data transmission;
4th and uploading the it I could check the sensor working just clicking on the serial monitor icon in the right corner of IDE, showing the movements and so the changes of distance.
// including the default sensor library
#include "SR04.h"
// declaring its respective pins of sending and returning signals
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
//defining them
#define TRIG_PIN 12
#define ECHO_PIN 11
// declaring its variable
long a;
void setup() {
// Initialize serial communications;
Serial.begin(9600);
// declaring how much time between each signal
delay(1000);
}
void loop() {
// defining its previous variable
a=sr04.Distance();
// declaring to print serial communications in the serial monitor
Serial.print(a);
// ... and defining them
Serial.println("cm");
// declaring how much time between each print.
delay(1000);
}

Attiny45 + hc-sr04 board¶
I made a small board to solder an Attiny45, 10K resistor, 1uF capacitor ISP and ftdi connectors, and the ultrasonic distance sensor.
Designing¶
Schematic¶

Board¶


Soldering¶
I soldered an Attiny45 with:
- x1 10K resistor
- x1 1uF capacitor
- x1 ISP connector
- x1 FTDI connector
- x1 hc-sr04 distance sensor

Programming¶
1st In Arduino IDE I uploaded the Arduino ISP example, to enable my Arduino uno as programmer.

2nd I properly connected it to my new board, and I connected the board to an other port with a FTDI wire;
3rd and I selected the right tools as Attiny25/45/85 board, _Attiny45 processor, 16MHz internal clock, and the port. to upload its bootloader.


4th The Arduino uno hardware has built-in support for serial communication with devices, so due to my board pin out I had to program, I downloaded the SendOnlySoftwareSerial library to create my serial communication with my device just by one RX pin and so with no return signals.
5th And then in Arduino IDE I included this library and respectively changing the pin out I programmed and read the sensor again.
#include "SR04.h"
#include <SendOnlySoftwareSerial.h>
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
#define TRIG_PIN 3
#define ECHO_PIN 4
SendOnlySoftwareSerial mySerial (2); // Tx pin
long a;
void setup ()
{
mySerial.begin(9600);
}
void loop ()
{
a=sr04.Distance();
mySerial.print(a);
mySerial.println("cm");
delay(1000);
}
Downloads¶
.sch¶
.brd¶
.png¶
traces¶
attiny45.plus.hc-sr04.traces.png
outline¶
attiny45.plus.hc-sr04.outline.png
.rml¶
traces¶
attiny45.plus.hc-sr04.traces.rml
outline¶
attiny45.plus.hc-sr04.outline.rml